【问题标题】:Kafka Connect to MSSQL Server Decimal conversionKafka Connect 到 MSSQL Server 十进制转换
【发布时间】:2017-12-10 16:58:05
【问题描述】:

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

之前有没有人看到过连接器的这种行为并知道我们将如何解决?

干杯

【问题讨论】:

  • 这是列的架构注册表定义:{"name":"charge","type":["null",{"type":"bytes","scale":2,"precision":64,"connect.version":1,"connect.parameters":{"scale":"2"},"connect.name":"org.apache.kafka.connect.data.Decimal","logicalType":"decimal"}],"default":null}

标签: c# sql-server avro kafka-consumer-api apache-kafka-connect


【解决方案1】:

目前对 .Net 使用架构注册表的支持有限。因此,我们不得不手动操作字节数组来生成小数。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-27
    • 1970-01-01
    • 2015-02-02
    • 2017-05-05
    • 2011-06-19
    • 1970-01-01
    • 2012-07-07
    相关资源
    最近更新 更多