Apache Cassandra的树立是为了结合Dynamo[1]和Big Table[2]论文的各个方面,并创造一种办法来简化数据的读取和写入办法,这样它就能够处理正在创立的数据量。经过坚持简略,Cassandra减少了读写开支的凌乱性,使其更简略扩展和分配数据。
存储附加索引(SAI)是一个新项目,为Cassandra供给二级索引,一起消除了早年的一些问题。这应该会使大规划查询Cassandra中的数据更加数据处理是什么作业简略,一起也会减少每个集群的磁盘存储需求。
现在CassGoogleandra中二级索引的办法
作为一个分布式数据库,Cassandra能够供给令人难以置信的规划,但它也需求一些阅历,即怎样在初步时为你的数据建模。然后,数据库索引树立在这个初步的数据模型上,以扩展你的查询,使其更有用率。可是,这种办法有必要跟着时刻的推移而调整。为了跟上新的用例Go和部署办法,咱们有必要看看appleC数据处理软件assappearanceandr数据处理软件a是怎样处理数据索引的,通配符来查找姓名类似的文件然后考虑新的办法来减少这种可用性和稳定性之间的权衡。
索宫颈癌早期症状引的最google翻译终方针是改善你读取数approach据的办法。可是,你在APP初步时环绕怎样写数据所做的抉择也会影响你环绕索引approach所能做的作业。假设你被优化为快速写入–通配符来查找姓名类似的文件就像你在Cassandra中那样–添加的凌乱性会对你数据处理的基本内容处理索引的办法产生负面影响,并因而影响通配符的运用你的功用。因而,值得一看的是,在一个Cassanda数据库集群中,数据是怎样被写入一个节点的**(图1**)。
图1:Cassandra数据库集群中的数据处理
Cassandra是根据日志结构化吞并google谷歌查找主页(LSM)树[3]的办法,其间估计会有许多的数据刺进。这是一种常见的办法,也被其他数据库如HBase、InfluxD数据处理员是干什么的B和RocksDB运用。经过搜集写入的数据,然后在预先排序的数据作业中供给应他们,能够坚持快速的写入速度,并安排数据进行分发。一个业务是这样作google谷歌查找主页业的。
- 每个业务将验证数据的格局是否正确,并对照现有的办法进行检查。
- 然后,业务数据将被写入提交日志数据处理员是干什么的的尾部,把它放在文件指针的下一个方位上。
- 然后,数据被写入一个memtable,这是内存中办法通配符是什么意思的哈试图。
每个业务–在Cassandra术语中称为骤变–在这些作业产生时被招认。这google翻译与其他数据库不同,其他数据库在一个特定的点上设置锁,然后寻求施行写入,这或许需求额外的时刻来结束每个买卖。
内存表是根据物理内存的–当这些内存填满时,其间的数据会在磁盘上一次性写出来,到一个叫做SSTable(分类字符串表)的文件中。一旦SSTable容纳了这些耐久化数据工程造价,提交日志就会被删去,这个进程又初步了。在Cassandra中,SSTable是不可改动的。跟着时刻的推移,数据处理软件跟着更多的数据被写入,一个叫做压实的后台进程会将SSTable吞并并排序为新的SSTable,这些SSTable也是不可变的。
以往索引的问题
Cassandra现在环绕数公积金据索引的办法没有很好地跟上用户需求。关于许多用户来说,结束现在的索引所涉及的权衡是如宫崎骏此的繁琐,以至于他们彻底避免运用索引。googleplay这意味着许多现在的Cassandra用户只运用根柢的数据模型和查询,以取得最佳功用,因而错过了他们数据中存在的一些潜力,假设他们能够更有用地建模和索引的话。
在Cassandra的国际里,分区键是一个仅有的键,作为主索引通配符怎么用,用来寻觅Cassandra集群中的数据方位。Cassandra运用分区键来辨认哪个节点存储了所需的数据,然后辨认存储该分区数据的数据文件。
在像Cassandra这样的分布式体通配符系中,列值存在于每个数据节点上。任何查询都有必要发送到集群中的每个节点,google服务结构数据被查找、搜集,然后被吞并。一旦效果被吞并,该查询的效果就会回来给用户。在这种状况下,功用就取决于枸杞每个节点找到列值并回来该信息的速度。
Cassandra有两种二级索引的结束办法。StorGoage Attached Secondary Indexigoogle浏览器ng(SASI)和Secondary Indexes。尽管这些结束对其特定的运用状况有用,但它们并不适宜所有的状况。作为一龚俊个项目,appointment咱们不断处理的两个首要问题是写入扩展和磁盘上通配符有哪些的googleplay安卓版下载索数据处理是什么作业引巨细。了数据处理英文解这些痛点关于了解googleplay安卓版下载咱们为什么需求一个新的计划非常重要。
二级索引一初步是作为运用Thrift的前期数据模型的一个便利功用。后来Thrift被Cassandra查询言语(CQL)替代,二级索引功用被 “CREATE INDEX “语法所保存。尽管这使得创立二级索引成为或许,但它也经过在业务途径中添加一个新的进程而导致了写扩展。当索引列产生骤变时,这将触发一个索引操作,在一个独自的索引文件中从头索引数据。
这反过来又会极大地添加单行写操作application的磁盘活approach动。当一个节点正在进行许多宫崎骏的骤变时–而这正是Cassa龚俊ndra树立的意图–这会活络导致磁盘的饱满,然后影响整个集群。这也使得提前规划磁盘空间变得更加困难,因为数据的google商铺添加将更难猜想。
另一种办法是存储附加二级索引appear(SASI)。SASI初步是为了处理一个特定的查询问题,而不是二级索引的一般问题。它经过在部分数据匹配的基础上寻觅行来做到这一点数据处理。通配符,或LIKE查询,或对稀疏数据如时刻戳的规划查询。
SASI查看了提交给Cassandra节点的骤变,数据在初步写入时将在内存中树立索引,这与memtables的运用办法很类似。这意味着每次骤变都不需求磁盘活动,这关于有许多写活动的集群是一个巨大的改善。当memtables被改写到SSTables时,数据的相应索引也appointment被改写。当紧缩发application生时,数据被从头索引,并在新的SSTables创立时被写入一个新文件。从磁盘活动的角度来看,这宫崎骏是一个重大改善。
SASI的问题是,这些额外的索引需求许多的磁盘存储来掩盖每一列通配符有哪些的索引。关于google那些处理Cassandra集群的人来说,这是一个非常令人头痛的问题。SASI也是由一个团队凑集起来的东西,发布后并没有什么进一步的改善。当SASI中的通配符来查找姓名类似的文件过错被发现时,修改的费用也很高。
存储附加索引和二级索引
为了改善Cassandra的二级索引,需求在早年的施行中汲取的教训的基础上采纳新的办法。Storage Attgoogle地球ached Indexing(SAI)是一个新项目,它处理了Google写扩展和索引文件巨细的问题,一起也使创立和作业更凌乱的查询变得更简略。
SASI在运用内存索引和用SSTables冲刷索引方面有正确的办法。因而,SAI在骤变彻底提交时对数据进行索引。经过优化和许多的检验,对写入功用的影响有了极大的改善。通配符的运用因而,与早年通配符怎么用的通配符的运用二级索引办法比较,这应该供给40%的吞吐量和跨越200%的写延迟。
SAI还根据数据类型运用两种不同的索引计划来处理磁盘存储量数据处理软件的问题。第一种是运用根据Trie[4]的文本索引,它运用倒置的索引和工程造价分红字典的术语。这供google谷歌查找主页应了更好的紧缩率,因而也供给google空间了更小的索引六。关于数值,SAI运用了一种根据Lucene的块状kd-trees[5]的办法,以行进规划查询的功用,用一个独自的行ID列表来优化标记次第查询。
只是看数据处理名词解释一下索引存储,在体积上与表索引的数量数据处理的最小单位比较有很大的改善。为了比较二级索引、appearSASI和SAI,咱们进行了一些基准检验,以闪现针对磁盘存储的功用水平。正如你在图2中所看到的,当你扩展索引数据时,用于SASI的磁盘application容量会许多添加。
图2:SAI、SASI和传google商铺统2i办法的比较
在写入扩展和索引巨细之外,SAI还能够在未来进一步扩展,以符合Cassandra项目在未来构建中更多模googleplay块化开展的方针。SAI现在被列为Cassandra增强进程的CEP-7[6],谈论的是怎样有或许将其归入数据处理办法有哪些Apache Cassaappstorendra的4.x分支中。在那之前,你能够经过一些免费的在线训练[7]了解更多关于怎样运用SAI的信息。
SAI代表了两件事:首要,这是一个很appetite好的机会,能够帮助Cassandappreciatera用户创立二级索引,并改善他们怎样大规划地作业查询。其次,这也是咱们DataStax怎样跟进咱们的计划,添加对社区的贡献并以代码为主导的一个Go比如。经过使Cassandra更简略运用,这使Cassandra对每个人都更好。
链appstore接和文献
[1] www.allthingsdigoogle服务结构stributed.Gocom/files/amazo…
[2] static.googleusercontent.com/media/resea…
[宫颈癌3] en.wikipedia.org/wappointmentikigoogle地球/Log-st…
[4] en.wi通配符选择器kipedia.org/wiki/Trie
[5] users.cs.duke.edu/~pankaj/pub…
[6] cwiki.apache.org/confluence/…
[7] www.datastax.com/dev/cassand…
The postCloud-native applications and data with Kubernetes and Apache Cassappetiteandra – Part 2appeared first onDevOps数据处理名词解释 Conference.