如何解决KSQL:支持 KSQL 表的主题未压缩
我正在使用 KSQL 来跟踪车队管理系统的停靠点之间的延迟,为简单起见,我有 2 个流 trips
和 tasks
,它们从 debezium 获取数据馈送,到目前为止一切顺利。
我的问题是当我创建一个反映一些聚合数据的 KSQL 表时,我假设支持主题最终应该有一个压缩的结果,但实际上它不是,如下例所示
-- trips stream
CREATE STREAM trips_raw (
id bigint,gross_merchandise_value double,vehicle_id bigint,trip_code string,status string,time_slot string,number_of_orders integer,supplier_id integer,trip_start_time bigint,agent_id integer,trip_number integer,returnes_handled BOOLEAN,modification_date bigint,created_by integer,modified_by integer,creation_date bigint
)
WITH (KAFKA_TOPIC='trips',VALUE_FORMAT='json');
--tasks stream
CREATE STREAM tasks_raw (id bigint,delivery_trip_id bigint,creation_date bigint,request_id bigint)
WITH (KAFKA_TOPIC='tasks',VALUE_FORMAT='json');
-- THE AGGREGATED TABLE (just simple view for sake of simplicity)
create table trips_actions_count as
select count(1),ID from trips_raw
group by ID;
----- TEST DATA ------
INSERT INTO trips_raw (
id,gmv,vehicle_id,trip_code,status,trip_start_time,MODIFICATION_DATE,CREATED_BY,MODIFIED_BY,CREATION_DATE
) VALUES (
1,100.5,523,'TRIP_1','CREATED',1616480285000,1616530285000,123,1616444781000
);
INSERT INTO trips_raw (
id,'ARRIVED',1616540285000,'COMPLETED',1616550285000,1616444781000
);
当我跟踪支持表 TRIPS_ACTIONS_COUNT
的创建主题时,我得到以下结果,
kafka-console-consumer --bootstrap-server localhost:9092 --topic TRIPS_ACTIONS_COUNT --from-beginning
{"KSQL_COL_0":1}
{"KSQL_COL_0":2}
{"KSQL_COL_0":3}
kafka-topics --bootstrap-server localhost:9092 --describe --topics-with-overrides --topic TRIPS_ACTIONS_COUNT
Topic: TRIPS_ACTIONS_COUNT PartitionCount: 3 ReplicationFactor: 1 Configs: cleanup.policy=compact,segment.bytes=1073741824
我假设 TRIPS_ACTIONS_COUNT
应该被压缩,这样当消费者阅读它时,它应该只获取特定键的最新值,在我的例子中是 {"KSQL_COL_0":3}
。
我想我遗漏了什么,不确定是什么?
解决方法
您只打印值,而压缩发生在主题记录键上(您需要添加 --property print.key=true
),和它仅发生在关闭的段上,其中默认段大小是 1G... 换句话说,3 条记录不足以进行压缩,反正
一般来说,问题在于您正在使用流(原始主题),即表中发生的事件的更改日志。如果您真的想查看分组数据,您应该使用 ksql cli 从表中进行选择
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。