描述
AvroConfluent 格式支持借助 Confluent Schema Registry (或与其 API 兼容的服务) 读取和写入采用 Avro 编码的消息。
每条消息都使用 Confluent 传输格式:一个魔数字节 (0x00) ,后跟一个 4 字节大端序的 schema ID,再后跟 Avro 二进制数据。读取时,ClickHouse 会通过查询 registry 来解析 schema ID。写入时,ClickHouse 会注册根据输出列推导出的 schema,并将生成的 ID 添加到每一行前面。为获得最佳性能,schema 会被缓存。
数据类型映射
INSERT 和 SELECT queries 中对应的 ClickHouse 数据类型。
bytesis default, controlled by settingoutput_format_avro_string_column_pattern
null 作为字段值,因此,例如 Avro 的 union(T1, T2, null) 会被转换为 Variant(T1, T2)。
因此,当从 ClickHouse 生成 Avro 时,我们必须始终在 Avro 的 union 类型集合中包含 null 类型,因为在进行 schema inference 时,我们无法判断是否有某个值实际为 null。
*** Avro 逻辑类型
不受支持的 Avro 逻辑类型:
time-millistime-microsduration
格式设置
示例
从 Kafka 读取
format_avro_schema_registry_url 设置指定 Schema Registry 的 URL。
写入 Kafka
使用基本身份验证
format_avro_schema_registry_url 设置中提供经过 URL 编码的凭据。
故障排除
system.kafka_consumers 系统表。如果你的部署包含多个副本 (例如 ClickHouse Cloud) ,则必须使用 clusterAllReplicas 表函数。