ksqldb - 如何实现 KSQLDB 初始化脚本?
问题描述
我将 KSQLDB 部署在 docker 容器中,当数据库启动时,我需要创建一些表(如果它们不存在)。有没有办法做到这一点?有什么例子吗?
解决方案
从 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 编写发送命令的脚本。
推荐阅读
- c# - 使用非托管导出将字符串从 C# 返回到 C++ 返回数字
- c++ - 文件存在时,最新检查声称构建输入“丢失”
- opentk - OpenTK 识别 PS4v2 控制器(通过 USB)
- machine-learning - 创建基于 3 列的预测模型
- android - IntentService 使用 NativeScript 和 Angular 处理 FCM
- r - ggplot2中的分组条形图
- qt - 仅从 Qt 中的给定 MIME 类型(无文件本身)获取文件图标
- c - C - 检查系统是否是虚拟机的便捷方法?
- javascript - 在循环中将不同的变量值传递给事件处理程序
- python - PLY - 添加第二条类似行时出现解析错误