2013-06-20 179 views

回答

4

使用Datastax司機:

插入:

ByteBuffer fileByteBuffer = ByteBuffer.wrap(readFileToByteArray(filename)); 
    Statement insertFile = QueryBuilder.insertInto("files").value("filename", filename).value("file", fileByteBuffer); 
    session.execute(insertFile); 

閱讀:

Statement readFile = QueryBuilder.select("file").from("files").where(QueryBuilder.eq("filename", filename)); 
    Row fileRow = session.execute(readFile).one(); 
    if (fileRow != null) { 
     ByteBuffer fileBytes = fileRow.getBytes("file"); 
     File f = convertToFile(fileBytes); 
    } 
+0

我發現,從卡桑德拉採取的字節有一些額外的頭? –

2

Cassandra是一個key-value存儲,而不是一個文件系統,所以你不能將文件寫入它。 Cassandra中的所有值最終都是字節序列。因此,儘管您無法在Cassandra中存儲文件,但您可以存儲文件的內容。您將要將文件內容讀入一個字節數組,然後將該文件的內容存儲在Cassandra中。

相關問題