【发布时间】:2020-09-30 00:54:49
【问题描述】:
我在 docker 容器中部署 KSQLDB,我需要在数据库启动时创建一些表(如果它们不存在)。有没有办法做到这一点?有什么例子吗?
【问题讨论】:
标签: ksqldb
我在 docker 容器中部署 KSQLDB,我需要在数据库启动时创建一些表(如果它们不存在)。有没有办法做到这一点?有什么例子吗?
【问题讨论】:
标签: ksqldb
从 0.11 版开始,您需要有一些东西可以查询服务器的 rest 端点以确定存在哪些表,然后提交 SQL 以创建任何缺失的表。这显然有点笨拙。
我相信即将发布的 0.12 版本带有 CREATE OR REPLACE 支持创建流和表。有了这个功能,您只需要一个脚本,在您的 docker 映像中包含一些 curl 命令,等待服务器可用,然后使用 CREATE OR REPLACE 在带有表定义的 SQL 脚本中触发。
0.12 版本还附带了IF NOT EXIST 对流、表、连接器和类型的语法支持。所以你可以这样做:
CREATE STREAM IF NOT EXISTS FOO (ID INT) WITH (..);
可以在Rest API docs 中找到传递给服务器的详细信息。
或者您应该能够使用 CLI 编写发送命令的脚本。
【讨论】:
IF NOT EXIST 支持,可能更适合你。