Apache Flink 创建 Table
Apache Flink Create Table
我正在尝试使用以下代码在 Java 中使用 Table API 在 flink 中创建 table 使用 Eclipse。
EnvironmentSettings settings = EnvironmentSettings
.newInstance()
.inStreamingMode()
.build();
TableEnvironment tEnv = TableEnvironment.create(settings);
tEnv.executeSql("CREATE TABLE sink_table (" +
" `user_a` BIGINT," +
" `product` VARCHAR," +
" `amount` BIGINT," +
" `name_list` ARRAY<STRING>," +
" `id_list` ARRAY<INT>," +
" PRIMARY KEY (user_a) NOT ENFORCED " +
") WITH (" +
")");
但是程序退出时没有在 Flink SQL 客户端中创建任何 table。如何创建 table?
注意:它是通过 SQL 客户端直接创建的。我的环境也是 运行 Word Count Program through the same setup of eclipse.
同时检查 https://nightlies.apache.org/flink/flink-docs-master/docs/dev/table/sql/create/ 是否有类似的代码。
一个 Flink SQL table 只不过是描述如何解释 存储(或将存储)在别处的数据 。当您创建这样一个 table 时,有必要指定数据的实际位置(或将要写入的位置):例如,Kafka 主题、文件、PostgreSQL table 等. 有关数据存储位置的信息位于 CREATE TABLE
语句的 WITH (...)
部分。
如果您想在多个应用程序中使用此 table,在 SQL 客户端中使用 and/or,您有两种选择。您可以在每个要使用相同 table 的地方使用相同的“CREATE TABLE ...”的副本,或者您可以保存 table(不是基础数据,但只是目录中的 table 元数据)。
在您在问题中分享的 Java 代码中,您在临时目录中为该作业创建了一个 table。如果您希望 SQL 客户端能够直接使用它,则需要将其保存在永久目录中,或者您可以在 SQL 客户端中创建一个副本 table(此“ duplicate”将引用相同的基础数据;只有 table 元数据会被复制。
由于此 table 未与任何数据存储相关联,因此不太可用。
我正在尝试使用以下代码在 Java 中使用 Table API 在 flink 中创建 table 使用 Eclipse。
EnvironmentSettings settings = EnvironmentSettings
.newInstance()
.inStreamingMode()
.build();
TableEnvironment tEnv = TableEnvironment.create(settings);
tEnv.executeSql("CREATE TABLE sink_table (" +
" `user_a` BIGINT," +
" `product` VARCHAR," +
" `amount` BIGINT," +
" `name_list` ARRAY<STRING>," +
" `id_list` ARRAY<INT>," +
" PRIMARY KEY (user_a) NOT ENFORCED " +
") WITH (" +
")");
但是程序退出时没有在 Flink SQL 客户端中创建任何 table。如何创建 table?
注意:它是通过 SQL 客户端直接创建的。我的环境也是 运行 Word Count Program through the same setup of eclipse.
同时检查 https://nightlies.apache.org/flink/flink-docs-master/docs/dev/table/sql/create/ 是否有类似的代码。
一个 Flink SQL table 只不过是描述如何解释 存储(或将存储)在别处的数据 。当您创建这样一个 table 时,有必要指定数据的实际位置(或将要写入的位置):例如,Kafka 主题、文件、PostgreSQL table 等. 有关数据存储位置的信息位于 CREATE TABLE
语句的 WITH (...)
部分。
如果您想在多个应用程序中使用此 table,在 SQL 客户端中使用 and/or,您有两种选择。您可以在每个要使用相同 table 的地方使用相同的“CREATE TABLE ...”的副本,或者您可以保存 table(不是基础数据,但只是目录中的 table 元数据)。
在您在问题中分享的 Java 代码中,您在临时目录中为该作业创建了一个 table。如果您希望 SQL 客户端能够直接使用它,则需要将其保存在永久目录中,或者您可以在 SQL 客户端中创建一个副本 table(此“ duplicate”将引用相同的基础数据;只有 table 元数据会被复制。
由于此 table 未与任何数据存储相关联,因此不太可用。