NoSQL的列式資料模型


為了有效地適應各種資料並滿足不斷增長的資料儲存需求,使用非常規資料庫型別的趨勢正在上升。關係資料庫多年來一直是標準。然而,隨著市場的演變和儲存成本的下降,非關係資料庫正變得越來越流行。

列式資料庫適合這種情況。這些NoSQL資料庫專為具有挑戰性、複雜的查詢而設計。與關係資料庫不同,列式資料庫按列而不是按行儲存資料。透過組合這些列來建立子組。

這種型別的資料庫具有可移動的鍵和列名。同一列族或列組的成員之間可以儲存的行數和資料型別各不相同。

當需要大型資料模型時,最常使用這些資料庫。它們對於資料倉庫非常有用,並且在需要高效能或處理苛刻的查詢時也很有用。

列式資料庫中發生了什麼

關係資料庫作為具有行和列的表工作,並具有預定的模式。寬列資料庫的模式類似但不同。它們也包括列和行。然而,它們具有動態模式,而不是固定在表中。每一列都單獨儲存。如果存在相關的或相似的列,則將它們組合成列族,然後將其與其他列族分開儲存。

每個列族的初始列(稱為行鍵)充當行識別符號。此外,每個後續列都有一個列鍵(名稱)。它允許透過識別行內的列來查詢列。列鍵之後是值和時間戳,提供資料條目或修改時間的記錄。

每行的關聯列數及其名稱可能不同。換句話說,資料庫的列並不都具有相同數量的行。與空著不同,在寬列資料庫中,對於給定列,這些行根本不存在。

行定向模型

序號

教師姓名

系別

ID

01

BK Sarkar

CSE

12

02

Supreeti Kaur

MECH

13

03

Sridher Patnaik

ECE

14

04

Bhaskar Karn

HMCT

15

列定向模型

序號

教師姓名

ID

01

BK Sarkar

12

02

Supreeti Kaur

13

03

Sridher Patnaik

14

04

Bhaskar Karn

15

序號

系別

ID

01

CSE

12

02

MECH

13

03

ECE

14

04

HMCT

15

熟悉關係資料庫的人知道,每一列都具有相同數量的行,儘管某些列有時具有空值或看起來為空。與空著不同,在寬列資料庫中,對於給定列,這些行根本不存在。

鍵空間中包含列族。類似於模式對關係資料庫的功能或意義,每個鍵空間都包含一個完整的NoSQL資料儲存。鍵空間表示一個無模式資料庫,具有資料儲存的設計及其自己的一組屬性,而NoSQL資料儲存沒有預定義的結構。

MariaDB是目前最流行的列式資料庫之一。它作為MySQL的一個分支而開發,目標是可靠且可擴充套件,能夠處理各種用途和大量查詢。Apache Cassandra是另一個列式資料庫示例,它可以跨多個伺服器處理大型資料負載,並使資料高度可用。此列表中的其他名稱包括專注於分析的Druid、Hypertable和Apache HBase。這些資料庫支援Outbrain、Spotify和Facebook等網站的特定方面。

列族型別

a)標準列族

這種列族型別具有鍵值對,其中行鍵作為鍵,值使用其名稱作為識別符號儲存在列中,就像表一樣。

b)超級列族

超級列表示一個列陣列。每個超級列都由一個名稱和一個值表示,該值對映到許多不同的列。透過將相關的超級列連線到單行下,形成超級列族。這類似於關係資料庫中多個獨立表的檢視。如果您可以在一個位置儲存單行的所有列和值——跨多個不同表的單個識別符號——那麼您將獲得超級列族。

列式資料庫的優勢

可擴充套件性。這是一個顯著的優勢,也是使用這種型別的資料庫來儲存海量資料的主要理由之一。它提供大規模並行處理,並且可以分佈在數百個不同的伺服器上,具體取決於資料庫的大小。這意味著它可以使用多個處理器同時執行相同的計算集。

壓縮。它們不僅無限可擴充套件,而且還可以有效地壓縮資料以減少儲存需求。

響應迅速 鑑於它們旨在保留海量資料並對分析有用,因此載入時間很少並且查詢執行速度很快。

列式資料庫的缺點

聯機事務處理。這些資料庫對於聯機分析處理比聯機事務處理有效得多。這意味著雖然它們旨在檢查事務,但它們在更新事務方面並不是特別有效。這就是為什麼通常看到它們包含業務分析所需的資料,而資料儲存在後端的關聯資料庫中。

增量資料載入如前所述,列式資料庫經常用於分析。由於資料緊密地儲存在列中,因此即使處理複雜的查詢,也很容易獲取它們。即使增量資料載入是可行的,列式資料庫也不是處理它們的最佳方法。首先必須透過掃描列來找到正確的行,然後必須再次掃描這些列以找到需要覆蓋的更改後的資料。

按行查詢。這完全取決於為正確的目標使用正確的資料庫型別,就像上面列出的可能的缺點一樣。透過使用特定於行的查詢,您會新增一個額外步驟來識別行,方法是掃描列,然後查詢要獲取的資料。訪問單個列中的捆綁記錄比獲取分散在多個列中的單個記錄更快。在列式資料庫中,它專門設計用於幫助您快速獲取所需的資訊,頻繁的特定於行的查詢可能會導致效能問題,從而降低資料庫的速度,從而削弱其用途。

結論

關係資料庫多年來一直是標準。列式資料庫適合這種情況。這種型別的資料庫具有可移動的鍵和列名。它們對於資料倉庫非常有用,並且在需要高效能或處理苛刻的查詢時也很有用。NoSQL 資料庫並非旨在用作廣泛形式的儲存,因為它們通常是為了滿足特定需求而建立的。

更新於:2023年4月6日

845 次瀏覽

啟動您的職業生涯

透過完成課程獲得認證

開始
廣告