我正在尝试使用 cassandra 作为后端存储来构建数据服务层。我是 Cassandra 的新手,不确定要为 cassandra 使用什么客户端 - thrift 还是 cql 3?我们有很多使用 Amazon 弹性 mapreduce (EMR) 的 mapreduce 作业,它们将从 cassandra 中大量读取/写入数据。总数据量将 > 100 TB,Cassandra 中有数十亿行。mapreduce 作业可能会以高 qps (>1000 qps) 进行大量读取或写入。要求如下:
- 客户端代码的简单性。thrift 似乎与 Hadoop 进行了内置集成,以便使用 sstableloader ( http://www.datastax.com/dev/blog/bulk-loading ) 进行批量数据加载。
- 能够在运行时定义新列。根据应用要求,我们可能需要添加更多列。似乎 cql3 不允许在运行时动态定义列。
- 批量读/写的性能。不确定哪个客户端更好。但是,我发现这篇文章声称 thrift 客户端在大数据量方面具有更好的性能:http: //jira.pentaho.com/browse/PDI-7610 ?page=com.atlassian.jira.plugin.system.issuetabpanels:all-标签面板
我找不到任何权威的信息来源来回答这个问题。感谢您是否可以提供帮助,因为我相信这对大多数人来说是一个常见问题,并且会造福整个社区。
提前谢谢了。
-Prateek