如何从具有小数类型列的主题在 ksql 中创建流

Posted

技术标签:

【中文标题】如何从具有小数类型列的主题在 ksql 中创建流【英文标题】:how to create stream in ksql from topic with decimal type column 【发布时间】:2020-01-09 22:21:05 【问题描述】:

我想从监控 mysql 表的 kafka 主题创建一个流。 mysql 表具有十进制(16,4)类型的列,当我使用此命令创建流时: create stream test with (KAFKA_TOPIC='dbServer.Kafka.DailyUdr',VALUE_FORMAT='AVRO'); 流创建并运行,但十进制(16,4)类型的列不出现在结果流中。

源主题值模式: “类型”:“记录”, “名称”:“信封”, “命名空间”:“dbServer.Kafka.DailyUdr”, “领域”:[ “名称”:“之前”, “类型”: [ “空值”, “类型”:“记录”, “名称”:“价值”, “领域”:[ “名称”:“用户 ID”, “类型”:“整数” , "name": "国家代码", “类型”:“字符串” , "name": "TotalInputOcted", “类型”:“整数” , "name": "TotalOutputOcted", “类型”:“整数” , “名称日期”, “类型”:“字符串” , “名称”:“服务”, “类型”:“字符串” , "name": "decimalCol", “类型”: [ “空值”, “类型”:“字节”, “规模”:4, “精度”:16, “连接版本”:1, “连接参数”: “规模”:“4”, “connect.decimal.precision”:“16” , "connect.name": "org.apache.kafka.connect.data.Decimal", “逻辑类型”:“十进制” ], “默认”:空 ], “connect.name”:“dbServer.Kafka.DailyUdr.Value” ], “默认”:空 , “以...命名”, “类型”: [ “空值”, “价值” ], “默认”:空 , “名称”:“来源”, “类型”: “类型”:“记录”, “名称”:“来源”, “命名空间”:“io.debezium.connector.mysql”, “领域”:[ “名称”:“版本”, “类型”: [ “空值”, “细绳” ], “默认”:空 , “名称”:“连接器”, “类型”: [ “空值”, “细绳” ], “默认”:空 , “名称”:“名称”, “类型”:“字符串” , "name": "server_id", “类型”:“长” , “名称”:“ts_sec”, “类型”:“长” , “名称”:“gtid”, “类型”: [ “空值”, “细绳” ], “默认”:空 , “名称”:“文件”, “类型”:“字符串” , “名称”:“位置”, “类型”:“长” , “名称”:“行”, “类型”:“整数” , “名称”:“快照”, “类型”: [ “类型”:“布尔”, “连接。默认”:假 , “空值” ], “默认”:假 , “名称”:“线程”, “类型”: [ “空值”, “长” ], “默认”:空 , “名称”:“分贝”, “类型”: [ “空值”, “细绳” ], “默认”:空 , “名称”:“表”, “类型”: [ “空值”, “细绳” ], “默认”:空 , “名称”:“查询”, “类型”: [ “空值”, “细绳” ], “默认”:空 ], “connect.name”:“io.debezium.connector.mysql.Source” , “名称”:“操作”, “类型”:“字符串” , “名称”:“ts_ms”, “类型”: [ “空值”, “长” ], “默认”:空 ], “connect.name”:“dbServer.Kafka.DailyUdr.Envelope”

我的问题在十进制列中

【问题讨论】:

【参考方案1】:

KSQL 还不支持 DECIMAL 数据类型。

有an issue here,如果您认为它有用,您可以跟踪和投票。

【讨论】:

以上是关于如何从具有小数类型列的主题在 ksql 中创建流的主要内容,如果未能解决你的问题,请参考以下文章

在Python中创建流以从字符串迭代

如何从kafka主题为ksqldb创建主题

“注册”是 Ksql 中的保留关键字,如果是,我如何选择具有该名称的字段

在 KSQL 中加入两个(或更多)kafka 主题的最佳方法是从所有主题中发出变化?

如何在 C++ 中从现有 2D 向量中创建具有特定列的新向量

从字符串中创建具有两位小数的 Double [重复]