【翻譯】Flink Table Api & SQL — Hive —— 讀寫 Hive 表


本文翻譯自官網:Reading & Writing Hive Tables  https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/table/hive/read_write_hive.html

Flink Table Api & SQL 翻譯目錄

使用HiveCatalog和Flink的Hive連接器,Flink可以讀取和寫入Hive數據,以替代Hive的批處理引擎。確保遵循說明在您的應用程序中包括正確的依賴項

從 Hive 讀數據 

假設Hive在其default數據庫中包含一個表,該表名為people,其中包含幾行。

 

hive> show databases;
OK
default
Time taken: 0.841 seconds, Fetched: 1 row(s)

hive> show tables;
OK
Time taken: 0.087 seconds

hive> CREATE TABLE mytable(name string, value double);
OK
Time taken: 0.127 seconds

hive> SELECT * FROM mytable;
OK
Tom   4.72
John  8.0
Tom   24.2
Bob   3.14
Bob   4.72
Tom   34.9
Mary  4.79
Tiff  2.72
Bill  4.33
Mary  77.7
Time taken: 0.097 seconds, Fetched: 10 row(s)

准備好數據后,您可以連接到現有的Hive 安裝程序並開始查詢。

Flink SQL> show catalogs;
myhive
default_catalog

# ------ Set the current catalog to be 'myhive' catalog if you haven't set it in the yaml file ------

Flink SQL> use catalog myhive;

# ------ See all registered database in catalog 'mytable' ------

Flink SQL> show databases;
default

# ------ See the previously registered table 'mytable' ------

Flink SQL> show tables;
mytable

# ------ The table schema that Flink sees is the same that we created in Hive, two columns - name as string and value as double ------ 
Flink SQL> describe mytable;
root
 |-- name: name
 |-- type: STRING
 |-- name: value
 |-- type: DOUBLE


Flink SQL> SELECT * FROM mytable;

   name      value
__________ __________

    Tom      4.72
    John     8.0
    Tom      24.2
    Bob      3.14
    Bob      4.72
    Tom      34.9
    Mary     4.79
    Tiff     2.72
    Bill     4.33
    Mary     77.7

寫數據到hive

同樣,可以使用INSERT INTO子句將數據寫入 hive。 

Flink SQL> INSERT INTO mytable (name, value) VALUES ('Tom', 4.72);

局限性

以下是Hive連接器的主要限制列表。我們正在積極努力縮小這些差距。

  1. 不支持 INSERT OVERWRITE。
  2. 不支持插入分區表。
  3. 不支持ACID表。
  4. 不支持存儲桶的表。
  5. 不支持某些數據類型。有關詳細信息,請參見限制
  6. 僅測試了有限數量的表存儲格式,即文本,SequenceFile,ORC和Parquet。
  7. 不支持視圖。

歡迎關注Flink菜鳥公眾號,會不定期更新Flink(開發技術)相關的推文

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM