【问题标题】:KSQL 'SELECT *' query takes 10 seconds before it starts returning any resultsKSQL 'SELECT *' 查询需要 10 秒才能开始返回任何结果
【发布时间】:2020-05-14 01:38:51
【问题描述】:

我有一个包含少于 1000 条记录的 ksql 表。当我运行此查询 select * from table_name 时,查询开始返回任何数据之前最多需要 10 秒。

运行 Kafka、zookeeper、ksql 和模式注册表的机器没有过载或类似情况。

我正在使用带有 1 个代理和 1 个 ksql 服务器的开发设置。

该表具有简单的非嵌套 json,其中包含两个字段,电子邮件和用户 ID

这是一个问题,因为我不能将它用于单个查找,例如,使用这样的查询

SELECT * FROM TABLE_NAME WHERE col='value';

因为返回结果需要很长时间。我希望结果会立即返回。

如果我使用流而不是表格,所花费的时间是相同的

【问题讨论】:

  • 这种行为是否仅适用于表查找?如果您对流尝试相同的操作,您会遇到不同的行为吗?你有多少经纪人?你有多少个ksql服务器?表中有哪些数据?
  • 我已经用我的设置更新了问题
  • 有趣,我认为这与您在主题中输入的数据有关。你能分享一些示例键和值吗?另外,KSQL 服务器是否有任何有见地的日志?
  • json {"email": "john@example.com", "user_id":"hahdjic-andud-hahd"} 基本上是随机生成的电子邮件地址和 user_ids。消息密钥与电子邮件相同。我不知道这个位是否有用,但 user_ids 是相同的。它不应该影响性能,但也许是

标签: confluent-platform ksqldb


【解决方案1】:

当我运行此查询 select * from table_name 时,查询开始返回任何数据之前最多需要 15 秒。

在 KSQL 中的流式查询完全启动并运行之前,可能需要一段时间。 15 秒听起来有点长,但根据您的本地环境,启动延迟可能仍然可以解释观察到的行为。

我有一个不到 1000 条记录的 ksql 表。

如果 SELECT 查询已启动并正在运行,然后您将一些新记录写入表的基础主题(例如在另一个终端中),这些记录在 SELECT 查询中显示的速度有多快?这应该发生得更快,因为没有启动延迟(此时查询应该完全启动并运行)。

【讨论】:

  • 如果查询启动并运行,新记录会立即出现。至于延迟,我实际上是计时的,它是 7 到 10 秒。不是 15 (我想我应该编辑这个问题)。我们还在更大的设置(更强大的机器,更多的 kafka 代理)上测试了查询,但在结果开始出现之前仍然有 7 秒的延迟
猜你喜欢
  • 2020-03-26
  • 1970-01-01
  • 1970-01-01
  • 2011-03-25
  • 2019-05-19
  • 2023-01-10
  • 2015-09-02
  • 2017-03-12
  • 1970-01-01
相关资源
最近更新 更多