2017-07-06 163 views
0

我们使用Confluent JDBC connector从MS SQL数据库提取数据。我们在提取列数据格式为decimal(10,2)的小数列时遇到了问题,它将数据作为字节而不是十进制进行传递。 "charge":{"bytes":"\u0006Iô"}(这是从消费者的控制台获取并显示模式注册表结构)。Kafka连接到MSSQL服务器十进制转换

有没有人看到过这种行为与连接器之前,知道我们会怎么去解决?

Cheers

+0

这是列的模式注册表定义:{“name”:“charge”,“type”:[“null”,{“type”:“bytes”,“scale”:2,“precision” :64, “connect.version”:1, “connect.parameters”:{ “规模”: “2”}, “connect.name”: “org.apache.kafka.connect.data.Decimal”, “logicalType” : “十进制”}], “默认”:空}' – jonvines

回答

0

目前对使用Schema Registry with .Net的支持有限。因此,我们不得不手动操作字节数组来产生小数。

这涉及填充和反转字节数组,在精度和比例上作出假设,并根据第一个值(> 128 ==负数)确定是正还是负。我们还必须为每个负数小数附加一个.01。