2017-07-06 27 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。