数据湖探索 DLI-使用DataSource语法创建OBS表:参数说明

时间:2024-11-11 14:10:59

参数说明

表1 参数说明

参数

是否必选

描述

db_name

Database名称。

由字母、数字和下划线(_)组成。不能是纯数字,且不能以数字和下划线开头。

table_name

Database中的待创建的表名。

由字母、数字和下划线(_)组成。不能是纯数字,且不能以数字和下划线开头。匹配规则为:^(?!_)(?![0-9]+$)[A-Za-z0-9_$]*$。

特殊字符需要使用单引号('')包围起来。

表名对大小写不敏感,即不区分大小写。

col_name

以逗号分隔的带数据类型的列名。

列名由字母、数字和下划线(_)组成。不能是纯数字,且至少包含一个字母。

列名为大小写不敏感,即不区分大小写。

col_type

列字段的数据类型。数据类型为原生类型。

请参考原生数据类型

col_comment

列字段描述。仅支持字符串常量。

file_format

file_format是用于创建表的输入格式。支持orc,parquet,json,csv,avro类型。

path

数据文件所在的OBS存储路径,推荐使用OBS并行文件系统存储。

格式:obs://bucketName/tblPath

bucketName即桶名称。

tblPath是目录名称。目录后不需要指定文件名。

更多建表时的属性名与属性值请参考表2

file_format为csv时表的属性名与属性值请参考表2表3

当OBS的目录下文件夹与文件同名时,创建OBS表指向的路径会优先指向文件而非文件夹。

table_comment

表描述信息。仅支持字符串常量。

select_statement

用于CTAS命令,将源表的select查询结果或某条数据插入到新创建的OBS表中。

表2 OPTIONS参数描述

参数

是否必选

描述

path

指定的表路径,即OBS存储路径。

multiLevelDirEnable

嵌套子目录场景下,是否迭代查询子目录中的数据。当配置为true时,查询该表时会迭代读取该表路径中所有文件,包含子目录中的文件。

默认值:false

dataDelegated

是否需要在删除表或分区时,清除path路径下的数据。

默认值:false

compression

指定压缩格式。一般为parquet格式时指定该参数,推荐使用'zstd'压缩格式。

当file_format为csv时,支持设置以下OPTIONS参数。
表3 CS V数据格式OPTIONS参数说明

参数

是否必选

描述

delimiter

数据分隔符。

默认值:逗号(即",”)

quote

引用字符。

默认值:双引号(即“"”)

escape

转义字符。

默认值:反斜杠(即“\”)

multiLine

列数据中是否包含回车符或转行符,true为包含,false为不包含。

默认值:false

dateFormat

指定CSV文件中date字段的日期格式。

默认值:yyyy-MM-dd

timestampFormat

指定CSV文件中timestamp字段的日期格式。

默认值:

yyyy-MM-dd HH:mm:ss

mode

指定解析CSV时的模式,有三种模式。默认值:PERMISSIVE

  • PERMISSIVE:宽容模式,遇到错误的字段时,设置该字段为Null
  • DROPMALFORMED: 遇到错误的字段时,丢弃整行。
  • FAILFAST:报错模式,遇到错误的字段时直接报错。

header

CSV是否包含表头信息,true表示包含表头信息,false为不包含。

默认值:false

nullValue

设置代表null的字符,例如,nullValue="nl"表示设置nl代表null。

comment

设置代表注释开头的字符,例如,comment='#'表示以#开头的行为注释。

compression

设置数据的压缩格式。目前支持gzip、bzip2、deflate压缩格式,若不希望压缩,则输入none。

默认值:none

encoding

数据的编码格式。支持utf-8,gb2312,gbk三种,如果不填写,则默认为utf-8。

默认值:utf-8

support.huaweicloud.com/sqlref-spark-dli/dli_08_0076.html