如何从具有小数类型列的主题在 ksql 中创建流 Posted 2023-03-23
技术标签:
【中文标题】如何从具有小数类型列的主题在 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 [重复]