【问题标题】:Connecting a visualization layer to a kafka streams / ksqlDB table?将可视化层连接到 kafka 流/ksqlDB 表?
【发布时间】:2020-03-08 14:33:26
【问题描述】:

我一直在摆弄 ksqlDB,它真的很整洁。将数据导入 Kafka,创建流甚至表格都运行良好。我现在想将可视化层/BI 工具连接到表中的数据,以创建仪表板或一些交互式 BI 报告(例如 Superset、Redash 等)。

有没有办法将 JDBC 客户端直接连接到 ksqlDB / Kafka Streams,以便它可以查询 ksqlDB 中的表? This video 有点说我应该使用 REST API 将应用程序连接到结果,但是:

  1. REST API 是专有的,那么如何在不编写自定义连接器的情况下将诸如 BI 工具之类的东西连接到它?
  2. 如果我在生产/无头模式下运行 ksqlDB,则 REST API 无论如何都不可用。 (为什么??)

任何指针将不胜感激。

【问题讨论】:

  • 什么是专有的??无头字面意思是没有任何外部暴露。而且 JDBC 不是流技术,所以它不会工作
  • @cricket_007 感谢您的问题,以相同的顺序回答:专有的意思是标准的可视化工具不会连接到它,即使它公开了一个基于 SQL 的接口。在 ksqlDB 文档中,“生产”模式与“无头”模式相同,而“API 开放”模式被宣传为“开发”——目前尚不清楚这是建议不要在生产中使用 API,还是只是一个它的名称不准确。
  • @cricket_007 Kafka 流和 ksqlDB 中的表不是流式实体,它们与普通表一样工作,只是它们会更新。您可以在它们上运行 ksqlDB 所谓的“拉查询”,就像常规的非流式 SQL 查询一样。我看不出 JDBC 不能促进这些“拉”查询的任何原因。
  • 流式传输是指结果不会在您的 bi 工具中更新,除非您安排查询自行重新运行。我不确定您列出的工具是否支持这一点。在任何情况下,您都可以在不使用 ksql 的情况下将 Presto 或 Hive 连接到 Kafka,然后将 bi 工具连接到这些

标签: apache-kafka apache-kafka-streams ksqldb


【解决方案1】:

有没有办法将 JDBC 客户端直接连接到 ksqlDB / Kafka Streams,以便查询 ksqlDB 中的表?

ksqlDB 有一个community JDBC driver

请记住,目前 ksqlDB 不适用于临时随机访问模式。您可能需要仔细设计流和表,以针对您正在运行的查询类型进行优化。

【讨论】:

  • 谢谢罗宾!您能推荐一种将 ksql 表复制到 SQL DB 表中的好方法吗?在表上创建一个更改流,并使用 Kafka JDBC 接收器连接器将该流连接到数据库?
  • 是的 - ksqlDB 中的表由 Kafka 主题支持,因此您可以将其流式传输到目标数据库。只需确保正确设置键,以便在 ksqlDB 中更新值时,它们会在目标数据库中更新(而不是插入)
猜你喜欢
  • 2021-05-15
  • 2021-09-24
  • 1970-01-01
  • 1970-01-01
  • 2020-09-01
  • 1970-01-01
  • 2020-11-01
  • 2021-12-15
  • 2021-05-08
相关资源
最近更新 更多