本文主要介绍了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目前支持的压缩格式包括SNAPPYGZIPNONE(不压缩)

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");