1. 程式人生 > >Hive官方使用手冊——Avro Files

Hive官方使用手冊——Avro Files

Availability

最早支援AvroSerDe的版本

The AvroSerde is available in Hive 0.9.1 and greater.

概述 –  Hive中使用Avro

AvroSerde允許使用者讀取或寫入Avro資料到Hive表。以下是AvroSerde的注意事項:

  • 從Avro schema中推斷出Hive表的schema。從Hive 0.14開始,可以從Hive表的schema推斷Avro模式
  • 利用Avro的向後相容效能力,在一個表中以指定的模式讀取所有Avro檔案。
  • 支援任意巢狀模式。
  • 將所有Avro資料型別轉換為等效的Hive型別。 大多數型別都可以匹配,但是一些Avro型別不存在於Hive中,AvroSerDe會自動轉換。
  • 能夠解析壓縮後的Avro檔案。
  • 顯式地將可空型別的Avro處理習慣用法Union[T, null] 轉換為只有T,並在適時返回null。
  • 將任何Hive表寫入Avro檔案。
  • 對於ETL過程的工作,Avro模式依然表現的非常可靠。
  • 從Hive 0.14開始,可以使用Alter table語句將列新增到Avro支援的Hive表中。

有關SerDes的一般資訊,請參閱開發指南中的Hive SerDe。還請參閱SerDe,瞭解輸入和輸出處理的詳細資訊。

Requirements

The AvroSerde has been built and tested against Hive 0.9.1 and later, and uses Avro 1.7.5 as of Hive 0.13 and 0.14.

Hive VersionsAvro Version
Hive 0.9.1Avro 1.5.3
Hive 0.10, 0.11, and 0.12Avro 1.7.1
Hive 0.13 and 0.14Avro 1.7.5

Avro to Hive type conversion

While most Avro types convert directly to equivalent Hive types, there are some which do not exist in Hive and are converted to reasonable equivalents. Also, the AvroSerde special cases unions of null and another type, as described below:

Avro type                                                                                

Becomes Hive type                                                                                                                                        

Note                                             

null

void

boolean

boolean

int

int

long

bigint

float

float

double

double

bytes

binary

在Hive 0.12.0之前,bytes被轉換為陣列[smallint]。

string

string

record

struct

map

map

list

array

union

union

[T, null]的聯合顯式地轉換可為空的T,其他型別直接轉換為Hive的型別結合。然而,在Hive 7中引入了union,目前還不能在where/group-by語句中使用。從本質上說,他們只是能夠看到。因為AvroSerde顯式地將[T,null]轉換為nullable T,這個限制只適用於多個型別聯合或組合的聯合,而不是單個型別和null。

enum

string

Hive沒有enums的概念。

fixed

binary

Fixeds在Hive 0.12.0之前被轉換成陣列[smallint]。

建立Avro-backed Hive表

使用AvroSerDe可以在Hive中建立avro支援的表。

All Hive versions

建立Avro-backed表,使用org.apache.hadoop.hive.serde2.avro.AvroSerDe指定serde ,指定輸入格式為org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat和輸出格式為org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat。還提供了一個位置,AvroSerde將從該位置提取大部分表的當前模式。例如:

CREATE TABLE kstPARTITIONED BY (ds string)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'TBLPROPERTIES (

在這個示例中,我們從一個webserver中提取了“真相”閱讀器模式。下面描述了提供這個模式的其他引數。

此表的描述如下:

hive> describe kst;OKstring1 string  from deserializerstring2 string  from deserializerint1    int     from deserializerboolean1        boolean from deserializerlong1   bigint  from deserializerfloat1  float   from deserializerdouble1 double  from deserializerinner_record1   struct<int_in_inner_record1:int,string_in_inner_record1:string> from deserializerenum1   string  from deserializerarray1  array<string>   from deserializermap1    map<string,string>      from deserializerunion1  uniontype<float,boolean,string> from deserializerfixed1  binary  from deserializernull1   void    from deserializerunionnullint    int     from deserializerbytes1  binary  from deserializer

在這一點上,avo支援的表可以像任何其他表一樣在Hive中工作。

Hive 0.14及以後的版本

從Hive 0.14開始,可以通過在DDL語句中使用“STORED AS AVRO”來建立AVRO支援的表。AvroSerDe負責從Hive表模式中建立合適的Avro模式,這在Hive的Avro可用性方面取得了很大的成功。

例如:

CREATE TABLE kst (string1 string,string2 string,int1 int,boolean1 boolean,long1 bigint,float1 float,double1 double,inner_record1 struct<int_in_inner_record1:int,string_in_inner_record1:string>,enum1 string,array1 array<string>,map1 map<string,string>,union1 uniontype<float,boolean,string>,fixed1 binary,null1 void,unionnullint int,bytes1 binary)PARTITIONED BY (ds string)STORED AS AVRO;

這個表的描述如下:

hive> describe kst;OKstring1 string  from deserializerstring2 string  from deserializerint1    int     from deserializerboolean1        boolean from deserializerlong1   bigint  from deserializerfloat1  float   from deserializerdouble1 double  from deserializerinner_record1   struct<int_in_inner_record1:int,string_in_inner_record1:string> from deserializerenum1   string  from deserializerarray1  array<string>   from deserializermap1    map<string,string>      from deserializerunion1  uniontype<float,

相關推薦

Hive官方使用手冊——Avro Files

Availability最早支援AvroSerDe的版本The AvroSerde is available in Hive 0.9.1 and greater.概述 –  Hive中使用AvroAvroSerde允許使用者讀取或寫入Avro資料到Hive表。以下是AvroSerde的注意事項:從Avro s

Hive 官方手冊翻譯 -- Hive DML(數據操縱語言)

數據 john 例如 format href hadoop efault 雜類 輸入格式 由 Confluence Administrator創建, 最終由 Lars Francke修改於 八月 15, 2018 原文鏈接 https://cwiki.apache.or

Hive 官方手冊翻譯 -- Hive DDL(資料定義語言)

Hive DDL(資料定義語言) Confluence Administrator建立, Janaki Lahorani修改於 2018年9月19日 原文連結 翻譯:Google Google翻譯,金山軟體 金山詞霸 校對:南大通用 範振勇 (2018.9.26) 一、概述 這裡是HiveQL

Hive 官方手冊翻譯 -- Hive DML(資料操縱語言)

由 Confluence Administrator建立, 最終由 Lars Francke修改於 八月 15, 2018 原文連結 翻譯:Google Google翻譯,金山軟體 金山詞霸 校對:南大通用 範振勇 (2018.10.6) 在Hive中,有多種方式修改資料:     LOAD

Hive 官方手冊翻譯 -- Hive Transactions (Hive 事務)

由 Alan Gates建立, 最終由 Andrew Sherman修改於2018年8月7日 翻譯:Google Google翻譯,金山軟體 金山詞霸 校對:南大通用 範振勇 (如有翻譯問題,請多指教) 一、Hive 3的警告   升級到Hive 3.0時,由之前版本建立的任何事務性表都需要在每個

Hive 官方手冊學習(一) Hive命令列

一、shell視窗下Hive命令列選項 hive [-hiveconf x=y]* [<-i filename>]* [<-f filename>|<-e query-string>] [-S] [-v] 注意:順序

Hive官方使用手冊——DDL使用說明

Hive Data Definition Language概述這裡是HiveQL DDL語法說明文件 包括:CREATE DATABASE/SCHEMA, TABLE, VIEW, FUNCTION, INDEXDROP DATABASE/SCHEMA, TABLE, VIEW, INDEXTRUNCATE

Hive官方使用手冊——Hive CLI

usage: hive -d,--define <key=value> Variable substitution to apply to Hive commands. e.g. -d A=B or --def

Hive官方使用手冊——新Hive CLI(Beeline CLI)

這個頁面描述了HiveServer2支援的不同客戶端。其它的HiveServer2文件包含:VersionIntroduced in Hive version 0.11. See HIVE-2935.Beeline – Command Line Shell Beeline-命令列shellHiveServer

Hive官方使用手冊——HCatalog CLI

Set UpHCatalog命令列介面(CLI)可以被呼叫為HIVE_HOME=hive_home hcat_home/bin/hcat ,其中hive_home是已安裝Hive的目錄,hcat_home是已安裝HCatalog的目錄。如果您正在使用BigTop的rpm或deb,您可以使用 /usr/bin/

Hive官方文檔

map 自動 fix host 沒有 art bar float 條件過濾                 Hive官方文檔 內容列表 Cloudera制作的Hive介紹視頻 安裝與配置 系統需求 安裝Hive發行版 從Hive源碼編譯 運行Hive 配置

翻譯:select into outfile(已提交到MariaDB官方手冊)

系列 targe mil utf 網站 https mariadb bsp color 本文為mariadb官方手冊:SELECT INTO OUTFILE的譯文。 原文:https://mariadb.com/kb/en/select-into-outfile/ 我

翻譯:load data infile(已提交到MariaDB官方手冊)

linu AD -s 右下角 get family 支持 data log 本文為mariadb官方手冊:LOAD DATA INFILE的譯文。 原文:https://mariadb.com/kb/en/load-data-infile/ 我提交到MariaDB官方

翻譯:replace into語句(已提交到MariaDB官方手冊)

microsoft pan ont 網站 log https nbsp 系列 www. 本文為mariadb官方手冊:REPLACE INTO的譯文。 原文:https://mariadb.com/kb/en/replace/ 我提交到MariaDB官方手冊的譯文:h

翻譯:XtraDB/InnoDB中的AUTO_INCREMENT處理方式(已提交到MariaDB官方手冊)

16px targe ron 架構 href family 右下角 incr 點擊 本文為mariadb官方手冊:XtraDB/InnoDB中的AUTO_INCREMENT處理方式的譯文。 原文:https://mariadb.com/kb/en/auto_increm

Conditional Expressions官方手冊連結,包含Case()、按條件update

Contents Conditional Expressions The conditional expression classes When Case Advanced queries

Models官方手冊連結

https://docs.djangoproject.com/en/2.0/topics/db/models/#module-django.db.models Contents Models Quick example Using models F

PHP官方手冊總結(一)

1. 為什麼要閱讀PHP官方手冊 在開發的過程中doris經常感覺到PHP有些概念比較模糊,始終對語言的一些底層知識點總是拿粘不透,網上搜了搜也沒有很好的解決方法,所以doris就想再重新系統的鞏固一下PHP的知識,鞏固知識的方法有很多種,那麼為什麼doris會選擇閱讀PHP官方手冊

【翻譯自HVR官方手冊】HVR資料複製軟體介紹與術語解釋

【翻譯自HVR官方手冊】HVR資料複製軟體介紹與術語解釋 HVR資料複製軟體是荷蘭HVR公司推出的一款資料複製軟體,用於db到db,db到file,file到db,file到file的實時複製。 整個過程分為如下四個步驟: 第一步:配置Location 第二步:配置Channel 第三步

《Apache Hive官方文件》首頁

原文連結  譯者:BJdaxiang Apache Hive是一款資料倉庫軟體,通過SQL使得分散式儲存系統中的大的資料集的讀、寫和管理變得容易。使用者可以使用自帶的命令列工具和JDBC驅動用來連線Hive。 開始Apache Hive之旅 在我們的wiki上了解更多關於Hive的功能。