本文介绍Data Lake Analytics兼容Hive的数据类型。
建表语法
CREATE EXTERNAL TABLE [IF NOT EXISTS] [db_name.]table_name
[(col_name data_type [COMMENT col_comment], ... [constraint_specification])]
[COMMENT table_comment]
[PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)]
[ROW FORMAT row_format]
[STORE AS file_format]
| STORED BY 'storage.handler.class.name' [WITH SERDEPROPERTIES (...)]
LOCATION oss_path
说明
详细的建表说明见用户指南部分。
数值类型
TINYINT,1 byte 有符号整数,-128至127。
SMALLINT,2 byte 有符号整数,-32,768至32,767。
INT/INTEGER,4 byte 有符号整数,-2,147,483,648至2,147,483,647。
BIGINT,8 byte 有符号整数,-9,223,372,036,854,775,808至9,223,372,036,854,775,807。
FLOAT,4 byte单精度浮点数。
DOUBLE,8 byte双精度浮点数。
DECIMAL(p, s) ,固定精度和范围的数值类型。
字符类型
STRING,存储变长的超大文本字符,可以使用单引号或者双引号。
VARCHAR,存储变长文本,但是长度上只允许在1-65355之间。
CHAR,用来存储定长的字符。
时间日期类
TIMESTAMP,支持纳秒级别的UNIX时间戳。
DATE,用来存储日期数据:年月日,YYYY-MM-DD。
布尔类型
BOOLEAN,布尔类型,true或false。
集合数据类型
ARRAY,格式为ARRAY<data_type>,元素访问通过0下标开始。
MAP,是一组key-value元组集合,key只能是基本类型,值可以是任意类型。map的元素访问则使用[],例如map['key1']。
STRUCT,类似对象,如果数据类型定义为colum1 STRUCT{var1 STRING,var2 int},使用colum1.var2来访问。
建表示例
1.创建不带分区的表
CREATE EXTERNAL TABLE nation_text_string (
N_NATIONKEY INT COMMENT 'column N_NATIONKEY',
N_NAME STRING,
N_REGIONKEY INT,
N_COMMENT STRING
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '|'
STORED AS TEXTFILE LOCATION 'oss://your-bucket/path/to/nation_text';
2.创建分区表
CREATE EXTERNAL TABLE primitives_text_p (
id INT COMMENT 'default',
bool_col BOOLEAN COMMENT 'default',
tinyint_col TINYINT COMMENT 'default',
date_string_col STRING COMMENT 'default',
string_col STRING COMMENT 'default',
timestamp_col TIMESTAMP COMMENT 'default'
)
PARTITIONED BY (year INT COMMENT 'default', month INT COMMENT 'default')
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
ESCAPED BY '\\'
STORED AS TEXTFILE
LOCATION 'oss://your-bucket/path/to/primitives_text_p';
文档内容是否对您有帮助?