在許多情況下,使用SQL資料庫用於儲存/檢索資料就足夠了。但在另一些情況下,要麼SQL資料庫規模不夠,要麼還有更好的工具。這一切都取決於使用情況。
現在讓我們來討論一下儲存/處理資料用的不同的非SQL工具——NoSQL資料庫,記憶體快取,全文搜尋引擎,實時流,圖形資料庫,等等。
MongoDB
一種流行的,跨平臺的面向文件的資料庫。
Elasticsearch
專為雲而構建的分散式REST風格搜尋引擎。
Cassandra
一個開源的分散式資料庫管理系統,最初由臉譜網開發,被設計用來處理橫跨多個商用伺服器的大量資料,提供了無單點故障的高度可用性。
Redis
一個開源的(BSD許可),記憶體資料結構儲存,作為資料庫、快取和訊息代理使用。
Hazelcast
基於Java的開源記憶體資料網格。
EHCache
一種被廣泛使用的開源Java分散式快取,用於通用快取、Java EE和輕量級容器。
Hadoop
用Java編寫的.一個開源軟體框架,用於分散式儲存和對在計算機叢集上的超大型資料集的分散式處理。
Solr
一個開源的企業搜尋平臺,用Java編寫的,來自於Apache Lucene專案。
Spark
Apache Software Foundation中最活躍的專案,一個開源的叢集計算框架。
Memcached
一個通用的分散式記憶體快取系統。
Apache Hive
提供了Hadoop之上類似於SQL的層。
Apache Kafka
一個高通量、分散式的釋出-訂閱式訊息系統,最初開發在LinkedIn上。Windows上脫離Cygwin執行Apache Kafka。
Akka
一個工具包和執行時,用於在JVM上構建高度並行的、分散式的、有彈性的訊息驅動的應用程式。
HBase
一個開源的,非關係型的,分散式資料庫,在谷歌的BigTable後建模,用Java編寫,並執行在HDFS上。
Neo4j
用Java實現的開源圖形資料庫。
CouchBase
一個開源的、面向文件的分散式NoSQL資料庫,特別為了互動式應用而優化。
Apache Storm
開源的分散式實時計算系統。
CouchDB
使用JSON來儲存資料的面向文件的開源NoSQL資料庫。
Oracle Coherence
一個記憶體的資料網格解決方案,通過提供快速訪問常用資料的渠道,使得企業可預測地擴充套件關鍵任務應用程式。
Titan
一個可擴充套件的圖形資料庫,優化的目的在於儲存和查詢包含數千億頂點和邊的圖形,分佈在多機叢集。
Amazon DynamoDB
一個快速、靈活、完全管理的NoSQL資料庫服務,用於在任何規模需要一致的、個位數毫秒延遲的所有應用程式。
Amazon Kinesis
用於在AWS上的流資料的實時平臺。
Datomic
一個用Clojure寫的完全事務式的,支援雲的,分散式資料庫。