flink读取hive数据写入mysql_【翻译】Flink Table Api & SQL — Hive —— 读写 Hive 表

使用HiveCatalog和Flink的Hive连接器,Flink可以读取和写入Hive数据,以替代Hive的批处理引擎。确保遵循说明在您的应用程序中包括正确的依赖项。

从 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连接器的主要限制列表。我们正在积极努力缩小这些差距。

不支持 INSERT OVERWRITE。

不支持插入分区表。

不支持ACID表。

不支持存储桶的表。

不支持某些数据类型。有关详细信息,请参见限制。

仅测试了有限数量的表存储格式,即文本,SequenceFile,ORC和Parquet。

不支持视图。

你可能感兴趣的:(flink读取hive数据写入mysql_【翻译】Flink Table Api & SQL — Hive —— 读写 Hive 表)