Kafka ClickPipes 支持的 Schema Registry
- Confluent Schema Registry
- Redpanda Schema Registry
配置
- 提供 schema subject 的完整路径 (例如
https://registry.example.com/subjects/events)- 也可以通过在 URL 后附加
/versions/[version]来指定特定版本 (否则 ClickPipes 会获取最新版本) 。
- 也可以通过在 URL 后附加
- 提供 schema ID 的完整路径 (例如
https://registry.example.com/schemas/ids/1000) - 提供 Schema Registry 的根 URL (例如
https://registry.example.com)
网络连通性
- Schema Registry URL 必须使用
https://。 - 如果 registry 主机名解析为私有地址,则它必须能通过为 ClickPipe 选择的反向专用终结点访问;否则,设置期间的连通性检查将失败。
工作原理
- 如果消息中嵌入了 schema ID,则会使用该 ID 获取 schema。
- 如果消息中未嵌入 schema ID,则会使用 ClickPipe 配置中指定的 schema ID 或 subject 名称来获取 schema。
- 如果消息写入时未嵌入 schema ID,且 ClickPipe 配置中也未指定 schema ID 或 subject 名称,则不会获取 schema,该消息将被跳过,并在 ClickPipes 错误表中记录
SOURCE_SCHEMA_ERROR。 - 如果消息不符合 schema,则该消息将被跳过,并在 ClickPipes 错误表中记录
DATA_PARSING_ERROR。 - 仅适用于 Protobuf schema:ClickPipes 会加载定义为依赖项的所有导入 schema。暂不支持带外部引用的 Avro schema。
Schema 映射
- 如果 schema 包含某个字段,但该字段未包含在 ClickHouse 目标端映射中,则该字段会被忽略。
- 如果 schema 缺少 ClickHouse 目标端映射中定义的某个字段,则 ClickHouse 列将填充为“零”值,例如 0 或空字符串。请注意,不支持
DEFAULT表达式。 - 如果 schema 字段与 ClickHouse 列不兼容,则该行/消息的插入会失败,且失败记录会写入 ClickPipes 错误表。请注意,系统支持一些隐式转换 (例如数值类型之间的转换) ,但并非全部都支持 (例如,Avro record 字段不能插入到
Int32ClickHouse 列中) 。