【问题标题】:How can I implement KSQLDB init script?如何实现 KSQLDB 初始化脚本?
【发布时间】:2020-09-30 00:54:49
【问题描述】:

我在 docker 容器中部署 KSQLDB,我需要在数据库启动时创建一些表(如果它们不存在)。有没有办法做到这一点?有什么例子吗?

【问题讨论】:

    标签: ksqldb


    【解决方案1】:

    从 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 编写发送命令的脚本。

    【讨论】:

    • 嗯,我不确定 CREATE OR REPLACE 是否适合我,如果它们不存在,我只需要创建表和流,而不是每次都替换它们。所以我想我将不得不使用其余的 api 并添加一些逻辑。笨拙,是的,但我没有其他选择。
    • 0.12 也有IF NOT EXIST 支持,可能更适合你。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-03
    • 2011-10-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多