datastax.repo
正如我在2016年对Google Cloud Bigtable的评论中所讨论的那样,Google在2006年的Bigtable论文中启发了几个大规模的分布式开源NoSQL数据库,包括Apache HBase和Apache Cassandra。 我继续解释说,Cassandra是使用Bigtable和键值存储区Amazon Dynamo的想法在Facebook上出生的,尽管Cassandra比HBase流行一点,但它具有类似SQL的查询语言(CQL),并且更容易要比HBase正常运行,它仍然很复杂并且学习曲线很重要。
Google Cloud Bigtable是运行自己的Cassandra集群的一种很好的托管替代方案。 其他包括DataStax Enterprise(DSE)和DataStax托管云。
为什么选择DataStax? 本质上,DataStax是受支持的Cassandra企业版,具有改进的性能和安全性,大大改进的管理,高级复制,内存中的OLTP,大容量加载器,分层存储,搜索,分析和开发人员工作室。 并非巧合的是,DataStax员工贡献了Apache Cassandra项目中大约85%的代码。
与Bigtable和Cassandra一样,DataStax最适合大型数据库(TB到PB),并且最适合与每行有很多列的非规范化架构一起使用。 DataStax和Cassandra用户倾向于将其用于非常大规模的应用程序。 例如, eBay使用DataStax Enterprise存储250 TB的拍卖数据,每天有60亿次写入和50亿次读取。 苹果拥有( 或拥有 )75,000个Cassandra节点,可存储10 PB以上的数据。
什么是卡桑德拉?
从本质上讲,Apache Cassandra是一个高度可用的分布式数据存储,它重视可用性和分区容忍度,而不是一致性。 Cassandra的设计将Amazon Dynamo键值存储的分区和复制与Google Bigtable的日志结构,列族数据模型结合在一起。 当您添加节点时,Cassandra会线性缩放。
在Cassandra中一致性并没有完全丧失; 这是对延迟的权衡。 用户可以指定每个读取和写入的一致性级别,范围从仅要求一个节点到要求群集仲裁,再到要求所有节点。 另一个中间选择是需要本地仲裁,这是一种在不等待远程节点更新的情况下在数据中心内保持一致性的方法。
在物理级别,Cassandra体系结构将节点组织到称为数据中心的对等体的环中,并允许将多个数据中心连接到一个群集中。 为了持久性,所有数据都首先写入提交日志,然后索引并添加到memtable中 。 当内存表已满时,它将作为SSTable (排序的字符串表)数据文件刷新到磁盘。 根据配置的复制策略,所有写入将自动在整个群集中进行分区和复制,直到配置的副本数。
从逻辑上讲,Cassandra是一个分区的行存储数据库,其中行被组织成具有所需主键的表; 辅助键是可选的。 任何授权用户都可以连接到任何数据中心中的任何节点,并使用CQL语言访问数据,该语言使用类似SQL的语法并可以处理表数据。 开发人员可以通过CQL shell( cqlsh
),DevCenter以及用于应用程序语言的驱动程序来访问CQL。
通常,一个群集每个应用程序有一个键空间,该键空间由许多不同的表组成。 复制在键空间级别上声明。 您可以为客户端会话或单个读取或写入操作配置一致性。
从一开始,Cassandra就支持键值和列数据。 后来,添加了对JSON的支持,从而允许将Cassandra用作文档数据库,尽管CQL模式仍在JSON插入中强制执行,这与MongoDB不同,后者允许无模式文档。 在不违反架构的情况下,可以在各个Cassandra表行中省略列,这是一个稀疏的数据库,例如Bigtable。
什么是DataStax Enterprise?
DataStax为Cassandra增加了功能和性能。 具体支持哪些功能取决于您使用的是Basic版本还是Enterprise版本。 每个群集必须是一个或另一个。
基本订阅添加了生产认证的Cassandra版本; NodeSync和TrafficControl(自动修复和反压机制以简化操作); 更高的吞吐量和更低的延迟; 快速的散货装载机; DataStax Studio开发人员工具; 以及支持和服务。 企业订阅还包括自动生命周期管理服务; 高级复制; 分层存储; 基于Apache Solr的集成搜索; 基于Apache Spark的集成分析(但速度更快); 和OpsCenter(请参见下面的屏幕截图)。 DSE可以部署在本地,云中或混合云中。 可以将图形数据库层DSE Graph添加到DataStax Enterprise。
什么是DataStax托管云?
DataStax托管云是您的AWS或Azure云资产中DSE的“白手套”安装。 根据DataStax的说法,对于需要管理方面的帮助或希望释放DBA来从事更有趣工作的公司而言,托管云是一个不错的选择。 希望获得实时和地理分布数据的公司; 当DBA培训成为负担时。
虽然Google Cloud Bigtable是一种低接触的服务,但它却可以使用,但DataStax托管云是一种高接触的服务。 这表明DataStax可能不如Bigtable强大和成熟。 考虑到Bigtable作为许多Google大型服务(包括网络搜索)的数据库的历史,这并不奇怪。
DSE 6有什么新功能?
Apache Cassandra臭名昭著,因为需要手动修复才能使其集群正常运行并同步节点。 DSE NodeSync消除了运行修复脚本的需要,并消除了手动修复失败时可能发生的群集中断。
DSE 6具有先进的性能。 根据DataStax的说法,它可以分解为每个内核线程的体系结构,与开源Cassandra相比,读和写操作的吞吐量最多可提高2倍。 与开放源代码Cassandra相比,存储引擎优化可将延迟减少一半; 批量加载器,其速度比以前的数据加载和卸载实用程序快4倍; 以及连续分页功能,使DSE Analytics读取性能比开源Cassandra和Apache Spark高出三倍。
DSE TrafficControl会自动防止DSE节点过载客户端或副本请求。 DSE升级服务是OpsCenter LifeCycle Manager的一部分,可显着减少手动参与补丁升级的过程。
DSE Analytics , DSE Graph和DSE Search for DSE 6中有几个新功能,以及更细粒度的安全设置 。 对DataStax Studio的改进跟踪了DSE Analytics中的改进,例如对Spark SQL的支持以及对具有交互式图的 DSE Graph的扩展IDE支持。
DSE 6安装
根据是为生产安装还是为开发和测试安装,可以采用多种不同的方式安装DSE 6。 一种方法是安装OpsCenter,然后使用其Lifecycle Manager GUI(请参见下面的并行屏幕截图)通过RHEL或Debian软件包以及DataStax代理安装DSE,前提是目标已安装SSH和Python。
另一种方法是使用Yum(RHEL)或APT(Debian),并假设您具有root权限,这通常是在生产中完成的。 第三个选项(由文档提供)是从tarball安装。 在云VM上进行安装基本上是从受支持的OS映像创建实例,然后从该实例运行该OS的安装程序。
目前,仅将DSE与Docker映像一起安装是为了开发和测试。 最终可能会获得生产认证。
如果您愿意为DataStax托管云付费,DataStax将为您完成所有安装和配置。
DSE基准
在2018年5月, zData针对Apache Cassandra 3.0在五个AWS i3.8xlarge实例作为数据库节点,以及10个较小的节点作为运行cassandra-stress应用程序的客户端上针对Apache Cassandra 3.0进行了基准测试,以DataStax Enterprise 6.0和DataStax Enterprise 5.1为基准 。 zData测试了广泛的读/写比率,并将数据库的容量提高到了约75%,拥有约2.5 TB的总数据,这对于Cassandra标准来说很小,但足以进行基准测试。 尽管我没有尝试过, 基准纸中有足够的信息可以重现测试。
对于90%的写入和10%的读取工作负载(这是典型的IoT用例),DSE 6的吞吐量比Cassandra大约提高了3倍,而DSE 5则提高了2倍:
请注意,对于这种工作负载,DSE 6每秒实现124K写操作,对于这种实例大小的选择,每个节点每秒大约25K写操作。 AWS i3.8xlarge实例经过存储优化,具有32个vCPU,244 GiB RAM和四个1900 GB NVMe SSD,每小时每个节点的价格为2.496美元。 每天大约60美元,这还不包括DSE的费用。
相比之下,对于SSD群集,Google指定典型的Cloud Bigtable稳态性能为每个节点每秒10K查询,而读写操作的延迟为6毫秒。 Cloud Bigtable节点的费用为每个节点每小时0.65美元,另加每月每GB 0.17美元。 如果拥有相当数量的SSD存储(4 x 1900 GB),则Cloud Bigtable的每个节点每天的成本略低于60美元。
DSE 6还显示了此测试的较低延迟:
对于50%的读取/ 50%的写入和10%的写入/ 90%的读取工作负载,DSE 6所显示的性能改进更为显着。
使用DSE 6
DSE 6具有用于C / C ++,C#,Java,Node.js,PHP,Python和Ruby的语言驱动程序; 这些都支持CQL和DSE特定的功能。 Cassandra还有另外九个社区支持的语言驱动程序。 支持Apache TinkerPop的图形扩展适用于C#,Java,Node.js和Python。 有用于从BI工具和其他使用SQL的系统连接到Cassandra和DSE的ODBC和JDBC驱动程序,还有一个Spark连接器,既将表公开为Spark RDD,又将RDD写入表。
DSE 6包括CQL Shell命令行和集成开发环境。 DataStax Studio(如下所示)是一种面向笔记本的交互式工具,用于CQL(卡桑德拉查询语言),Spark SQL和DSE Graph。
对于基本的本地烟雾测试,我下载了DSE 6.0.2 tarball并将其解压缩到已经安装了Java 8和Python的iMac上。 压缩包占用了约920 MB的空间,除打开包装外,无需安装。
没有为DataStax Academy视频之一显示打包的Mac安装程序,我感到很惊讶,但是显然,这种选择在某个时候消失了。 我第一次尝试从Terminal运行dse Cassandra
时,它在其日志目录中引发了Java错误。 当我尝试通过使用sudo
运行命令来覆盖权限问题时,Cassandra抱怨。 最后,我手动创建了日志目录,这次Cassandra在没有root许可的情况下启动。 nodetool status
命令告诉我,数据中心名称为Cassandra,并且可以使用cqlsh
连接到集群。
我能够选择性地按照一些DataStax Academy课程材料创建一个键空间和一些表:
当我完成DSE Cassandra的工作后,我运行了nodetool stopdaemon
使其关闭。
从卡桑德拉升起
如果您需要Cassandra的规模,这意味着您需要管理数十或数百TB的数据,并且可以使用主要是宽列的NoSQL数据库,并且需要商业支持和更好的性能。开源Cassandra,DataStax Enterprise 6是一个不错的选择。 不幸的是,DataStax没有公开提供订阅价格,只是解释了三个选项:基本,企业和托管云。
没有价格,我无法说说DataStax Enterprise在Google Cloud Bigtable方面是否具有竞争力,或者您在DataStax上的支出是否可以与拥有比开源Cassandra更少的服务器以及更少的数据库管理员所节省的费用相提并论。 但是,DataStax Enterprise的速度和维护方面的改进非常吸引人,您可能想对DSE 6进行概念验证,并向DataStax询问生产价格。
-
成本:开源Apache Cassandra是免费的。 DataStax Enterprise可免费用于非生产用途,但需要在生产中使用订阅。 订阅按节点或核心定价。
平台: Linux(发行范围广泛),MacOS 10.9+(仅开发),Docker(开发和测试); CenturyLink Cloud,Google Compute Engine,Microsoft Azure和适用于DSE的Amazon EC2; 适用于DataStax托管云的AWS和Azure云;
DSE OpsCenter和DataStax Studio支持Chrome,Firefox和Safari浏览器。
翻译自: https://www.infoworld.com/article/3298539/datastax-review-cassandra-made-faster-and-easier.html
datastax.repo