spark 动态预加载数据_热门大数据引擎/组件概要
熱門大數據引擎/組件概要
TeraData
老牌數倉公司,已經上市十幾年,數倉領導者地位(from Gartner),目前在向云端發力。主要提供一體機,MPP架構,運行穩定,之前工行用的是TD的系統,價格相對較貴。
Greenplum
2006年第一款產品,基于PostgreSQL,采用無共享MPP架構,主要用于數據分析OLAP。2010年被EMC收購,于2015年開源,擁有完整的生態。Greenplum是全球十大經典和實時數據分析產品中唯一的開源數據庫。
Vertica
無共享列存MPP,開創列存DBMS先河,2006年1.0版本,2011被惠普收購,商業版功能強大,被很多以數據為主的公司采購使用。主要用于做數據倉庫和OLAP,支持時序數據、機器學習等,也可以適配hadoop,spark等,即便是適配hadoop,速度也顯著超越impala,就更不用說hive on tez了。
Hadoop(HDFS+MapReduce+Yarn)
2006年HDFS和MapReduce被納入Hadoop項目,2008年Cloudera基于Hadoop開始提供服務。Hadoop是一個能夠對大量數據進行分布式處理的軟件框架,高擴展、高容錯、低成本等特點可以認為是為大數據領域開了另一扇門。
Hive
hive是基于Hadoop構建的一套數據倉庫分析系統,它提供了豐富的SQL查詢方式來分析存儲在Hadoop分布式文件系統中的數據。Hive比較適合離線處理,因為它把SQL轉MapReduce執行響應速度較慢,也可以通過Hive on Tez通過DAG來減少落盤次數來提速。
HBase
基于Hadoop的列存數據庫,特點是對大寬表的支持,支持結構化和半結構化數據。2007年第一個可用的HBase隨著Hadoop 0.15.0發布。HBase的LSM-Tree架構大幅提升了寫入性能,但影響了實時讀取性能,真是魚和熊掌啊。
Impala
Hadoop之上的開源MPP查詢分析引擎,C++,存儲支持hdfs、hbase、S3等。 主要解決Hive速度太慢的問題。Cloudera support。可以搭配hdfs+parquet存儲格式使用,也可以集成kudu一起使用。
Spark
用于大規模數據處理的統一分析引擎。既支持作業任務處理,又支持流處理(SparkStreaming)和SQL(SparkSQL),以及機器學習和圖處理,社區生態活躍。通常認為,與MR相比spark通過內存計算來顯著提速。Spark社區非常成熟,后面提到的很多平臺或大數據組件都與spark實現無縫集成。
Kylin
一個開源的分布式分析引擎,提供Hadoop/Spark之上的SQL查詢接口及多維分析(OLAP)能力以支持超大規模數據,最初由eBay Inc. 開發并貢獻至開源社區。它能在亞秒內查詢巨大的Hive表。核心是預加載和構建cube,cube指定度量維度,我覺得本質上是一種物化視圖吧。
Apache Kudu
Kudu是cloudera開源的運行在hadoop平臺上的列式存儲系統(fast analytics on fast data),核心C++編寫。有了hdfs和hbase為什么還需要kudu?一是kudu的表結構與關系型數據庫類似,使用簡單;二是提供高效插入/更新機制,大量隨機讀性能要顯著超過hbase,因此可以適用于近實時的分析,快速分析那些快速變化的數據。kudu適合做基于SQL的OLAP,其存儲不依賴hdfs,也可以集成impala一起使用。
ClickHouse
最快開源OLAP引擎。列存+定長,更能發揮向量計算的優勢。稀疏矩陣+近似計算提升響應速度,但不能用于點查。對標Vertica宣稱比vertica快3到5倍,速度是HIVE的300倍。俄羅斯產,代碼開源很可貴,但詳細文檔不夠豐富。
SnappyData
基于Spark+GemFire的組合實現的一個統一的OLTP+OLAP+流式寫入的內存分布式數據庫,Spark能適配的存儲,它都可以適配支持,通過緩存到內存來提速。某些增強功能(如近似計算等)由商用版提供。
Druid
OLAP數據庫+時序支持,支持高頻insert,攝入數據分Timestamp、Dimensions、Metrics三部分,按時間粒度給數據做預聚合,維度不爆炸(對比kylin)。索引使用bitmap,速度快。數據存儲在Deep Storage(永久),并加載到Historicals,可理解為冷數據和熱數據,可以適配各種后端存儲。自帶可視化圖形界面,這個比較贊。
Presto
純內存計算的OLAP引擎,FaceBook團隊之前使用HIVE,但HIVE依賴的MR太慢了,所以他們又搞了個Presto,通過并行的內存計算去提速,本身不存數據。用于做數據倉庫和OLAP。TeraData的團隊支持過這個項目,但目前已經沒有再支持了。
Google Mesa
Mesa是一個分布式、多副本的、高可用的數據處理、存儲和查詢系統,針對結構化數據。一般數據從上游服務產生(比如一個批次的spark streaming作業產生),在內部做數據的聚合和存儲。支持近實時更新(與Cube方案比),數據分維度列和指標列,指標列指定聚合函數。
Apache Doris
前身是百度2017年開源系統PALO,后貢獻給apache更名為Doris。Doris 是一個 MPP 的 OLAP 系統,主 要整合了 Google Mesa(數據模型),Apache Impala(MPP Query Engine)和 Apache ORCFile (存儲格式,編碼和壓縮) 的 技術。高度兼容Mysql協議。 元數據管理對impala的p2p模式做了更新,Doris 采用 Paxos 協議以及 Memory + Checkpoint + Journal 的機制來確保元數據的 高性能及高可靠 。
ElasticSearch
2010年第一個版本,2012成立公司運營。目前Elasticsearch是最受歡迎的企業搜索引擎,其次是Apache Solr,也是基于Lucene。用于實時檢索。看家本事是通過倒排索引支撐的全文檢索
Parquet
基于Google Dremel 實現的一種精巧的列式存儲格式。核心思想是使用“分片和聚合算法”來標示嵌套類型數據。支持多種查詢引擎和計算框架,能夠平滑轉換多種數據模型(如Avro, Thrift..等)。聚合算法的核心是分r、d值,代表Repetition level 和 definition level。R標示發生了重復的字段的level,D:optional 或者 repeated可以不存在,但若實際存在則D值+1。通過這兩個值可以使用向量機恢復數據結構。
CarbonData
華為開源的一種用于交互查詢的indexed列存。通過建立多級索引,來支持多維OLAP和點查詢。支持物化視圖。使用上建議根據列值特點來定義良好的索引維度,避免出現強distinct值帶來的負面結果。與SPARK集成更平滑,但仍然要注意使用多種后端存儲格式可能帶來的工作量。
MongoDb
MongoDb是一種開源NoSQL文檔型數據庫,基本概念是數據庫、集合、文檔。文檔是一個鍵值(key-value)對(即BSON)。MongoDB 的文檔不需要設置相同的字段,并且相同的字段不需要相同的數據類型,這與關系型數據庫有很大的區別。支持固定大小的collection。支持MapReduce、聚合、分片與副本。MongoDb生態不斷完善,在數據庫排名中不斷升高,被各大互聯網公司追捧。商業公司10gen提供MongoDB支持,2009 年 2 月 10gen 正式開源了 MongoDB 的第一個版本,后該公司改名為MongoDB,商業版提供加密、LDAP和Kerberos集成等更為完善的功能支持。
Cassandra
Apache Cassandra是一套開源NoSQL數據庫系統。最初由facebook開發之后開源。使用寬列存儲模型,類似于HBase,但它不需要存儲在HDFS上,而是直接存本地,結合內存和磁盤來進行讀寫。寫入性能大于讀性能。從Benchmark測試結果來看整體性能優于HBase。
參考:
Gartner 2019排名:Greenplum躍居第三
淺談從Google Mesa到百度PALO
使用Apache Kudu和Impala實現存儲分層
Oracle Exadata體系筆記
Teradata 架構
有了HBase為什么還要Kudu?
MongoDB 上市后,帶你認識這款非同一般的文檔數據庫
總結
以上是生活随笔為你收集整理的spark 动态预加载数据_热门大数据引擎/组件概要的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 高效能人士的七个习惯_《高效能人士的七个
- 下一篇: datatable 能不能有vlooku