成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

NoSQL數據庫的5個陷阱

數據庫 其他數據庫
我錄制了一段視頻,講述了NoSQL數據庫的優勢。 回應很有趣,但是我給人的印象是,并不是每個人都看到硬幣的兩面。 事實是它們會給我們帶來很多問題。

我錄制了一段視頻,講述了NoSQL數據庫的優勢。 回應很有趣,但是我給人的印象是,并不是每個人都看到硬幣的兩面。 事實是它們會給我們帶來很多問題。

[[349639]]

Schema管理

每個NoSQL數據庫都以其自己的方式處理該模式。 在某些情況下沒有Schema(MongoDB),在某些情況下它是動態的(Elasticsearch),在某些情況下它類似于關系數據庫中的Schema(Cassandra)。 在概念模型中,數據始終具有Schema。 實體,字段,名稱,類型,關系。 不管基礎類型如何,物理模型都是概念模型的表示。

NoSQL數據庫在架構方面為我們提供了更多自由。 在MongoDB中,我們可以添加兩個具有相同字段名稱但類型不同的不同文檔。 這有意義嗎? 而不是。 這會發生嗎? 當然可以。 一個簡單的人為錯誤可能會破壞我們的應用程序。

另一個問題與實體之間的關系有關。 即使數據庫中沒有關系,我們也必須記錄數據之間的關系。 從關系數據庫中,我們可以生成ERD圖。 如果是NoSQL數據庫,則可能無法使用。

使用NoSQL數據庫時,我們必須記住有關模式管理和數據驗證的問題。 沒有它,數據可能會"爆炸"。 有趣的事實:一些公司用PostgreSQL替換了MongoDB。

較低的誤差范圍

NoSQL數據庫的性能是適當的數據建模,索引和分區的結果。 在關系數據庫中,我們可以添加列,轉換表,將數據從一個表翻轉到另一個表,以及如果我們之前忘記了索引,則可以添加索引。 對于NoSQL數據庫,并非在所有情況下都可行。 我們可能需要使用一些外部工具,例如Apache Spark,甚至刪除并重新創建我們的數據模型。

在Elasticsearch中,如果我們無法獲取索引的架構/映射,則必須使用例如 重新索引API,這意味著我們必須將數據重新索引到另一個索引。

在Cassandra中,我們只能按分區鍵和群集鍵進行過濾。 如果我們忘記在鍵中添加一列,則有可能添加索引,但是如果集合的基數很大,則會降低性能。

不支持ACID

ACID屬性簡化了代碼編寫。 我們不需要處理與以下事實有關的錯誤:X表中的數據已經存在,而Y表中的數據尚未存在(如果有的話)。 根據CAP定理,我們知道存在一致的數據庫和最終一致的數據庫。 這種類型最流行的數據庫是Apache Cassandra。 最終的一致性要求對數據建模和應用程序邏輯采用不同的方法。 應該以一種更具防御性的方式編寫代碼,因為不確定您剛剛更改的記錄是否可以從應用程序的另一部分獲得。 HBase是一致性數據庫的一個示例,但是即使Cloudera相信它也不會替代關系數據庫。 一些數據庫宣稱自己是一致的,并且僅在一定程度上確保了一致性。 例如,MongoDB提供事務,但是多文檔事務僅自版本4.0起可用。

不支持SQL

NoSQL的缺點是缺少SQL。 我們可能喜歡不喜歡,但SQL是數據的基礎。 許多分析師每天都在使用SQL,學習其他語言可能會阻止他們使用數據庫。 創建Spark SQL或Beam SQL的原因是有原因的。

分析有限和/或沒有Join

這只是關于OLTP和OLAP系統之間差異的討論。 我們習慣于使用GROUP BY和JOIN子句,但并非每個數據庫都會提供此類功能。 由于數據庫的性質,聚合和合并可能非常有限(如果可能)。 對于Apache Cassandra,分析功能通常是通過將Apache Spark集群組合在一起來實現的。 您將通過我的故事學習如何將彼此聯系起來。

概要

那么值得使用NoSQL嗎? 當然是這樣。 我們必須記住,創建每個數據庫都是為了解決一類問題。 歪曲"命運"是可能的,但會帶來后果。 螺絲刀更容易用螺絲刀擰入,用錘子敲釘子和用棍子使墻壁疼痛。

一個有趣的替代方法是NewSQL數據庫。 這樣的一個例子是CockroachDb和Spanner。 他們解決了傳統關系數據庫的問題(主要是擴展問題),同時保持了ACID屬性。

 

責任編輯:趙寧寧 來源: 今日頭條
相關推薦

2019-10-30 10:49:57

數據庫基礎架構IT

2019-06-26 07:25:47

NoSQL數據庫開發

2013-02-27 10:23:55

NoSQL數據庫

2015-10-22 15:09:12

NoSQL數據庫應用場景

2024-02-02 10:51:53

2021-09-28 09:25:05

NoSQL數據庫列式數據庫

2011-10-09 09:38:03

OracleNoSQL

2021-05-14 10:45:21

PythonNoSQL數據庫

2017-05-25 10:11:46

數據庫令牌節點

2017-05-18 12:16:03

LinuxPythonNoSql

2024-03-28 09:00:00

NoSQL數據庫

2011-07-19 09:08:50

JavaNoSQL

2019-03-20 15:59:11

NoSQLRedis數據庫

2019-07-08 10:36:34

數據庫WebNoSQL

2010-04-01 09:45:38

NoSQL

2014-06-30 14:20:05

NoSQL數據庫

2019-09-11 15:10:01

NoSQLSQL數據庫

2010-03-16 14:05:19

Cassandra

2022-02-14 09:00:00

SQLNoSQL數據庫

2017-10-25 12:59:04

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲欧美国产毛片在线 | 国产精品九九九 | 欧美bondage紧缚视频 | 一区二区三区视频在线免费观看 | 精品久久一区二区三区 | 日美女逼逼 | 日韩在线 | 黄色大片在线 | 天天色天天色 | 青久草视频 | 在线观看午夜视频 | 日本特黄a级高清免费大片 特黄色一级毛片 | 在线播放日韩 | 中文字幕欧美一区二区 | 欧美一级欧美一级在线播放 | 国产a区 | 亚洲一区中文字幕 | 成人一级黄色毛片 | 国产精品九九 | 日本天天操 | 亚洲国产精品一区二区三区 | 亚洲欧美一区二区三区视频 | 日韩精品一区二区三区久久 | 国产高清一区 | 精彩视频一区二区三区 | 一区二区三区视频在线免费观看 | 中文字幕成人 | 久久蜜桃av一区二区天堂 | 久久精品网 | 精品中文字幕在线 | 91精品国产乱码久久久久久久久 | 久久手机在线视频 | 久久男人 | 亚洲视频一区二区三区 | 亚洲精品麻豆 | 丝袜毛片 | 九九久久国产 | 最新一级毛片 | 九九色九九 | 中文字幕一区二区三区四区五区 | 激情黄色在线观看 |