如何从cassandra读取文件并将文件写入cassandra?

时间:2013-06-20 07:38:01

标签: cassandra

我不知道google会使用哪些关键字。

我是datastax的新手。

我想我可以将文件插入cassandra EASILY而且我想我不需要像cassandra那样写文件:

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

2 个答案:

答案 0 :(得分: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 );
    }

答案 1 :(得分:2)

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