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'