学习 Presto(五):集成 Cassandra

Cassandra 简介

Apache Cassandra 是一个开源、分布式去中心化、弹性扩展、高可用错误容忍、可调一致性、面向行的数据库,分布式设计基于亚马逊 Dynamo,数据模型基于谷歌 Bigtable,最初由 Facebook 创建

配置

创建文件 etc/catalog/cassandra.properties 文件:

connector.name=cassandra  
cassandra.contact-points=CASSANDRA_X,CASSANDRA_Y,CASSANDRA_Z  
cassandra.username=USER  
cassandra.password=PASS  
cassandra.consistency-level=ONE  

配置 cassandra.contact-points 多个连接点使用逗号进行分隔,如果服务不指定端口号,默认使用 9042

配置 cassandra.consistency-level 即席查询对一致性要求不高,为了保证查询效率,保持默认值 ONE 即可

问题一:查询速度缓慢

如果查询的过滤条件没有包含 Partition Key,这将导致扫码整个数据集,查询速度非常慢!!!

Cassandra 表的 Partition Key、Cluster Key 和 Secondary Index 对于查询性能有非常大的影响,建议根据过滤条件进行设计,并使用 EXPLAIN 查看 SQL 查询计划进行优化

参考

  • Presto - Cassandra Connector
  • 《Cassandra - The Definitive Guide 2rd Edition》 O'Reilly Jeff Carpenter & Eben Hewitt
  • 《Presto 技术内幕》 电子工业出版社 JD-Presto研发团队