如何選擇各種型別資料庫?- Raj
生活在“資料時代”,您是否在為您的應用程式選擇正確的資料庫/資料儲存方面遇到過困惑。那麼,你並不孤單 :-)。雖然“被有選擇性寵壞了”是件好事,但這恰恰使選擇數以萬計的不同資料庫/資料儲存選項變得更加困難!
在經歷了多次失敗和在此過程中吸取的教訓之後,以下是一些需要考慮的重要因素:
- 瞭解您的需求:這是您必須花費大部分時間的地方。謹慎地列出所有特定用例和需求的詳細列表。如果它是您希望現代化的現有應用程式(例如從本地遷移到 SaaS),您還需要考慮當前本地資料庫例項可能已經面臨的問題。
- 不要受“炒作”或“新”的影響:很容易被最新最熱門的資料庫或資料儲存所左右。重要的是不要讓這影響您的決定。
- 商業/技術。支援:會出現問題,雖然社群支援很大,但在出現危機情況時,獲得商業支援並保證 SLA 對重新確保首選支援團隊大有幫助。
- 多雲支援:越來越多的應用程式被期望能夠在私有/混合/公共雲選項之間切換/遷移。如果您可能必須從一個公共雲平臺切換到另一個公共雲平臺,請了解長期願景並考慮未來的可能性。在這種情況下,在大多數平臺上廣泛支援資料儲存確實有幫助。
- 訂閱/許可條款和成本:這也是一個需要考慮的重要因素
- 流行度:如果您特別想挑選一個“新來的孩子”,那麼圍繞DB-Engines 的行業接受度/流行度進行一些研究可能很重要。這絕對可以幫助您更好地比較選項。
下面是一個“過度簡化”的資料庫/資料儲存型別列表以及您可以利用它們的地方:
- 鍵值資料庫:極快的響應。與其他永續性資料庫一起用作快取。(Memcached、Redis、Azure 快取、AWS 彈性快取、GCP MemoryStore)
- 寬列/列式資料庫:鍵是一系列寬列。去中心化,可以橫向擴充套件。適合頻繁寫入但不頻繁讀取/更新。適合用於不斷增加的流動資料寫入。(Cassandra、HBase、GCP Cloud BigTable)
- TimeSeries DB:適合順序寫入但不頻繁讀取/更新(Influx DB、Open TSDB)
- 文件儲存:鍵值對,可以組織為關係/層次結構。閱讀真的很快,寫作/更新更慢。最適合一般用途。查詢有點接近關聯式資料庫。(Mongo DB、Couch DB、Azure Cosmos DB、AWS Dynamo DB、GCP Cloud BigTable)
- 物件/Blob 儲存:最適合儲存影片、檔案。通常與 CDN 一起設定以確保您可以複製並啟用從最近的副本進行訪問。(Azure Blobstore、AWS S3、GCP CloudStorage)
- 關聯式資料庫:傳統結構化資料的最佳選擇。需要一個架構,保證預先確定結構Schema。事務 SLA 保證。但是水平擴充套件可能很麻煩(My SQL、Oracle、DB2、Informix、PostGres、Azure SQL、AWS RDS、GCP Cloud SQL)
- Graph DB:知識圖構建(neo4J、DGraph、Azure Neo4j、AWS Neptune、GCP Cloud BigTable)
- 搜尋:搜尋文字、內容。就像在亞馬遜/Netflix 上搜尋文字/內容一樣。這些不是主要資料庫,必須將資料引入其中才能啟用文字搜尋。(Lucene、Elastic、SolR、melli 搜尋)
- 資料倉儲:整合資料以對所有交易進行分析。這些不適合交易,更適合離線分析。(Hadoop、Snowflake、Azure Synapse、AWS RedShift、GCP BigQuery)
- 多模型:這是一種獨特的資料庫/資料儲存庫,可滿足上述模型中的一種以上。如:Apache Druid 是一個 Relational+Columnar+TimeSeries DB。Fauna 是一個文件儲存+關係+圖形+時間序列資料庫
相關文章
- SQL稽核 | 如何快速使用 SQLE 稽核各種型別的資料庫SQL型別資料庫
- 一張圖瀏覽資料庫各種型別資料庫型別
- 一張圖解釋各種資料庫型別圖解資料庫型別
- golang — mgo解析各種資料型別分析Golang資料型別
- javascript 判斷各種資料的型別JavaScript型別
- 【SQL】18 SQL NULL 函式、SQL 通用資料型別、SQL 用於各種資料庫的資料型別SQLNull函式資料型別資料庫
- MySQL 資料型別分類和選擇MySQL 資料型別
- 設計表時,如何選擇正確的資料型別資料型別
- 時間序列化資料庫選型?時序資料庫的選擇?資料庫
- 批量鎖(適用各種關係型資料庫)資料庫
- css選擇器有哪幾種型別CSS型別
- 如何選擇合適的NoSQL資料庫SQL資料庫
- 如何為資料庫選擇最佳加密方法資料庫加密
- UIModalPresentationStyle 各種型別的區別UI型別
- 高效能Mysql(第3版)_資料型別的選擇_整數型別MySql資料型別
- 微服務真的不挑資料庫嗎?如何選擇?微服務資料庫
- 資料庫索引選擇策略資料庫索引
- PostgreSQL:資料庫的選擇SQL資料庫
- Redis的各種資料型別到底能玩出什麼花兒?Redis資料型別
- redis部署以及各種資料型別使用命令等詳解Redis資料型別
- 詳解Apache Hudi如何配置各種型別分割槽Apache型別
- 支援多種資料庫型別的遷移工具資料庫型別
- 多種資料庫型別管理軟體:DBeaverUltimate中文資料庫型別
- redis各資料型別應用概述Redis資料型別
- 如何選擇合適的SSL證書型別型別
- SSL證書有哪些型別?如何去選擇?型別
- 13種資料型別 - forbes資料型別ORB
- mysql 貨幣型別 選擇MySql型別
- 資料量與資料庫選型資料庫
- Golang 學習寶庫,各種資料收集Golang
- 如何選擇一款合適的圖資料庫?資料庫
- sql統計各種奇葩的資料庫表資料SQL資料庫
- CBO計算與資料型別的選擇(兼談日期、字元、數字三種型別的直方圖生成原理和使用)資料型別字元直方圖
- 資料庫型別區分資料庫型別
- Redis 三種特殊資料型別Redis資料型別
- 介面之多種返回資料型別資料型別
- 《高效能MySQL》筆記——MySQL建表資料型別的選擇MySql筆記資料型別
- Redis--各個資料型別最大儲存量Redis資料型別