gpt4 book ai didi

cassandra - 理解 Cassandra 背后的哲学

转载 作者:行者123 更新时间:2023-12-05 05:26:05 24 4
gpt4 key购买 nike

我正在尝试熟悉 Apache Cassandra,以完成特定的 PoC 工作。在浏览了网上的各种文章,尝试了各种可用的库/客户端之后,我的脑海中突然出现了一个特定的问题。

我们想到 Cassandra 的最初原因是因为我们想要一个“真正的”分布式数据存储。根据我对“分布”的理解,它最终归结为某种“键值”和某种“一致性哈希”,如果我能够以 super 简洁的方式表达自己的话!

因此,像 Cassandra 这样的键值存储非常适合。然而,当我试图深入研究文章以了解 Cassandra 中的数据建模时,几乎所有文章都使用 CQL 进行解释/举例说明。此外,官方声明似乎是 CQL 应该是学习 Cassandra 的“合法”方式。为什么要大力插入与 SQL 保持一致?

我不需要关系模型,这就是我来Cassandra的原因。我欣赏它的基本概念,如分区键/集群列等,我想了解它是如何在 CQL 的幕后实现的。

请教 Cassandra 专家,我真的不适合 Cassandra 用户吗?我真的应该忘记键值而只是尝试在我的用例中使用 CQL(如果可能的话)吗?

最佳答案

CQL 不仅仅是“糖”,尽管最初创建它是为了鼓励人们从 SQL 世界迁移。 CQL 之前的世界一团糟,许多客户端都使用 Thrift 协议(protocol)以不同的方式编写——但与 SQL 世界不同的是,Cassandra 每天都在改进,在每个版本中都带来新功能——而且通常这些改进中的每一个都需要一个新的“客户端版本”,能够处理生成的新型结果(例如考虑计数器或集合)或使用新功能的新语法。

我很高兴我有机会在 3 年多的时间里与 Thrift 客户端 (Pelops) 一起投入生产——这帮助我理解了很多 cassandra 世界、数据结构等等—— - 但现在我再也不会回到这样的客户那里了(即使它真的很棒!)。

一开始,Cassandra 是完全不同的,特别是曾经/曾经

  • schema-less”意味着 CF 的每一行都可以包含不同数量的列,并且没有地方必须声明这些列。这给许多项目带来了灾难,在“运行时”添加新列的可能性导致您不知道可以在表中找到什么的情况。

  • super-columns”一种已弃用的数据结构,由宽行取代

现在数据模型是稳定的 CQL 语法带来了更多的可读性,您现在可以迁移到您不太熟悉的任何项目,由于独特的语法,您可以了解应用程序如何与 DB 通信——更多—— - 每个新的 Cassandra 版本都会紧跟新版本的客户端。

CQL 不是 SQL 的“子集”,就像许多人写的那样:在某种程度上它是一个“超集”,因为它能够处理扩展基本语言的不同数据结构。

我的回答是:以键值对的方式思考,但仅使用 CQL

喂,卡罗

关于cassandra - 理解 Cassandra 背后的哲学,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28494752/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com