gpt4 book ai didi

apache-kafka - ksql 表中的数据不是持久的

转载 作者:行者123 更新时间:2023-12-04 01:18:46 24 4
gpt4 key购买 nike

我们在 ubuntu 上使用 confluent 平台。我们有简单的 JSON 数据通过 cURL 请求发送到名为“UE_Context”的 kafka 主题上的 kafka-rest 服务器。

使用以下命令为此主题创建名为“UE_CONTEXT_STREAM”的 kafka 流:

CREATE STREAM UE_Context_Stream (ue_key VARCHAR, ecgi VARCHAR) WITH (KAFKA_TOPIC='UE_Context', VALUE_FORMAT='JSON');

使用以下命令为此主题创建名为“UE_CONTEXT_TABLE”的 kafka 表:

CREATE TABLE UE_Context_Table ( registertime BIGINT, ue_key VARCHAR, ecgi VARCHAR) WITH (KAFKA_TOPIC='UE_Context', KEY='ue_key', VALUE_FORMAT='JSON');

我使用以下 cURL 命令在主题上提取了两行数据:

curl -X POST -H "Accept: application/json" -H "Content-Type: application/vnd.kafka.json.v1+json" --data '{"records":[{"key": "0x1234", "value":{"ue_key": "0x1234", "ecgi" : "1234"}}]}' "http://localhost:8082/topics/UE_Context"  
curl -X POST -H "Accept: application/json" -H "Content-Type: application/vnd.kafka.json.v1+json" --data '{"records":[{"key": "0x1234", "value":{"ue_key": "0x4321", "ecgi" : "4321"}}]}' "http://localhost:8082/topics/UE_Context"

我有一个等待表的选择查询,如下所示:

ksql query

当 JSON 数据被注入(inject)到主题中时,此查询会显示表信息。然后我们停止将 JSON 数据泵入主题并结束选择查询并结束选择查询。如果稍后执行选择,则不会显示先前填充的表信息。没有办法持久化这些数据吗?Kafka 连接器和使用数据库可能是一种选择。但是 kSQL 没有临时内存来存储表信息吗?

最佳答案

a select is performed at a later point of time, the previously populated table info is not displayed.

select 语句默认为主题的最新偏移量

如果您想查看以前的数据,you need to set the consumer offset back to the beginning

SET 'auto.offset.reset'='earliest';

此外,如文档中所述(强调)

A SELECT statement by itself is a non-persistent continuous query. The result of a SELECT statement isn’t persisted in a Kafka topic and is only printed in the KSQL console. Don’t confuse persistent queries created by CREATE STREAM AS SELECT with the streaming query result from a SELECT statement.

关于apache-kafka - ksql 表中的数据不是持久的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53655597/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com