13.2、Flink Table API&SQL-Hiveの読み書きHive表
HiveCatalogとFlinkからHiveへのコネクタを使用して、FlinkはHiveデータを読み書きでき、Hiveバッチ処理エンジンの代わりになります。必ず説明に従って、アプリケーションに正しい依存項(Flink Table API&SQL-Hiveのhive概要を参照)を含んでください。
時計を読む
Hiveがデフォルトのデータベースにテーブルを含んでいると仮定します。ここにはいくつかの行が含まれています。
同様に、INSERT intoサブルーチンを使用して、データをhiveに書き込むことができる。
下記はHiveコネクタの主な制限リストです。私たちはこれらの差を縮めるために積極的に努力しています。 INSERT OVERWRITEはサポートされていません。 書き込みパーティションテーブルは に対応していません。 ACIDテーブルは をサポートしていません。分バケットテーブルは をサポートしていません。部分のデータタイプはサポートされていません。詳細は、上記の記事(Flink Table API&SQL-Hiveのhive概要) を参照してください。テスト部分テーブルのデータフォーマットは、text、squence file、ORCとParket があります。ビューは をサポートしていません。
時計を読む
Hiveがデフォルトのデータベースにテーブルを含んでいると仮定します。ここにはいくつかの行が含まれています。
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に接続し、既存の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
表を書く同様に、INSERT intoサブルーチンを使用して、データをhiveに書き込むことができる。
Flink SQL> INSERT INTO mytable (name, value) VALUES ('Tom', 4.72);
限界性下記はHiveコネクタの主な制限リストです。私たちはこれらの差を縮めるために積極的に努力しています。