首页 > 解决方案 > 如何使用压缩运行 KSQL 流

问题描述

我正在使用KSQL来处理 Kafka 数据。我可以创建持久的 kafka 流,但该流的输出主题不是压缩的。如何在创建流时定义压缩类型。

CREATE STREAM TARGET_TOPIC WITH **(COMPRESSION='SNAPPY')** AS SELECT * FROM SOURCE PARTITION BY ID

我期望提供像上面这样的压缩配置,但上面的语法不正确。如果在 ksql 中可以进行压缩,请对此提供帮助。

谢谢

标签: apache-kafkaksqldb

解决方案


有两种方法可以实现这一点。

  1. 您可以使用SETKSQL 中的命令在创建流之前设置控制压缩的生产者配置,例如
SET 'compression.type'='snappy';
CREATE STREAM TARGET_TOPIC WITH **(COMPRESSION='SNAPPY')** AS SELECT * FROM SOURCE PARTITION BY ID
  1. 或者,如果您希望压缩所有输出,您可以在 ksql-server.properties 文件中设置它。

推荐阅读