作為 Database Weekly 的編輯(Database Weekly 是一份關(guān)于數(shù)據(jù)庫(kù)和數(shù)據(jù)存儲(chǔ)世界新內(nèi)容的每周時(shí)事資訊),我喜歡在新的數(shù)據(jù)庫(kù)系統(tǒng)中閑逛,看看在未來(lái)的幾十年里,哪些想法可能會(huì)影響到日常的開(kāi)發(fā)人員。
數(shù)據(jù)庫(kù)世界并不是每周都有讓人不可思議的新聞,但在一年的時(shí)間里,我還是驚訝地發(fā)現(xiàn),我們看到了很多新事物,以及該領(lǐng)域堅(jiān)持不懈地發(fā)展。2017 年也不例外,所以我想回顧一下一些有趣的新發(fā)行版,包括一個(gè)事務(wù)性圖表數(shù)據(jù)庫(kù),一個(gè)可復(fù)制的地理多模型數(shù)據(jù)庫(kù),以及一個(gè)新的高性能鍵/值存儲(chǔ)數(shù)據(jù)庫(kù)。
TimescaleDB — 一款基于 Postgres 的能自動(dòng)分區(qū)的時(shí)間序列數(shù)據(jù)庫(kù)
其中一個(gè)令人興奮的新擴(kuò)展源于 PostgreSQL,Timescale 基于 Apache 2.0 的許可,它是由一個(gè)名為 PhD-packed 的機(jī)構(gòu)支持啟動(dòng)的。
Timescale 通過(guò)自動(dòng)分區(qū)為 Postgres 添加時(shí)間序列存儲(chǔ)功能,但是卻包含在尋常的 Postgres 界面和工具中。 查詢(xún)是使用常規(guī)的 SQL 對(duì)“提供與時(shí)間序列數(shù)據(jù)的接口” 的 “hypertable” 進(jìn)行的。
Microsoft Azure Cosmos DB — 微軟的多模式數(shù)據(jù)庫(kù)
Cosmos DB 本質(zhì)上是 Azure 的舊的 DocumentDB 的品牌重塑和重新構(gòu)建,但是它很容易實(shí)現(xiàn)將全球分布式數(shù)據(jù)跟 Azure 的多樣數(shù)據(jù)中心交叉。全球分布是 Cosmos DB 的殺手锏,并且它可以將數(shù)據(jù)庫(kù)請(qǐng)求路由到包含數(shù)據(jù)的最近區(qū)域,而不需要更改配置。
“多模式”的部分也很重要。雖然一切都在無(wú)模式的 JSON 的引擎蓋下,但依然有一個(gè) SQL 查詢(xún) API ,以及 MongoDB API、Cassandra API,甚至一個(gè)圖形數(shù)據(jù)庫(kù) API(基于 Gremlin )。
學(xué)習(xí)更多關(guān)于 Cosmos 的較好的方式之一是這個(gè)微軟的第9頻道的 15 分鐘視頻介紹。
Cloud Spanner — Google 全球分布式關(guān)系數(shù)據(jù)庫(kù)
Google 的 Cloud Spanner 已經(jīng)工作了很長(zhǎng)一段時(shí)間了,起初是在 2012 年一篇非常有趣的學(xué)術(shù)論文中公開(kāi)闡釋的(雖然開(kāi)發(fā)始于 2007 年)。最初的開(kāi)發(fā)是因?yàn)?Google 需要一個(gè)全球化分布式的高可用性存儲(chǔ)系統(tǒng),但其現(xiàn)在也向公眾開(kāi)放。
谷歌認(rèn)識(shí)到,使 Cloud Spanner 適合其自身用途的功能對(duì)企業(yè)也很有吸引力,因此它承諾 99.999% 的可用性、無(wú)計(jì)劃停機(jī)時(shí)間和“企業(yè)級(jí)”安全性。
Cloud Spanner 支持 ANSI 2011 SQL ,為已熟悉關(guān)系數(shù)據(jù)庫(kù)概念的開(kāi)發(fā)人員提供了經(jīng)過(guò)戰(zhàn)斗級(jí)測(cè)試的高可用性水平擴(kuò)展的關(guān)系數(shù)據(jù)庫(kù)。
Neptune — Amazon 的全面管理圖形數(shù)據(jù)庫(kù)服務(wù)
Microsoft 和 Google 我們都已經(jīng)講到了, 所以怎么能漏了 Amazon 呢? 這是另外一個(gè)受限于特定云服務(wù)的數(shù)據(jù)庫(kù), Amazon 在最近召開(kāi)的 re:Invent 大會(huì)上展示了 Neptune 的預(yù)覽。
Neptune 承諾會(huì)是一個(gè)快速且可靠的圖形數(shù)據(jù)庫(kù)服務(wù),其目的是能迅速地為開(kāi)發(fā)者提供圖形數(shù)據(jù)庫(kù)服務(wù),并且不會(huì)讓他們感到麻煩,當(dāng)然這些是要付費(fèi)的。
Neptune 支持用兩種標(biāo)準(zhǔn)來(lái)對(duì)你的圖形庫(kù)進(jìn)行查詢(xún), 一個(gè)是得到越來(lái)越多的支持的 Gremlin 的“黃金”標(biāo)準(zhǔn),還有就是 SPARQL (你的圖形會(huì)被當(dāng)作是一個(gè) RDF )。
YugaByte — 一個(gè)開(kāi)源的云原生數(shù)據(jù)庫(kù)
YugaByte 今年因其“隱形模式”脫穎而出,它提供了一個(gè)支持 SQL 和 NoSQL 操作模式的數(shù)據(jù)庫(kù)。目的是在云中直接使用,充當(dāng)對(duì)容器的有狀態(tài)補(bǔ)充。
YugaByte 使用 C ++ 構(gòu)建并開(kāi)源,支持 Cassandra 查詢(xún)語(yǔ)言(CQL)以及 Redis 協(xié)議。 對(duì) PostgreSQL 協(xié)議的支持正在進(jìn)行中,Spark 應(yīng)用可在上面運(yùn)行。
YugaByte 是另一個(gè)啟動(dòng)后才受到支持的項(xiàng)目(由擴(kuò)展了 Apache HBase 平臺(tái)的一位 Facebook 工程師創(chuàng)建),其業(yè)務(wù)模式初定是會(huì)有一個(gè)“企業(yè)版”,在開(kāi)源社區(qū)版的基礎(chǔ)上增加多云集群協(xié)調(diào) ,監(jiān)視和警報(bào),分層存儲(chǔ)和支持等特性。
Peloton — 一個(gè)自驅(qū)動(dòng)的 SQL DBMS
Peloton 探索了一些有趣的想法,特別是在使用 AI 來(lái)自動(dòng)優(yōu)化數(shù)據(jù)庫(kù)的領(lǐng)域。它還支持字節(jié)尋址 NVM 存儲(chǔ)技術(shù),并且是使用 Apache 許可開(kāi)源的。
“自驅(qū)動(dòng)”數(shù)據(jù)庫(kù)背后的想法是,DBMS 可以自主操作和調(diào)整自身。它可以預(yù)測(cè)工作負(fù)載的趨勢(shì),并據(jù)此做好準(zhǔn)備,而無(wú)需 DBA 或操作員掌控。
也許毫不奇怪的是,Peloton 源于一個(gè)學(xué)術(shù)項(xiàng)目(特別是來(lái)自卡內(nèi)基梅隆大學(xué)),其創(chuàng)建者之一寫(xiě)了一篇關(guān)于為什么它被創(chuàng)建的系列文章。它已經(jīng)開(kāi)發(fā)好幾年了,但在 2017 年變得更加開(kāi)放。
JanusGraph — 一個(gè)基于 Java 的分布式圖形數(shù)據(jù)庫(kù)
JanusGraph 是一個(gè)實(shí)用的、隨時(shí)可用的數(shù)據(jù)庫(kù),其中包含大量的集成,并且建立在 TitanDB 的堅(jiān)實(shí)基礎(chǔ)之上。它針對(duì)可擴(kuò)展性、存儲(chǔ)及查詢(xún)巨大圖形數(shù)據(jù)庫(kù)做了優(yōu)化,同時(shí)支持事務(wù)和大量并發(fā)用戶(hù)。
它可以使用 Cassandra、HBase、Google Cloud Bigtable 和 BerkeleyDB 作為存儲(chǔ)后端,并且可以與 Spark、Giraph 和 hadoop 直接整合。它甚至支持與 ElasticSearch、Solr 或 Lucene 集成的全文和地理位置檢索。
Aurora Serverless — AWS 上即時(shí)可伸縮,“即付即用”的關(guān)系型數(shù)據(jù)庫(kù)
另一個(gè)來(lái)自 Amazo re:Invent 會(huì)議的公告是他們成功的 Aurora 數(shù)據(jù)庫(kù)服務(wù)的無(wú)服務(wù)器版本,Aurora Serverless。
隨著整合到“無(wú)服務(wù)器”平臺(tái)的最新趨勢(shì),這個(gè)平臺(tái)將永遠(yuǎn)消除你在擴(kuò)展和操作上的難題,Aurora Serverless背后的理念是許多數(shù)據(jù)庫(kù)用例不需要一致的性能或使用水平,相反,你可以“隨時(shí)付費(fèi)”(逐秒付費(fèi)),以便按需調(diào)整數(shù)據(jù)庫(kù)的大小。
它目前僅是預(yù)覽版,但承諾在 2018 年會(huì)有重大進(jìn)展。
TileDB — 用于存儲(chǔ)大密度及稀疏矩陣數(shù)組
TileDB 是起源自麻省理工學(xué)院和英特爾的數(shù)據(jù)庫(kù),用于存儲(chǔ)多維陣列數(shù)據(jù),這是類(lèi)似基因科學(xué)、醫(yī)學(xué)成像和金融時(shí)間序列等領(lǐng)域常見(jiàn)的要求。
它支持許多壓縮機(jī)制(如 gzip、lz4、Blosc 和 RLE )和存儲(chǔ)后端(如 GFS、S3 和 HDFS )。
Memgraph — 一個(gè)高性能、可內(nèi)存駐留的圖形數(shù)據(jù)庫(kù)
Memgraph 背后的驅(qū)動(dòng)力是為快速分析和使用來(lái)自人造和機(jī)器智能的數(shù)據(jù)以及設(shè)備和物聯(lián)網(wǎng)不斷增長(zhǎng)的互聯(lián)性提供工具。因此,優(yōu)先事項(xiàng)是“速度、可伸縮和簡(jiǎn)單性”。
在 Memgraph 的生命周期中,它還處于早期階段,它不是開(kāi)源的,但可以通過(guò) request 下載。它支持 openCypher 圖形查詢(xún)語(yǔ)言,支持內(nèi)存中的 ACID 事務(wù),并具有基于磁盤(pán)的持久化機(jī)制。