OushuDB 创建和管理外部表(中)

简介: 创建一个外部表,使用CREATE EXTERNAL TABLE命令。在这个命令里,需声明新表名称,各列名称及其数据类型,基于命令的EXECUTE子句或基于URL的LOCATION子句的外部数据来源,数据格式。

image.png

创建外部表

创建一个外部表,使用CREATE EXTERNAL TABLE命令。在这个命令里,需声明新表名称,各列名称及其数据类型,基于命令的EXECUTE子句或基于URL的LOCATION子句的外部数据来源,数据格式。
当创建一个可读外部表时,location子句需指定使用一种协议指向外部数据源,format子句需指定TEXT、CSV、ORC或CUSTOM用户自定义文本格式。比如:使用gpfdist协议在gpfdist目录中找到(.txt)格式的所有文本文件,来创建一个名为ext_customer的可读外部表。这些文件的格式是以‘|’作为列分隔符,空白空间为空。还可以在单行错误隔离模式下访问外部表的SQL定义:

CREATE EXTERNAL TABLE ext_customer(id int, name text, sponsor text)LOCATION ( 'gpfdist://filehost:8081/*.txt' )FORMAT 'TEXT' ( DELIMITER '|' NULL ' ')LOG ERRORS INTO err_customer SEGMENT REJECT LIMIT 5;

或者创建与上面相同的可读外部表定义,但使用CSV格式文件的示例:

CREATE EXTERNAL TABLE ext_customer(id int, name text, sponsor text)LOCATION ( 'gpfdist://filehost:8081/*.csv' )FORMAT 'CSV' ( DELIMITER ',' );

当创建一个可读web外部表时,除location子句方式指定外部数据方式外,还可以使用execute子句运行指定脚本(脚本必须位于所有segment主机上的同一位置)来访问外部数据源。比如:在第五个虚拟节点执行指定脚本创建一个外部表的SQL定义:

CREATE EXTERNAL WEB TABLE log_output (linenum int,message text)EXECUTE '/var/load_scripts/get_log_data.sh' ON 5FORMAT 'TEXT' (DELIMITER '|');

当创建一个可写外部表时,location子句使用上述协议之一指向外部数据源,format子句指定TEXT、CSV、ORC或CUSTOM用户自定义文本格式。例如:以下SQL命令显示如何创建可写hdfs外部表以自由加载、卸载、查询和插入数据:

CREATE WRITABLE EXTERNAL TABLE tbexternal (a int,b decimal(10,2),t text,d date)LOCATION ('hdfs://host1:port1/tbexternaldir')FORMAT 'csv' (DELIMITER '|')LOG ERRORS INTO err_tbexternal SEGMENT REJECT LIMIT 5;

此表支持读取和写入,路径’/tbexternaldir’中的所有文件都可以读取以进行查询或加载,用户还可以通过将数据写入同一路径’/tbexternaldir’来卸载或将数据插入此表。操作此外部表的一些示例如下所示:

INSERT INTO tbexternal SELECT * FROM tb;INSERT INTO tbexternal SELECT * FROM tb WHERE t like 'test%';INSERT INTO tb SELECT * FROM tbexternal;INSERT INTO tb SELECT * FROM tbexternal WHERE t like 'test%';SELECT a,b FROM tbexternal WHERE b > 10;SELECT T1.a, T1.d FROM tbexternal T1, tbinternal T2 WHERE T1.t = T2.t;

以下命令显示如何以orc格式创建可写hdfs外部表:

CREATE WRITABLE EXTERNAL TABLE orcexternal (p text,q text)LOCATION ('hdfs://host1:port1/orcexternaldir')FORMAT 'ORC' (COMPRESSTYPE 'lz4');

以下命令显示如何以orc格式创建可写hive外部表:

CREATE WRITABLE EXTERNAL TABLE orcexternal (p text,q text)LOCATION ('hive://host1:port1/dbname/orctablename’)FORMAT 'ORC' (COMPRESSTYPE 'lz4');

当创建一个可写Web外部表时,使用location子句指定外部数据源或execute子句指定执行脚本,使用format子句指定TEXT、CSV、ORC或CUSTOM用户自己定义的文本格式。例如:创建一个可写的外部web表,该表将segment接收到的输出数据管道化到名为_adreport_etl.sh的可执行脚本:

CREATE WRITABLE EXTERNAL WEB TABLE campaign_out (LIKE campaign)EXECUTE '/var/unload_scripts/to_adreport_etl.sh'FORMAT 'TEXT' (DELIMITER '|');
目录
相关文章
|
8月前
|
分布式计算 DataWorks MaxCompute
DataWorks中odps到容器部署starrocks的单表同步遇到写入问题
【1月更文挑战第6天】【1月更文挑战第29篇】DataWorks中odps到容器部署starrocks的单表同步遇到写入问题
98 3
|
7月前
|
SQL 关系型数据库 MySQL
实时计算 Flink版产品使用问题之CTAS特性只支持新增表,不支持删除表吗
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
5月前
|
存储 分布式计算 大数据
MaxCompute 数据分区与生命周期管理
【8月更文第31天】随着大数据分析需求的增长,如何高效地管理和组织数据变得至关重要。阿里云的 MaxCompute(原名 ODPS)是一个专为海量数据设计的计算服务,它提供了丰富的功能来帮助用户管理和优化数据。本文将重点讨论 MaxCompute 中的数据分区策略和生命周期管理方法,并通过具体的代码示例来展示如何实施这些策略。
383 1
|
6月前
|
分布式计算 DataWorks 关系型数据库
MaxCompute产品使用合集之如何在DataWorks中实现离线同步多个分表到MC的多级分区表
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
8月前
|
分布式计算 Java 数据库连接
实时数仓 Hologres产品使用合集之该创建外部表maxCompute的这个服务器列表如何解决
实时数仓Hologres是阿里云推出的一款高性能、实时分析的数据库服务,专为大数据分析和复杂查询场景设计。使用Hologres,企业能够打破传统数据仓库的延迟瓶颈,实现数据到决策的无缝衔接,加速业务创新和响应速度。以下是Hologres产品的一些典型使用场景合集。
116 0
|
8月前
|
SQL 存储 分布式计算
大数据计算MaxCompute有数据字典表或者元数据表吗?
大数据计算MaxCompute有数据字典表或者元数据表吗?
177 0
|
SQL 安全 数据库
GaussDB云数据库SQL应用系列-视图管理
GaussDB云数据库SQL应用系列-视图管理
109 0
|
SQL 存储 分布式计算
OushuDB 创建和管理外部表(上)
OushuDB 创建和管理外部表(上)
73 0
|
SQL HIVE 数据格式
OushuDB 创建和管理外部表(中)
OushuDB 创建和管理外部表(中)
81 0
|
SQL 数据库
OushuDB 创建和管理外部表(下)
OushuDB 创建和管理外部表(下)
87 0

热门文章

最新文章