2016-01-15 35 views
0

我想將json文件從本地系統存儲到cassandra列,因爲新版本的cassandra支持json數據。爲解決方案,我要尋找的方法是這樣的: -如何從本地系統加載json文件並分配給某個變量

globalvariable<-load json file from local system. 
cassandracolumn<-dump(globalvariable) 
third thing i want to know the type of cassandracolumn, so that is support, 
entire json data, whether it is text or blob. 

我不知道是否有可能或not.your的建議受到了高度評​​價。我在ubuntu 14.04 lts系統上使用cassandra2.2.4。

I tried so far: 
1.var data = params.jsonData; //assign entire json data to variable 
2. var insertQuery = "INSERT INTO " +keyspace+ "."+table_name+ " JSON   
'{"+data+"}';"; 
console.log(insertQuery); 
client.execute(insertQuery, function(err, result2){ 
if(result2){ 
return res.json("data inserted"); 
} 
else{ 
return res.json("data insertion failed"); 
}   
}); 

我在準備insertQuery時做了一些錯誤。

On console log : INSERT INTO jsondb.iris JSON '{[object Object]}'; 

Response : 「data insertion failed」 

application: rest API creation 

我不是JSON數據傳遞直接卡桑德拉,但在我的情況下,我不得不通過其他API身體部位通過jsondata。所以我必須收集整個J​​SON數據,然後轉儲到卡桑德拉列

+0

它看起來像'jsonData'是一個對象,而不是一個字符串,'INSERT INTO表JSON?'期望一個字符串。如果你有一個帶有類型值的對象,你可以編寫完整的查詢語句:'INSERT INTO table(col1,col2,col3,...)VALUES(?,?,?,...)'並使用屬性'jsonData'作爲參數。 – jorgebg

+0

JSON.parse會,我認爲正確的包。但無法通過npm registery安裝。通過JSON.parse(整個JSON對象),我們可以分配給一些變量。然後將該變量轉儲到cassandra列...任何機構都可以建議我在我的節點項目中安裝JSON.parse到ubuntu 14.04 lts。 – azad

回答

2

有2個可能的回答您的問題

1)如果你的JSON文件有一個明確的結構,你可以設計一個卡桑德拉表匹配此結構,如果需要使用用戶定義類型對嵌套結構進行編碼。然後,您可以簡單地使用INSERT語句將這些JSON內容插入到Cassandra中。

CREATE TABLE example (
    id int PRIMARY KEY, 
    tupleval tuple<int, text>, 
    numbers set<int>, 
    words list<text> 
) 

INSERT INTO example JSON '{"id": 0, "tupleval": [1, "abc"], "numbers": [1, 2, 3], "letters": ["a", "b", "c"]}'; 

2)如果你的JSON文件沒有任何模式,在這種情況下,只需將它們存儲爲文本的BLOB

CREATE TABME my_json(
    id int, 
    json text, 
    PRIMARY KEY(id) 
); 

INSERT INTO my_json(id,json) VALUES(1, '{"1": "foo", "2": "bar"}'); 

警告雖然,避免存儲JSON的巨大團塊數據(如10Mb的有效載荷),您將面臨讀取性能問題。

+0

@ donaduyhai,我沒有將json數據直接傳遞給cassandra,但在我的情況下,我必須通過rest API身體部分傳遞jsondata。所以我必須收集整個json數據,然後轉儲到cassandra列。 – azad

相關問題