1. 程式人生 > >【大資料】InfoWorld的2018年最佳開源資料平臺獎公佈

【大資料】InfoWorld的2018年最佳開源資料平臺獎公佈

bos 2018å¹´æ°æ®è½¬é

目錄

TiDB

Neo4j

Apache Spark

儘管新的產品層出不窮,Apache Spark在資料分析領域仍然佔據著舉足輕重的地位。如果你需要從事分散式計算、資料科學或者機器學習相關的工作,就使用Apache Spark吧。Apache Spark 2.3在二月份釋出,它依然著重於開發、整合並加強它的Structured Streaming API。另外,新版本中添加了Kubernetes排程程式,因此在容器平臺上直接執行Spark變得非常簡單。總體來說,現在的Spark版本經過調整和改進,似乎煥然一新。

Apache Pulsar

Apache Pulsar最初由雅虎開發,後來進入Apache孵化器,最近正式畢業,成為Apache頂級專案。Pulsar旨在取代Apache Kafka多年的主宰地位。Pulsar在很多情況下提供了比Kafka更快的吞吐量和更低的延遲,併為開發人員提供了一組相容的API,讓他們可以很輕鬆地從Kafka切換到Pulsar。

Pulsar的最大優點在於它提供了比Apache Kafka更簡單明瞭、更健壯的一系列操作功能,特別在解決可觀察性、地域複製和多租戶方面的問題。在執行大型Kafka叢集方面感覺有困難的企業可以考慮轉向使用Pulsar。

Apache Beam

多年來,批處理和流式處理之間的差異正在慢慢縮小。批次資料變得越來越小,變成了微批次資料,隨著批次的大小接近於一,也就變成了流式資料。有很多不同的處理架構也正在嘗試將這種轉變對映成為一種程式設計正規化。

Apache Beam就是谷歌提出的解決方案。Beam結合了一個程式設計模型和多個語言特定的SDK,可用於定義資料處理管道。在定義好管道之後,這些管道就可以在不同的處理框架上執行,比如Hadoop、Spark和Flink。當為開發資料密集型應用程式而選擇資料處理管道時(現如今還有什麼應用程式不是資料密集的呢?),Beam應該在你的考慮範圍之內。

Apache Solr

儘管大家都認為Apache Solr是基於Lucene索引技術而構建的搜尋引擎,但它實際上是面向文字的文件資料庫,而且是一個非常優秀的文件資料庫。不管你是要“大海撈針”,還是要執行空間資訊查詢,Solr都可以幫上忙。

Solr 7系列目前已經發布了,新版本在執行更多分析查詢的情況下仍然能保證閃電般的速度。你可以加入很多文件,不到一秒鐘就能返回結果。它還改進了對日誌和事件資料的支援。災備(CDCR)現在也是雙向的。Solr全新的自動擴充套件功能簡化了叢集負載增長時的擴充套件操作。

JupyterLab

JupyterLab是新一代的Jupyter,一個基於Web的notebook伺服器,頗受全世界資料科學家的喜愛。經過三年開發,JupyterLab完全改變了人們對notebook的理解,支援對單元格進行拖放重新排布、標籤式的notebook、實時預覽Markdown編輯,以及改良的擴充套件系統,與GitHub等服務的整合變得非常簡單。預計在2018年底,JupyterLab將釋出1.0穩定版。

KNIME分析平臺

KNIME分析平臺是用來建立資料科學應用程式和服務的開源軟體。它提供了可拖放的圖形介面,用來建立視覺化工作流,還支援R和Python指令碼、機器學習,支援和Apache Spark聯結器。KNIME目前有大概2000個模組可用作工作流的節點。

KNIME還提供了商業版,商業版旨在提升生產效率和支援協作。不過,開源版KNIME分析平臺並不存在人為限制,可以處理包含數億行資料的專案。

CockroachDB

CockroachDB是基於事務性和一致性鍵值儲存而構建的分散式SQL資料庫。它的設計目標是能夠在磁碟、機器、機架甚至是資料中心的故障中存活下來,最小化延遲中斷,不需要人工干預。CockroachDB v1.13曾經獲得過五星的高分,雖然仍然缺少很多功能,不過現在情況有所改變。

四月份釋出的CockroachDB v2.0版本有了明顯的效能改進,通過新增對JSON(和其他型別)的支援擴充套件了與PostgreSQL的相容性,還提供了生產環境的跨區域叢集管理功能。CockroachDB v2.1的路線圖中包含了基於成本的查詢優化器(用於查詢效能的改進)、相關子查詢(ORM)、更好地支援模式變更以及企業版產品的加密。

Vitess

Vitess是通過分片實現MySQL水平擴充套件的資料庫集群系統,主要使用Go語言開發。Vitess將MySQL的很多重要功能與NoSQL資料庫的擴充套件性結合在一起。它的內建分片功能可以讓使用者在不需要給應用程式新增分片邏輯的情況下對資料庫進行擴充套件。Vitess從2011年開始就是YouTube資料庫基礎設施的核心元件,它已經發展到成千上萬個MySQL節點。

Vitess並沒有使用標準的MySQL連線,因為這會消耗很多RAM,也會限制每個節點的連線數量。它使用了更有效的基於gRPC的協議。另外,Vitess會自動重寫會損害資料庫效能的查詢,通過快取機制來調解查詢,防止相同的查詢同時進入資料庫。

TiDB

TiDB是一款相容MySQL、支援混合事務和分析處理(HTAP)的分散式資料庫。它基於事務性鍵值儲存而構建,提供全面的水平擴充套件性(通過增加節點)以及持續可用性。大多數早期的TiDB使用者都在中國,因為TiDB的開發者在北京。TiDB的原始碼主要用Go語言編寫。

TiDB的底層是RocksDB,RocksDB是Facebook的日誌結構鍵值資料庫引擎,用C++編寫,因此能獲得最好的效能。RocksDB上面是Raft共識層、事務層,然後是支援MySQL協議的SQL層。

YugaByte DB

YugaByte DB結合了分散式ACID事務、多區域部署、對Cassandra和Redis API的支援,對PostgreSQL的支援即將推出。相對Cassandra而言,YugaByte是強一致性,而Cassandra時最終一致性。YugaByte的基準測試也比開源的Cassandra要好,但比商用的Cassandra要差一些,而DataStax Enterprise 6具備可調一致性。YugaByte相當於快速、具有更強一致性的分散式Redis和Cassandra。它可以對單個數據庫進行標準化處理,比如將Cassandra資料庫和Redis快取結合在一起。

Neo4j

Neo4j圖形資料庫在處理相關性網路的任務時,執行速度比SQL和NoSQL資料庫更快,但圖模型和Cypher查詢語言需要進行專門的學習。最近,俄羅斯Twitter流氓分析、ICIJ的Panama Papers分析以及Paradise Papers的分析指出,Neo4j是非常有價值的。

經過18年的開發,Neo4j已經成為了一個成熟的圖資料庫平臺,可以在Windows、MacOS、Linux、Docker容器、VM和叢集中執行。即使是Neo4j的開源版本也可以處理很大的圖,而在企業版中對圖的大小沒有限制。(開源版本的Neo4j只能在一臺伺服器上執行。)

InfluxDB

InfluxDB是沒有外部依賴的開源時間序列資料庫,旨在處理高負載的寫入和查詢,在記錄指標、事件以及進行分析時非常有用。它可以執行在MacOS、Docker、Ubuntu/Debian、Red Hat/CentOS和Windows平臺上。它提供了一個內建的HTTP API和SQL風格的查詢語言,並旨在提供實時的查詢響應(100毫秒之內)。