3

不知道用什么关键词google。

我是datastax的新手。

我想我可以轻松地将文件插入 cassandra 而且我想我不需要像这样将文件写入 cassandra:

  out = new FileOutputStream(new File(“C:/test.txt”));   
  out.write(“java java java\r\n”.getBytes()); 
4

2 回答 2

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 );
    }
于 2013-06-20T08:03:06.603 回答
2

Cassandra 是键值对存储,而不是文件系统,因此您无法向其中写入文件。Cassandra 中的所有值最终都只是字节序列。因此,您虽然不能在 Cassandra 中存储文件,但可以存储文件的内容。您需要将文件内容读入一个字节数组,然后将该 arrat 的内容存储在 Cassandra 中。

于 2013-06-20T07:59:38.580 回答