2015-04-01 26 views
1

當我試圖從cassandra讀取uuid4類型列時,我得到垃圾。有沒有辦法在人類可讀的格式讀取它(十六進制字符串格式代表uuid4對象)如何在cqlsh中讀取人類可讀格式的uuid4對象 - cassandra

這裏是我得到 -

cqlsh:upgradetest> select * from "AccessControlLinks" where key = 'a471b42b-cb20-4ae2-b924-c79a5eec1bed-Filters'; 

key           |  column1           | value 

a471b42b-cb20-4ae2-b924-c79a5eec1bed-Filters | G\xff\xbc\x01\xaadNp\xb6\xd9\xe2\xd9\x0e\xd1\[email protected] |  

是否有任何cqlsh功能/一些標誌我需要設置爲以可讀格式獲取column1的值?

由於提前

馬尼什

+0

好吧,我發現蟒蛇上下的方式來完成這項安迪是絕對正確的在他的回答。 human_readble_id = UUID(bytes = six.b(uuid_obj))您需要導入軟件包「six」和「UUID from uuid」。我相信其他編程語言必須有相似的變通方法。 – 2015-04-06 04:08:03

回答

2

您遇到的問題是,你正在使用緊湊型存儲(節儉表),所以你是在CQL的好處,你的列值輸給了要簡單是斑點。

您有使用緊湊型存儲的原因嗎?您仍然在使用數據傳輸的節儉,還是因爲其他原因選擇了緊湊型存儲?

我不相信會有一個簡單的方法讓你用cqlsh以非二進制格式讀取數據。

0

當cassandra中的數據是壓縮格式時,沒有簡單的方法通過cqlsh讀取uuid字符串。但是python有一個解決方法。只是提到人們是否面臨同樣的問題。

下面是它是如何做到的。轉到蟒蛇PROMT從cqlsh

import uuid 
uuid.UUID(bytes='\xec\x84\x9e\xfd\x83\x83N6\x9b\xcd\xa4<{\x8a\xda\xd9') 

即通字符串uuid.UUID

相關問題