史上最全的“大資料”學習資源(上)
阿新 • • 發佈:2018-12-27
資源列表:
- 關係資料庫管理系統(RDBMS)
- 框架
- 分散式程式設計
- 分散式檔案系統
- 檔案資料模型
- Key -Map 資料模型
- 鍵-值資料模型
- 圖形資料模型
- NewSQL資料庫
- 列式資料庫
- 時間序列資料庫
- 類SQL處理
- 資料攝取
- 服務程式設計
- 排程
- 機器學習
- 基準測試
- 安全性
- 系統部署
- 應用程式
- 搜尋引擎與框架
- MySQL的分支和演化
- PostgreSQL的分支和演化
- Memcached的分支和演化
- 嵌入式資料庫
- 商業智慧
- 資料視覺化
- 物聯網和感測器
- 文章
- 論文
- 視訊
關係資料庫管理系統(RDBMS)
- MySQL:世界最流行的開源資料庫;
- Oracle 資料庫:物件-關係型資料庫管理系統。
框架
- Apache Hadoop:分散式處理架構,結合了 MapReduce(並行處理)、YARN(作業排程)和HDFS(分散式檔案系統);
- Tigon:高吞吐量實時流處理框架。
分散式程式設計
- AddThis Hydra:最初在AddThis上開發的分散式資料處理和儲存系統;
- AMPLab SIMR:用在Hadoop MapReduce v1上執行Spark;
- Apache Beam:為統一的模型以及一套用於定義和執行資料處理工作流的特定SDK語言;
- Apache Crunch:一個簡單的Java API,用於執行在普通的MapReduce實現時比較單調的連線、資料聚合等任務;
- Apache DataFu:由LinkedIn開發的針對Hadoop and 和Pig的使用者定義的函式集合;
- Apache Flink:具有高效能的執行時間和自動程式優化;
- Apache Gora:記憶體中的資料模型和永續性框架;
- Apache Hama:BSP(整體同步並行)計算框架;
- Apache MapReduce:在叢集上使用並行、分散式演算法處理大資料集的程式設計模型;
- Apache Pig:Hadoop中,用於處理資料分析程式的高階查詢語言;
- Apache REEF:用來簡化和統一低層大資料系統的保留性評估執行框架;
- Apache S4:S4中流處理與實現的框架;
- Apache Storm:Twitter流處理框架,也可用於YARN;
- Apache Samza:基於Kafka和YARN的流處理框架;
- Apache Tez:基於YARN,用於執行任務中的複雜DAG(有向無環圖);
- Apache Twill:基於YARN的抽象概念,用於減少開發分散式應用程式的複雜度;
- Cheetah:在MapReduce之上的高效能、自定義資料倉庫;
- DataTorrent StrAM:為實時引擎,用於以儘可能暢通的方式、最小的開支和對效能最小的影響,實現分散式、非同步、實時的記憶體大資料計算;
- Facebook Corona:為Hadoop做優化處理,從而消除單點故障;
- Netflix PigPen:為MapReduce,用於編譯成Apache Pig;
- Nokia Disco:由Nokia開發的MapReduc獲取、轉換和分析資料;
- JAQL:用於處理結構化、半結構化和非結構化資料工作的宣告性程式語言;
- Kite:為一組庫、工具、例項和文件集,用於使在Hadoop的生態系統上建立系統更加容易;
- Onyx:分散式雲端計算;
- Pydoop:用於Hadoop的Python MapReduce和HDFS API;
- Streamdrill:用於計算基於不同時間視窗的事件流的活動,並找到最活躍的一個;
- Tuktu:易於使用的用於分批處理和流計算的平臺,通過Scala、 Akka和Play所建;
- Twitter Scalding:基於Cascading,用於Map Reduce工作的Scala庫;
- Twitter Summingbird:在Twitter上使用Scalding和Storm串流MapReduce;
- Twitter TSAR:Twitter上的時間序列聚合器。
分散式檔案系統
檔案資料模型
- Crate Data:是一個開源的大規模可擴充套件的資料儲存,需要零管理模式;
- Facebook Apollo:Facebook的Paxos演算法,類似於NoSQL資料庫;
- jumboDB:基於Hadoop的面向文件的資料儲存;
- MarkLogic:模式不可知的企業版NoSQL資料庫技術;
- MongoDB:面向文件的資料庫系統;
- RavenDB:一個事務性的,開源文件資料庫;
- RethinkDB:支援連線查詢和群組依據等查詢的文件型資料庫。
Key Map 資料模型
注意:業記憶體在一些術語混亂,有兩個不同的東西都叫做“列式資料庫”。這裡列出的有一些是圍繞“key-map”資料模型而建的分散式、持續型資料庫,其中所有的資料都有(可能綜合了)鍵,並與對映中的鍵-值對相關聯。在一些系統中,多個這樣的值對映可以與鍵相關聯,並且這些對映被稱為“列族”(具有對映值的鍵被稱為“列”)。
另一組也可稱為“列式資料庫”的技術因其儲存資料的方式而有別於前一組,它在磁碟上或在儲存器中——而不是以傳統方式,即所有既定鍵的鍵值都相鄰著、逐行儲存。這些系統也彼此相鄰來儲存所有列值,但是要得到給定列的所有值卻不需要以前那麼繁複的工作。
前一組在這裡被稱為“key map資料模型”,這兩者和Key-value 資料模型之間的界限是相當模糊的。後者對資料模型有更多的儲存格式,可在列式資料庫中列出。若想了解更多關於這兩種模型的區分,可閱讀Daniel Abadi的部落格:Distinguishing two major types of Column Stores。
- Apache Accumulo:內建在Hadoop上的分散式鍵/值儲存;
- Apache Cassandra:由BigTable授權,面向列的分散式資料儲存;
- Apache HBase:由BigTable授權,面向列的分散式資料儲存;
- Google Cloud Datastore:為完全管理型的無模式資料庫,用於儲存在BigTable上非關係型資料;
- Hypertable:由BigTable授權,面向列的分散式資料儲存;
- InfiniDB:通過MySQL的介面訪問,並使用大規模並行處理進行並行查詢;
- Tephra:用於HBase處理;
鍵-值資料模型
- Aerospike:支援NoSQL的快閃記憶體優化,資料儲存在記憶體。開源,“’C’(不是Java或Erlang)中的伺服器程式碼可精確地調整從而避免上下文切換和記憶體拷貝”。
- Amazon DynamoDB:分散式鍵/值儲存,Dynamo論文的實現;
- Edis:為替代Redis的協議相容的伺服器;
- ElephantDB:專門研究Hadoop中資料匯出的分散式資料庫;
- GridDB:適用於儲存在時間序列中的感測器資料;
- LinkedIn Krati:簡單的永續性資料儲存,擁有低延遲和高吞吐量;
- Redis:記憶體中的鍵值資料儲存;
- Riak:分散式資料儲存;
- Storehaus:Twitter開發的非同步鍵值儲存的庫;
- Tarantool:一個高效的NoSQL資料庫和Lua應用伺服器;
- TiKV:由Google Spanner和HBase授權,Rust提供技術支援的分散式鍵值資料庫;
- TreodeDB:可複製、共享的鍵-值儲存,能提供多行原子寫入。
圖形資料模型
- Apache Giraph:基於Hadoop的Pregel實現;
- ArangoDB:多層模型分散式資料庫;
- DGraph:一個可擴充套件的、分散式、低時延、高吞吐量的圖形資料庫,旨在為Google生產水平規模和吞吐量提供足夠的低延遲,用於TB級的結構化資料的實時使用者查詢;
- Facebook TAO:TAO是facebook廣泛用來儲存和服務於社交圖形的分散式資料儲存;
- GCHQ Gaffer:GCHQ中的Gaffer是一個易於儲存大規模圖形的框架,其中節點和邊緣都有統計資料;
- GraphLab PowerGraph:核心C ++ GraphLab API和建立在GraphLab API之上的高效能機器學習和資料探勘工具包的集合;
- GraphX:Spark中的彈性分散式圖形系統;
- Infovore:以RDF為中心的Map / Reduce框架;
- MapGraph:用於在GPU上大規模並行圖形處理;
- Neo4j:完全用Java寫入的圖形資料庫;
- Titan:建於Cassandra的分散式圖形資料庫;
NewSQL資料庫
- Actian Ingres:由商業支援,開源的SQL關係資料庫管理系統;
- Amazon RedShift:基於PostgreSQL的資料倉庫服務;
- BayesDB:面向統計數值的SQL資料庫;
- CitusDB:通過分割槽和複製橫向擴充套件PostgreSQL;
- Cockroach:可擴充套件、地址可複製、交易型的資料庫;
- Datomic:旨在產生可擴充套件、靈活的智慧應用的分散式資料庫;
- Google F1:建立在Spanner上的分散式SQL資料庫;
- H-Store:是一個實驗性主存並行資料庫管理系統,用於聯機事務處理(OLTP)應用的優化;
- Haeinsa:基於Percolator,HBase的線性可擴充套件多行多表交易庫;
- HandlerSocket:MySQL/MariaDB的NoSQL外掛;
- MemSQL:記憶體中的SQL資料庫,其中有優化的快閃記憶體列儲存;
- NuoDB:SQL / ACID相容的分散式資料庫;
- Pivotal GemFire XD:記憶體中低延時的分散式SQL資料儲存,可為記憶體列表資料提供SQL介面,在HDFS中較持久化;
- SAP HANA:是在記憶體中面向列的關係型資料庫管理系統;
- SenseiDB:分散式實時半結構化的資料庫;
- Sky:用於行為資料的靈活、高效能分析的資料庫;
- SymmetricDS:用於檔案和資料庫同步的開源軟體;
- Map-D:為GPU記憶體資料庫,也為大資料分析和視覺化平臺;
- TiDB:TiDB是分散式SQL資料庫,基於谷歌F1的設計靈感;
- VoltDB:自稱為最快的記憶體資料庫。
列式資料庫
注意:請在鍵-值資料模型 閱讀相關注釋。
- Parquet:Hadoop的列儲存格式;
- Pivotal Greenplum:專門設計的、專用的分析資料倉庫,類似於傳統的基於行的工具,提供了一個列式工具;
- Vertica:用來管理大規模、快速增長的大量資料,當用於資料倉庫時,能夠提供非常快的查詢效能;
- Google BigQuery :谷歌的雲產品,由其在Dremel的創始工作提供支援;
- Amazon Redshift :亞馬遜的雲產品,它也是基於柱狀資料儲存後端。
時間序列資料庫
- Cube:使用MongoDB來儲存時間序列資料;
- Axibase Time Series Database:在HBase之上的分散式時間序列資料庫,它包括內建的Rule Engine、資料預測和視覺化;
- Heroic:基於Cassandra和Elasticsearch的可擴充套件的時間序列資料庫;
- InfluxDB:分散式時間序列資料庫;
- Kairosdb:類似於OpenTSDB但會考慮到Cassandra;
- OpenTSDB:在HBase上的分散式時間序列資料庫;
- Prometheus:一種時間序列資料庫和服務監測系統;
- Newts:一種基於Apache Cassandra的時間序列資料庫。
類SQL處理
- Actian SQL for Hadoop:高效能互動式的SQL,可訪問所有的Hadoop資料;
- Apache Drill:由Dremel授意的互動式分析框架;
- Apache Hive:Hadoop的類SQL資料倉庫系統;
- Apache Optiq:一種框架,可允許高效的查詢翻譯,其中包括異構性及聯合性資料的查詢;
- Apache Phoenix:Apache Phoenix 是 HBase 的 SQL 驅動;
- Pivotal HAWQ:Hadoop的類SQL的資料倉庫系統;
- RainstorDB:用於儲存大規模PB級結構化和半結構化資料的資料庫;
- Spark Catalyst:用於Spark和Shark的查詢優化框架;
- SparkSQL:使用Spark操作結構化資料;
- Splice Machine:一個全功能的Hadoop上的SQL RDBMS,並帶有ACID事務;
- Stinger:用於Hive的互動式查詢;
- Tajo:Hadoop的分散式資料倉庫系統;
- Trafodion:為企業級的SQL-on-HBase針對大資料的事務或業務工作負載的解決方案。
資料攝取
- Apache Sqoop:在Hadoop和結構化的資料儲存區之間傳送資料的工具;
- Cloudera Morphlines:幫助 Solr、HBase和HDFS完成ETL的框架;
- Fluentd:採集事件和日誌的工具;
- Google Photon:實時連線多個數據流的分散式計算機系統,具有高可擴充套件性和低延遲性;
- Heka:開源流處理軟體系統;
- HIHO:用Hadoop連線不同資料來源的框架;
- Kestrel:分散式訊息佇列系統;
- Logstash:用於管理事件和日誌的工具;
- Netflix Suro:像基於Chukwa 的Storm和Samza一樣的日誌聚合器;
- Skizze:是一種資料儲存略圖,使用概率性資料結構來處理計數、略圖等相關的問題;