AVRO

Hive 0.14.0 及更高版本支持 Avro 文件。

Avro 是 Apache 的 Hadoop 项目中开发的远程过程调用和数据序列化框架。它使用 JSON 定义数据类型和协议,并以紧凑的二进制格式序列化数据。它主要用于 Apache Hadoop,它既可以提供持久数据的序列化格式,也可以提供 Hadoop 节点之间通信的有线格式,以及从客户端程序到 Hadoop 服务的通信。

AVRO 格式规范: https ://avro.apache.org/docs/1.7.7/spec.html

CREATE TABLE kst
PARTITIONED BY (ds string)
STORED AS AVRO
TBLPROPERTIES (
  'avro.schema.url'='http://schema_provider/kst.avsc');

我们也可以使用以下语法而不使用模式文件。

CREATE TABLE kst (field1 string, field2 int)
PARTITIONED BY (ds string)
STORED AS AVRO;

在上面的例子中,STORED AS AVRO 子句相当于:

ROW FORMAT SERDE
  'org.apache.hadoop.hive.serde2.avro.AvroSerDe'
STORED AS INPUTFORMAT
  'org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat'
OUTPUTFORMAT
  'org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat'