首页 > 解决方案 > 如何实现 KSQLDB 初始化脚本?

问题描述

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

标签: ksqldb

解决方案


从 0.11 版开始,您需要有一些东西可以查询服务器的 rest 端点以确定存在哪些表,然后提交 SQL 以创建任何丢失的表。这显然有点笨拙。

我相信即将发布的 0.12 版本CREATE OR REPLACE支持创建流和表。有了这个特性,你只需要一个脚本,在你的 docker 镜像中包含一些 curl 命令,等待服务器可用,然后在 SQL 脚本中触发你的表定义,使用CREATE OR REPLACE.

0.12 版本还附带了IF NOT EXIST对流、表、连接器和类型的语法支持。所以你可以这样做:

CREATE STREAM IF NOT EXISTS FOO (ID INT) WITH (..);

可以在Rest API 文档中找到传递给服务器的详细信息。

或者您应该能够使用 CLI 编写发送命令的脚本。


推荐阅读