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'