gpt4 book ai didi

rdms - 什么是宽列存储?

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

谷歌搜索定义要么返回面向列的数据库的结果,要么给出非常模糊的定义。

我的理解是宽列存储由列族组成,列族由行和列组成。所述系列中的每一行都一起存储在磁盘上。这听起来像是面向行的数据库存储数据的方式。这让我想到了我的第一个问题:

宽列存储与常规关系数据库表有何不同? 这是我的看法:

* column family        -> table
* column family column -> table column
* column family row -> table row

这张来自 Database Internals 的图片看起来就像两个普通表:

Two column families, contents, and anchors

我对不同之处的猜测来自这样一个事实,即沿边宽的列商店提到了“多维 map ”。所以这是我的第二个问题:

宽列存储是否从左到右排序? 意思是,在上面的例子中,行首先按 Row Key 排序。 ,然后通过 Timestamp ,最后通过 Qualifier ?

最佳答案

让我们从 definition 开始宽列数据库。

Its architecture uses (a) persistent, sparse matrix, multi-dimensional mapping (row-value, column-value, and timestamp) in a tabular format meant for massive scalability (over and above the petabyte scale).



关系数据库旨在维护实体与描述实体的列之间的关系。一个很好的例子是客户表。这些列包含描述客户姓名、地址和联系信息的值。所有这些信息对于每个客户都是相同的。

宽列数据库是一种 NoSQL 数据库。

也许这是四个宽列数据库的更好形象。

Wide column databases

我的理解是顶部的第一个图像,即 Column 模型,就是我们所说的 entity/attribute/value table 。它是特定实体(列)中的属性/值表。

对于客户信息,第一个广域数据库示例可能如下所示。
Customer ID    Attribute    Value
----------- --------- ---------------
100001 name John Smith
100001 address 1 10 Victory Lane
100001 address 3 Pittsburgh, PA 15120

是的,我们可以为关系数据库建模。属性/值表的强大之处在于更不寻常的属性。
Customer ID    Attribute    Value
----------- --------- ---------------
100001 fav color blue
100001 fav shirt golf shirt

营销人员可以想象的任何属性都可以被捕获并存储在属性/值表中。不同的客户可以有不同的属性。

Super Column 模型以不同的格式保存相同的信息。
Customer ID: 100001
Attribute Value
--------- --------------
fav color blue
fav shirt golf shirt

您可以拥有与实体一样多的 super 列模型。它们可以位于单独的 NoSQL 表中,也可以放在一起作为 super 列族。

列族和 super 列族只是简单地为图片中的前两个模型提供一个行 id,以便更快地检索信息。

关于rdms - 什么是宽列存储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62010368/

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