本文主要介绍了OSS表属性的定义方法。
auto.create.location
在DLA上自动创建OSS上对应的目录,并创建表。示例如下:
CREATE EXTERNAL TABLE person (
`id` int,
`name` string,
`age` int
)
STORED AS TEXTFILE
LOCATION 'oss://bucket001/dir001/'
TBLPROPERTIES (
'auto.create.location'='true'
);
compression.type
手动指定压缩格式。使用DLA写入OSS数据时默认的压缩格式是SNAPPY。示例如下:
CREATE EXTERNAL TABLE person (
`id` int,
`name` string,
`age` int
)
STORED AS TEXTFILE
LOCATION 'oss://bucket001/dir001/'
TBLPROPERTIES (
'compression.type'='gzip'
);
说明 DLA目前支持的压缩格式包括SNAPPY 、GZIP、NONE(不压缩)。
directory.odps
当需要使用DLA分析MaxCompute的OSS外表数据时,需要设定这个参数。示例如下:
CREATE EXTERNAL TABLE person (
`id` int,
`name` string,
`age` int
)
STORED AS TEXTFILE
LOCATION 'oss://bucket001/dir001/'
TBLPROPERTIES (
'directory.odps'='true'
);
说明 由于MaxCompute外表的目录结构和普通OSS不同,如果不设定
directory.odps
,将会导致找不到数据文件。
skip.header.line.count
指定文本类型的数据要跳过的行数。比如某些CSV文件第一行是文件头,不是真正的数据,分析的时候需要跳过。示例如下:
CREATE EXTERNAL TABLE person (
`id` int,
`name` string,
`age` int
)
STORED AS TEXTFILE
LOCATION 'oss://bucket001/dir001/'
TBLPROPERTIES ("skip.header.line.count"="1");
orc.use-column-names
针对ORC类型的数据,指定通过ORC文件中的列名来关联元数据而不是根据列的顺序来关联元数据。示例如下:
CREATE EXTERNAL TABLE person (
`id` int,
`name` string,
`age` int
)
STORED AS TEXTFILE
LOCATION 'oss://bucket001/dir001/'
TBLPROPERTIES ("orc.use-column-names"="true");