簡體   English   中英

ksql流列名中的小寫字符使列為空

[英]Lowercase character in ksql stream column name make the column null

我使用以下命令從現有流post_raw創建了新的流post

create stream "post" AS select id AS "ID", id AS "id" FROM post_review

當我運行SELECT id, "id" FROM post ,我得到:

5ce0a41de36bcb6769fea850 | null
5ce0e44b9f3990676209a901 | null
5ce0e9613ec64f1132918f2a | null
5ce13c599f3990676209a915 | null
5ce1bf9c3ec64f1132918fb9 | null

如果列名中有任何小寫字符,它將接縫ksql使列值null 對於潛在的話題post是獲得數據。

print post退貨:

{"ROWTIME":1564559632738,"ROWKEY":"5ce0a41de36bcb6769fea850","ID":"5ce0a41de36bcb6769fea850","id":"5ce0a41de36bcb6769fea850"}
{"ROWTIME":1564559634853,"ROWKEY":"5ce0e44b9f3990676209a901","ID":"5ce0e44b9f3990676209a901","id":"5ce0e44b9f3990676209a901"}
{"ROWTIME":1564559636963,"ROWKEY":"5ce0e9613ec64f1132918f2a","ID":"5ce0e9613ec64f1132918f2a","id":"5ce0e9613ec64f1132918f2a"}
{"ROWTIME":1564559643305,"ROWKEY":"5ce13c599f3990676209a915","ID":"5ce13c599f3990676209a915","id":"5ce13c599f3990676209a915"}
{"ROWTIME":1564559643305,"ROWKEY":"5ce1bf9c3ec64f1132918fb9","ID":"5ce1bf9c3ec64f1132918fb9","id":"5ce1bf9c3ec64f1132918fb9"}

為什么ksql將小寫的列值設置為null?

與小寫/大寫字母無關,但是您的問題與雙引號有關。

post主題中包含的消息中,您具有4個屬性: ROWTIMEROWKEYIDid 您沒有任何名為"id"屬性(標簽中帶有雙引號!)

如果您的內容的格式如下,則查詢將返回值:

{"ROWTIME":..., "ROWKEY":..., "id":"5ce0a41de36bcb6769fea850", "\"id\"":"5ce0a41de36bcb6769fea850"}

我很確定SELECT id, ID FROM post將返回您期望的結果。

或者,您可以嘗試在KSQL create stream命令的AS中添加雙引號。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM