與傳統的表格(或SQL)資料庫相比,NoSQL資料庫為軟體開發人員和其他使用者提供了更高的執行速度和更高的靈活性。
NoSQL資料庫使用的資料結構 - 鍵值對,寬列,圖形或文件 - 與關聯式資料庫使用的資料結構不同。因此,NoSQL資料庫可以在數千臺伺服器上進行擴充套件,但有時會丟失資料一致性。但是,今天特別重要的是,NoSQL資料庫特別適合處理大量分散式資料,這使它們成為大資料和分析專案的理想選擇。
如何選擇NoSQL資料庫:關鍵因素
市場上有二十多個開源和商業NoSQL資料庫,您如何選擇合適的產品或雲服務?
IDC研究副總裁Carl Olofson表示,一個重要因素是瞭解您想要提供資料的目的。
NoSQL資料庫的架構和功能各不相同,因此您需要選擇最適合所需任務的型別:
- 通常,鍵值儲存最適合應用程式中的多個程式或微服務持久共享資料。
- 如果您計劃對鄰近度計算,欺詐檢測或關聯結構評估進行深層關係分析,則圖形資料庫可能是更好的選擇。
- 如果您需要非常快速地以大量資料收集資料以進行分析,請檢視廣泛的列儲存。此類NoSQL資料庫也傾向於提供文件和圖形支援。
不要假設您的初始專案是您將應用於資料庫的唯一使用模型。您可能只是開始執行狀態或會話資料管理,然後檢視事務處理,然後再進行一些分析。
在短期內,重點應該是效能,規模,安全性,對各種工作負載(包括事務,運營和分析)的支援,與現有生態系統的整合,管理工作,雲支援以及支援的用例型別。其中,安全性至關重要。應該更多地考慮具有安全認證的NoSQL資料庫。尋找諸如靜態資料和運動資料加密等功能,以保護敏感資訊。
Yuhanna說,並非所有NoSQL資料庫都可以很好地擴充套件,所以不要因為產品屬於NoSQL類別,它將理所當然比關聯式資料庫更好地擴充套件和執行。
NoSQL在橫向擴充套件模型中提供不同的一致性級別,因此請檢視滿足您特定要求的解決方案。例如,如果要支援高度關鍵的類似銀行的事務,關聯式資料庫仍然是最佳解決方案。
您應該考慮的NoSQL資料庫
以下是您應該考慮的NoSQL資料庫。
MongoDB的
MongoDB是最受歡迎的NoSQL資料庫。MongoDB是一個免費的,開源的,跨平臺的,面向文件的資料庫,它使用類似JSON的文件和模式。該平臺由MongoDB Inc.維護,並在Gnu Affero通用公共許可證和Apache許可證的共同下發布。
MongoDB Atlas結合了公司從各種規模的組織優化數千個部署中學到的運營最佳實踐。基於雲的產品可處理資料庫管理,設定和配置,軟體修補,監控和備份,並作為分散式資料庫叢集執行。
主要功能包括完全託管備份,連續備份,時間點恢復,可查詢快照,自動生成的圖表,實時效能皮膚和可自定義的警報。使用者可以使用內建的實時遷移服務將實時資料匯入MongoDB Atlas,對應用程式的影響最小。
該資料庫是本地儲存,處理和訪問文件以及其他型別資料集的最佳選擇,它在開發人員中很受歡迎,因為它易於使用,可以擴充套件以滿足要求苛刻的應用程式,並提供全面的工具和合作夥伴生態系統。MongoDB的常見用例包括個性化,實時分析,物聯網(IoT),大資料,產品/資產目錄,安全和欺詐檢測,移動應用程式,資料中心,內容管理以及社交和協作應用程式。
Amazon DynamoDB
Amazon DynamoDB是另一種流行的基於雲的NoSQL資料庫。Amazon DynamoDB是一個完全託管的NoSQL平臺,它使用固態驅動器(SSD)來儲存,處理和訪問資料,以支援高效能和規模驅動的應用程式。
它根據工作負載的吞吐量和儲存要求自動分割伺服器上的資料,並處理更大的高效能用例。
使用者可以通過應用程式程式設計介面(API)和Amazon Web Services管理控制檯來擴充套件,監視和管理其表。DynamoDB與Amazon EMR(Apache Hadoop,Apache Spark和HBase的託管框架)緊密整合,可以執行跨多個資料來源的查詢。
該平臺同時支援鍵值和文件模型,還具有用於地理空間索引的庫。組織使用DynamoDB來支援各種用例,包括廣告活動,社交媒體應用程式,跟蹤遊戲資訊,收集和分析感測器和日誌資料以及電子商務。
DataStax和DataStax企業平臺
DataStax利用Apache Cassandra在資料中心之間進行分發。DataStax NoSQL的強大優勢在於其全球分散式架構。DataStax分發,貢獻和支援Apache Cassandra的商業企業版,這是一個開源專案。Cassandra是一個基於Google Bigtable的廣泛儲存分散式鍵值資料庫。
其主要功能包括容錯,橫向擴充套件架構,低延遲資料訪問和簡化管理。DataStax提供其他功能,如分析,搜尋,監控,記憶體和安全性,以支援關鍵應用程式。
DataStax Enterprise支援各種型別的業務應用程式,包括事務性,分析性,預測性分析和混合工作負載。它提供更廣泛的多模型功能,支援圖形和JSON資料。最重要的用例包括欺詐檢測,產品目錄,消費者個性化,推薦引擎和物聯網。
Couchbase
Couchbase是由Couchbase Inc.分發的JSON文件支援資料庫平臺。開源NoSQL DBMS支援廣泛的用例。
Couchbase Server是一個開源的NoSQL鍵值和帶有內建快取的文件資料庫,它吸引了那些需要能夠提供效能,多模型,規模和自動化的資料庫的企業。
組織使用Couchbase來支援社交和移動應用程式,內容和後設資料儲存,電子商務交易和線上遊戲應用程式。Couchbase為文件,靈活的資料模型,索引,全文搜尋和MapReduce提供全面支援,以實現實時分析。
大型企業使用該平臺來支援各種關鍵工作負載,包括運營和分析流程。
Redis Enterprise
開源平臺Redis Enterprise是Redis Labs贊助的最常見的鍵值NSQ資料庫之一。(在InfoWorld上了解有關使用Redis進行實時計量,管理訪問控制和流量整形WebSockets的更多資訊。)
Redis提供高效能的記憶體資料庫,支援寬鬆和強大的一致性,靈活的無模式模型,高可用性和易部署性。
Redis Labs開發了其他功能和技術,這些功能和技術封裝了開源軟體,併為Redis提供了增強的部署架構,同時支援開源API。
資料模型支援鍵值; 各種資料結構,如列表,集合,點陣圖和雜湊; 以及一系列通過可插拔模組的模型,如搜尋,圖形,JSON和XML。Redis支援各種用例,包括實時分析,事務,資料提取,社交媒體,作業管理,訊息佇列和快取。
MarkLogic
MarkLogic NoSQL Database是一個運營和事務性企業資料庫,專為NoSQL速度和規模而設計。使用多模型方法,資料庫提供整合和儲存關鍵資料,然後允許您將資料視為文件,圖形或關係資料(無論是內部部署,虛擬化還是雲端)。
它在資料級別提供高可用性和安全性功能,包括ACID合規性,元素級安全性,匿名化,編校和高階加密。出於這些原因,它適用於希望共享大量敏感資訊的企業。MarkLogic也是唯一具有Common Criteria認證的NoSQL資料庫。
其他主要功能旨在通過建立單個統一的資料檢視來改善使用者體驗,這些資料可以搜尋並且可以使用後設資料隨時進行驗證。這些功能包括雙時態,語義,攝取結構化和非結構化資料的能力(JSON,XML,RDF,地理空間和大型二進位制檔案的本機儲存)以及“問任何東西”Universal Index。
有助於解決治理和企業合規性的運營資料中心使得MarkLogic對於擁有資料孤島的大型企業以及面臨法規和增加的網路安全威脅的企業非常有用。
其他NoSQL選項
其他開源和商業NoSQL資料庫產品包括:
- 來自Systap的Blazegraph
- Google BigQuery,來自Google
- 來自Levyx的Helium
- Microsoft Azure Cosmos DB,來自Microsoft
- Neo4j
- 來自Oracle的Oracle NoSQL資料庫
- Riak KV,由Basho發行
- ThingSpan,來自Objectivity
- Titan,來自Aurelius(被DataStax收購)