2018資料架構選型必讀:9月資料庫產品技術解析
本期目錄
序言:國產資料庫迎來新發展
DB-Engines資料庫排行榜
新聞快訊
一、RDBMS家族
-
SQL/">MySQL釋出8.0.12版本
-
MariaDB 10.3功能展示
-
Percona釋出5.7.23版本
-
RocksDB釋出5.15.10版本
-
SQL Server釋出2019公開預覽版
-
PostgreSQL釋出11 beta3版本
-
Greenplum釋出5.11版本
二、NoSQL家族
三、NewSQL家族
-
TiDB釋出2.1 RC2版本
-
CockroachDB釋出2.0版本
四、大資料生態圈
-
Hadoop釋出3.1.1版本
-
ElasticSearch釋出 6.4.1版本
-
Apache HAWQ釋出2.4.0.0新版本
-
Druid釋出0.12.3版本
五、國產資料庫概覽
-
K-DB釋出叢集資料庫版本
-
OceanBase釋出2.0版本
-
SequoiaDB開源SequoiaSQL
六、本期新內容:雲資料庫
-
本期新秀:TDSQL釋出正式版10.2.0
-
本期新秀:RadonDB釋出1.0.1版本
七、推出dbaplus Newsletter的想法
八、感謝名單
為方便閱讀、重點呈現,本期Newsletter(2018年9月)將對各個板塊的內容進行精簡。需要閱讀全文的同學可登入 ofollow,noindex" target="_blank"> https://pan.baidu.com/s/1ZhvM4V75DNtpoIyKOiUf7Q 進行下載。
序言:國產資料庫迎來新發展
金秋九月,天朗氣清,中國的資料庫行業迎來了一波新的熱點事件。分散式資料庫領域新訊息不斷,也讓大家開始關注中國的分散式資料庫。首先是短短一週內,PingCAP和SequoiaDB巨杉資料庫陸續宣佈了C輪的數千萬美元融資,融資的訊息在IT圈成功“刷屏”。此後,在杭州的雲棲大會上,螞蟻金服的OceanBase也釋出了2.0,而螞蟻金服副CTO胡喜在現場“挖斷網線”的多活容災演示,也給大家切身體驗了金融級資料庫的嚴格要求以及強大資料安全保護能力。
國產分散式資料庫迎來了快速發展期,2017年,Gartner作為業界最權威的技術和市場分析機構,也首次將阿里雲資料庫、南大通用和SequoiaDB巨杉資料庫三款中國資料庫產品列入資料庫報告,則是整個國際資料庫業界對中國資料庫行業的一致認可。
中國資料庫市場已經到了一個新的時代,作為參與者,我們感到十分欣喜。
研發層面,自研與技術創新是中國新一代分散式資料庫的重要共同點。從零開始研發的資料庫核心引擎,既是技術商業化的必然選擇,也讓企業在產品和路線上更有特色,更容易得到市場的認可。
技術層面,資料庫技術的發展來到了拐點,分散式資料庫和雲化架構成為未來必然的方向。而在分散式資料庫這個賽道上,中國和海外產品處在同一起跑線。
此外,隨著中國在移動網際網路、人工智慧、物聯網等領域的快速發展,新的應用、新的資料型別催生了資料庫的新需求、新場景。同時,中國大型企業在金融級別的嚴苛應用環境下,對分散式資料庫的技術迭代和場景創新更重要,在許多方面甚至遠遠領先於海外產品。
展望未來,新一代分散式資料庫將迎來新的技術轉型期。根據Gartner資料庫報告顯示,分散式資料庫未來的核心技術方向主要有幾個,包括分散式雲化的架構,多種SQL支援,資料儲存的Multimodel多模儲存,HTAP混合交易/分析架構等等。
在技術和市場的共同推動下,國產分散式資料庫會進入產品和市場的快速發展期。在中國新一代資料庫如此巨大的潛在市場下,相信每一款產品都會有自己適應的應用場景和行業領域,希望大家可以一起努力,共同通過技術創新,讓中國的使用者,擺脫基礎軟體對於海外產品的依賴,也為中國所有核心技術創新的企業、創業者們,建立一條技術到商業的成功路徑示範!
本期序言撰稿人:巨杉資料庫CTO 王濤
DB-Engines資料庫排行榜
以下取自2018年9月的資料,具體資訊可以參考http://db-engines.com/en/ranking/,資料僅供參考。
DB-Engines排名的資料依據5個不同的因素:
-
Google以及Bing搜尋引擎的關鍵字搜尋數量;
-
Google Trends的搜尋數量;
-
Indeed網站中的職位搜尋量;
-
LinkedIn中提到關鍵字的個人資料數;
-
Stackoverflow上相關的問題和關注者數。
新聞快訊
1、據CNBC 8月1日報道,亞馬遜將棄用Oracle資料庫,計劃在2020年第一季度前將內部基礎設施完全遷移至AWS。
2、2018年8月中旬,Redis Labs將該公司開發的Redis模組由AGPL改成了Apache v2.0和Commons Clause(共用條款)相結合的許可證,對銷售許可證涵蓋的軟體作了限制,閉源RediSearch、Redis Graph、ReJSON、ReBloom、Redis-ML。
3、Redis Labs年增長60%。
4、9月上旬,多人要求修改Redis主從複製術語master/slave,Redis作者在儘量不影響專案的情況下做了一些妥協。
5、Python開發者Victor Stinner公開提交了4個PR,希望能將Python文件和程式碼中出現的 "master" 和 "slave" 修改為像 "parent" 和 "worker" 這樣的術語,以及對其他類似的術語也進行修改。
6、eBay從OpenStack轉移,重新平臺化,擁抱Kubernetes和Docker。此外,eBay還設計、構建了自己的伺服器,並構建了一個可在其所有團隊中共享的內部人工智慧(AI)引擎。
7、國產資料庫融資:
-
PingCAP完成C輪5000萬美元融資: 2018年9月12日,新型分散式關係型資料庫公司PingCAP宣佈完成5000萬美元C輪融資。
-
巨杉資料庫完成C輪數千萬美元融資: 2018年9月18日,巨杉資料庫宣佈完成由嘉實投資領投的C輪融資。
8、OceanBase在9月21日的雲棲大會上,現場演示金融級多活容災能力:OceanBase近期釋出了2.0版本,螞蟻金服副CTO胡喜在現場做了“挖斷網線”的多活容災演示。
RDBMS家族
MySQL釋出8.0.12版本
2018年7月27日,MySQL釋出8.0.12版本。值得關注的更新有:
-
rewrite外掛支援DML語句
rewrite外掛式5.7版本引入,本次更新開始支援insert、update、replace這些DML語句。
-
Group Replication優化
新增了引數group_replication_exit_state_ action來控制,如果一個例項發現自己屬於被拋棄(網路分割槽發生後的少數派)的例項的情況下,這個值預設為ABORT_SERVER,也就是說,少數派會自己關閉,這個值也可以設定為READ_ONLY,這個設定下,會以只讀(設定super read only)的形式加入叢集,並設定狀態為ERROR。
-
InnoDB支援表變更的新演算法INSTANT
該變更來自於騰訊DBA團隊貢獻,(Bug #28100103, Bug #91074)
本次變更融入一個新演算法ALGORITHM=INS TANT,側重於處理只需要修改元資料就可以完成的變更,對於應用使用更為便捷。
-
filesort 演算法的快取設定優化
MySQL在處理Order by的時候,如果沒有索引可以用,會採用一個名為file sort的演算法排序,有一個關聯的引數sort_buffer_size,執行sql需要進行file sort,那麼MySQL就會給當前回話直接分配sort_buffer_size大小的記憶體出來,在新版本中記憶體分配變成了按需分配。
參考: https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-12.html
MariaDB 10.3功能展示
1、MariaDB 10.3重構了KILL掉未提交的空事務
引數innodb_kill_idle_transaction(是Percona XtraDB引用的引數),意思為當一個事務長時間未提交,那麼這個連線就不能關閉,記憶體就不釋放,併發一大,導致DB連線數增多,就會對效能產生影響。
預設是0秒,你可以根據自己的情況設定閾值。超過這個閾值,服務端自動殺死未提交的空閒事務。
MariaDB在10.2.6版本里將其移除,因不再捆綁Percona XtraDB,分道揚鑣。
MariaDB在10.3版本里,增加了3個引數,對標Percona的功能:
1)idle_transaction_timeout (所有的事務)
2)idle_write_transaction_timeout(寫事務)
3)idle_readonly_transaction_timeout (只讀事務)
注:單位為秒。這裡設定了空事務未提交的時間為2秒,當超過2秒後,系統自動將其連線殺死。
設定這個引數後只針對新的連線有效,正在執行的連線無效。
參考:https://mariadb.com/kb/en/library/transaction-timeouts/
2、MariaDB 10.3解決掉了UPDATE不支援同一張表的子查詢更新
案例:
CREATE TABLE t1 (c1 INT, c2 INT);
INSERT INTO t1 VALUES (10,10), (20,20);
UPDATE t1 SET c1=c1+1 WHERE c2=(SELECT MAX(c2) FROM t1);
在5.7和8.0上執行,會直接丟擲錯誤:
ERROR 1093 (HY000): You can't specify target table 'a' for update in FROM clause
而這條語句在MariaDB10.3上執行,則順利通過。
MySQL目前只能改寫SQL實現,即max那條語句讓其產生衍生表就可以通過。如下:
UPDATE t1 a, (SELECT MAX(c2) as m_c2 FROM t1) as b SET a.c1=a.c1+1 WHERE a.c2=b.m_c2;
同理看下DELETE刪除操作:
案例:
DROP TABLE t1;
CREATE TABLE t1 (c1 INT, c2 INT);
DELETE FROM t1 WHERE c1 IN (SELECT b.c1 FROM t1 b WHERE b.c2=0);
在5.7和8.0上執行,同樣會直接丟擲錯誤:
ERROR 1093 (HY000): You can't specify target table 'a' for update in FROM clause
參考:https://jira.mariadb.org/browse/MDEV-12137
Percona釋出5.7.23版本
Percona Server for MySQL 5.7.23-23於2018年9月12日釋出,基於MySQL 5.7.23,包含其中所的bug修復,Percona Server for MySQL 5.7.23-2是目前5.7系列的最新穩定版本。更新如下:
-
引數max_binlog_files不再建議使用,建議使用binlog_space_limit代替。該引數與relay-log-space-limit一致,主要作用於relay log;兩個引數有相同的語義用法。
-
從5.7.23-23開始,在Innodb系統表空間和並行寫緩衝區可以實現加密資料。該特徵被命名為ALPHA quality。 一個新的變數innodb_sys_tablespace_encrypt,被用來加密系統表空間。並行雙寫緩衝區檔案的加密是由變數innodb_parallel_dblwr_encrypt控制的,這兩個引數預設都是關閉的。
-
rocksdb_update_cf_options將原來的告警資訊和錯誤資訊列印至系統錯誤日誌改為在客戶端返回。
-
rocksdb_number_stat_computers 和 rocksdb_rate_limit_delay_millis這兩個引數已經廢棄。
-
同時,MyRocks新加入了一些新的引數。
rocksdb_rows_filtered用來顯示在MyRocks表中被TTL過濾掉的行數。
rocksdb_bulk_load_allow_sk用來新增使用批量載入特性的輔助索引。
更多資訊可以參考:
https://www.percona.com/blog/2018/09/12/percona-server-for-mysql-5-7-23-23-is-now-available/
RocksDB釋出5.15.10版本
RocksDB 5.15.10釋出了,RocksDB是一個來自Facebook的可嵌入的支援持久化的key-value儲存系統,也可作為C/S模式下的儲存資料庫。RocksDB基於LevelD構建。
更新內容如下:
Bug Fixes:
-
修復RocksDB Java構建和測試。
釋出公告:
https://github.com/facebook/rocksdb/releases/tag/v5.15.10
RocksDB的詳細介紹:
https://www.oschina.net/p/rocksdb
SQL Server釋出2019公開預覽版
在微軟Ignite 2018大會上,微軟釋出全新SQL Server 2019公開預覽版。DBMS的承諾是,企業將能夠在一個產品中同時管理其關係資料庫及其非關係資料庫。微軟表示,它改進了PolyBase,使其具有更多資料來源的聯結器,包括“Azure SQL資料倉庫、Azure Cosmos DB、Mongo DB、Oracle和Teradata”。
PostgreSQL釋出11 beta3版本
一、版本更新
1、重大增強
-
增加JIT功能;
-
平行計算能力提升,hash join效能提升10倍以上,支援create index、create table as、create mview as等並行;
-
支援自治事務;
-
新增帶預設值的欄位,無需rewrite table,瞬間完成;
-
分割槽表新增hash分割槽支援。
2、tpc-c 1000W 103萬tpmC
3、tpc-h 10G 160秒,200G 39分鐘
二、外掛動態
1、citus釋出7.5
citus是PostgreSQL的一款sharding外掛,目前國內蘇寧、鐵總、探探有較大量的使用。
https://github.com/citusdata/citus
2、postgis釋出2.5 rc1
PostGIS是專業的時空資料庫外掛,在測繪、航天、氣象、地震、國土資源、地圖等時空專業領域應用廣泛。同時在網際網路行業也得到了對GIS有效能、功能深度要求的客戶青睞,比如共享出行、外賣等客戶。
http://postgis.net/
3、timescale釋出1.0 rc1
timescale是PostgreSQL的一款時序資料庫外掛,在IoT行業中有非常好的應用。github star數目前有5000多,是一個非常火爆的外掛。
https://github.com/timescale/timescaledb
三、衍生開源產品動態
1、agensgraph釋出1.3.2版本
agensgraph是相容PostgreSQL、opencypher的專業圖資料庫,適合圖式關係的管理。
https://github.com/bitnine-oss/agensgraph
2、gpdb釋出5.11
gpdb是相容PostgreSQL的mpp資料庫,適合OLAP場景。近兩年,gpdb一直在追趕PostgreSQL的社群版本,預計很快會追上10的PostgreSQL,在TP方面的效能也會得到顯著提升。
https://github.com/greenplum-db/gpdb
3、antdb釋出3.2
antdb是以Postgres-XC為基礎開發的一款PostgreSQL sharding資料庫,亞信主導開發,開源,目前主要服務於亞信自有客戶。
https://github.com/ADBSQL/AntDB
Greenplum釋出5.11版本
一、Greenplum 5.11介紹
Pivotal的Greenplum是基於MPP架構的資料庫產品,它可以滿足下一代大資料倉庫和大規模的分析任務的需求。通過自動對資料進行分割槽以及多節點並行執行查詢等方式,它使一個包含上百節點的資料庫叢集執行起來就像單機版本的傳統資料庫一樣簡單可靠,同時提供了幾十倍甚至上百倍的效能提升。
除了傳統的SQL,Greenplum還支援MapReduce,文字索引,儲存過程等很多分析工具,所支援的資料量可以從上百GB到幾百TB。5.11.0是小版本升級,包含了新功能及bug修復,具體介紹如下:
新增特性
-
gpbackup/gprestore支援增量備份和恢復
Gpbackup/gprestore工具支援對AO表生成增量備份,並對其進行恢復。當為分割槽表時,只有變化的分割槽資料會被備份和恢復。
-
gpbackup/gprestore支援新的外掛
從5.11.0開始,gpbackup/gprestore正式支援瞭如下外掛:
DD Boost 儲存外掛:通過–plugin-config引數可以指定將資料備份到Dell EMC Data Domain儲存方案上,或者從其上面恢復資料。
S3儲存外掛:通過–plugin-config引數可以指定將資料備份到Amazon的S3儲存方案上,或者從其上面恢復資料。
--plugin-config引數不再依賴–single-data-file或者–metadata-only引數。
NoSQL家族
MongoDB Server 4.0新功能介紹
MongoDB旨在通過以下技術基礎,滿足現代應用程式需求:
-
文件資料模型 —— 向您展示資料處理的最佳方式。
-
分散式系統設計——讓您可以智慧地將資料放在您想要的位置。
-
統一的體驗,帶給您在任何地方執行的自由——讓您的工作可根據未來需求進行拓展,並避免出現被供應商鎖定的情況。
MongoDB 4.0是MongoDB發展程序中的重要里程碑。該版本建立在上述核心技術基礎之上,助力企業從此告別會阻礙企業發展速度的傳統關係資料庫、以及NoSQL資料庫的高昂成本和複雜操作。MongoDB 4.0讓您能夠在單一現代化資料平臺上對企業應用進行標準化。具體如下:
全新亮點:MongoDB Server 4.0和工具
-
支援多文件ACID事務:通過實施快照隔離,提供一致的資料檢視,以及全部成功或全部失敗的執行,以保持資料的完整性。現在,使用MongoDB解決各種用例都變得更加容易。
-
型別轉換:讓您可以在資料庫中本地運行復雜的轉換,為BI和機器學習準備資料,同時消除昂貴、緩慢而又脆弱的ETL程序。
-
經過改進的分片平衡器:將資料遷移速度提高了40%,這是由於叢集會根據動態工作負載進行彈性擴充套件和收縮。
-
聚合管道構建器:助力開發人員和資料分析人員構建、優化和部署用於轉換、聚合和分析MongoDB資料的複雜處理管道,所有這些工作全部在簡單直觀的MongoDB Compass圖形使用者介面中進行。
-
MongoDB Charts(測試版)是一種新的本機工具,讓您可以建立和共享MongoDB資料的圖表,而無需將資料轉移到其他系統或第三方工具。這是實時瞭解操作資料最快捷、最簡單的方式。
Neo4j釋出3.4.7版本
2018年8月31日,Neo4j釋出了新版本 3.4.7,在效能和已有特性方面有了很大提升和增強,並增加了一些期待已久的新特性,此處列舉一些3.4版本的重點特性:
-
實現了字串型別屬性的本地索引,因此對建立了索引的字串屬性,節點寫入速度現在比現有字串索引快5倍。
-
新的核心API簡化了內部指令。
-
新支援的節點資料型別:日期/時間和3D地理空間資料,可針對時間或空間的搜尋優化Cypher查詢。Cypher查詢可以使用3D地理空間的搜尋,包括緯度和經度座標、徑向距離、高度或深度。
-
實現的各種效率改進(包括本機索引)將在整體上使事務執行消耗更少的記憶體。
-
內部測試表明,Cypher執行時間比Neo4j 3.3(Community Edition)快20%。
Neo4j 3.5版本即將釋出,將為下一代人工智慧和機器學習系統提供動力。
ArangoDB釋出3.3.16版本
ArangoDB 3.3.16釋出了,ArangoDB是一個原生的多模型資料庫,具有靈活的文件、圖形和鍵值資料模型。使用方便的SQL查詢語言或JavaScript擴充套件構建高效能應用程式。
更新內容可以檢視更新日誌和提交記錄瞭解:
更新日誌
https://github.com/arangodb/arangodb/blob/devel/CHANGELOG
提交記錄
https://github.com/arangodb/arangodb/compare/v3.3.16...devel
ArangoDB 的詳細介紹:
https://www.oschina.net/p/arangodb
NewSQL家族
TiDB釋出2.1 RC2版本
TiDB是一款定位於線上事務處理/線上分析處理(HTAP: Hybrid Transactional/Analytical Processing)的融合型資料庫產品。除了底層的RocksDB儲存引擎之外,分散式SQL層、分散式KV儲存引擎(TiKV)完全自主設計和研發。
TiDB完全開源,相容MySQL協議和語法,可以簡單理解為一個可以無限水平擴充套件的MySQL,並且提供分散式事務、跨節點JOIN、吞吐和儲存容量水平擴充套件、故障自恢復、高可用等優異的特性;對業務沒有任何侵入性,簡化開發,利於維護和平滑遷移。
TiDB 2.1 RC2 Release
2018年9月14日,TiDB釋出2.1 RC2版。相比2.1 RC1版本,該版本對系統穩定性、優化器、統計資訊以及執行引擎做了很多改進。
SQL優化器:
-
新版Planner設計方案#7543
-
提升常量傳播優化規則#7276
-
增強Range的計算邏輯使其能夠同時處理多個`IN`或者等值條件#7577
-
修復當Range為空時,`TableScan`的估算結果不正確的問題#7583
-
為`UPDATE`語句支援`PointGet`運算元#7586
CockroachDB釋出2.0版本
CockroachDB於10月30號即將釋出2.1版本,主要有如下特性:
-
相比2.0版本,TPCC效能有30%的提升;
-
支援CBO(cost-based optimizer)優化器,AP效能顯著提升;
-
支援任意時間點的備份恢復;
-
UI功能增強,可以顯示檢視使用者SQL的統計情況;
-
支援CDC特性,保證資料變更實時同步至Kafka;
-
支援使用者資料透明加密;
-
即將釋出CockroachDB雲服務。
大資料生態圈
Hadoop釋出3.1.1版本
8月9日,Hadoop釋出3.1.1版本,這是Hadoop 3.1分支的第一個穩定的版本,修復並改進了自3.1.0版本以來的總共435個bug與功能。
1、對於計算框架Yarn
新版本的Yarn的服務框架對長期執行的本地服務,提供更好的api與支援。簡而言之,它作為一個容器編排平臺,用於管理YARN上的容器化服務。 它支援YARN中的docker容器和傳統的基於程序的容器。具體體現在:
-
YARN-6223. Yarn支援GPU的排程與隔離(Docker和非Docker容器)
-
YARN-5983. Yarn支援FPGA的排程與隔離(Docker和非Docker容器)
-
YARN-6592. 在YARN中支援更能提升資源使用的放置約束。 這些約束對於應用程式的效能和彈性至關重要,尤其是那些包含長期執行容器,例如離線計算服務,機器學習和流式計算服務。在同一機架上排程有關聯的任務(相似性約束)可以降低網路成本,在機器之間分配任務(反親和約束)以便降低資源干擾,或者限定特定節點組的任務數量(基數約束)以在兩者之間取得平衡。 放置的策略現在影響面也是彈性化的。例如,放置在同一群集升級域中的機器將同時離線。
-
YARN-5881. 支援管理員為佇列指定具體數目的資源(比如具體的記憶體數量、vcore 核數、GPU 等),而不是提供基於百分比的值,這讓管理員能夠更好地控制給定佇列配置所需的資源。
-
YARN-7117. 容量排程器:在進行佇列對映的時候,支援自動的建立葉佇列。
2、對於儲存框架HDFS
提供了允許將儲存在HDFS之外的資料對映到HDFS,並從HDFS進行定址。這是一種異構儲存,通過向DataNode中引入新的儲存型別 PROVIDED來實現。
可以通過訪問如下網址瞭解更詳細的版本變更內容:
http://hadoop.apache.org/docs/r3.1.1/hadoop-project-dist/hadoop-common/release/3.1.1/RELEASENOTES.3.1.1.html
ElasticSearch釋出6.4.1版本
ElasticSearch 6.4.1已釋出,Elasticsearch是一個分散式的RESTful風格的搜尋和資料分析引擎,能夠解決不斷湧現出的各種用例。作為ElasticStack的核心,它集中儲存你的資料,幫助你發現意料之中以及意料之外的情況。
這是一個很小的修復版本,解決了以下問題:
-
Elasticsearch can once again start if any shards on the node have been rolled over. #33394
下載地址:
https://www.elastic.co/downloads
Apache HAWQ釋出2.4.0.0新版本
2018年8月15日,Apache HAWQ正式結束孵化並畢業為Apache頂級專案。
2018年9月21日,Apache HAWQ社群釋出了畢業後的第一個正式版本, Apache HAWQ 2.4.0.0。其中值得關注的新特性有:
-
增加了全新的向量化執行引擎,通過對元組進行批量操作來提升計算效率,經測試開啟向量化執行後聚集操作效率可提高2-8倍。
-
增加了Bloom Filter功能:HAWQ在執行Hash Join時為參與Join的build表建立一個Bloom Filter,在掃描probe表時用Bloom Filter過濾掉大量資料,減少參與probe階段的資料量,從而提升Hash Join的效率。
-
HAWQ PXF新增了一個Ignite database外掛: PXF可以通過Ignite原生的REST API進行讀寫操作。
詳細釋出文件見:
https://cwiki.apache.org/confluence/display/HAWQ/Apache+HAWQ+2.4.0.0+Release
Druid釋出0.12.3版本
2018年9月18日,Druid釋出了0.12.3版本,包含了來自6位貢獻者的多項穩定性提升以及Bug修復,主要的改進如下:
-
更加穩定的Kafka Indexing Service;
-
查詢Bug修復。
1、更加穩定的Kafka Indexing Serivce
0.12.3修復了Kafka Indexing Service在某些場景下會錯誤地刪除已經發布了的Segment的嚴重問題,同時還修復了兩個空指標異常的問題。
2、查詢bug修復
0.12.3優化了groupby查詢的記憶體配置減少了堆內記憶體的使用,該項共享來自美團的高大月。在這個版本中同時包含了Topn和GroupBy查詢中數值型別維度的使用outputType的多個Bug修復,以及多個Druid SQL的Bug修復:
-
修復TIMESTAMP型別的精度問題
-
修復AND、OR只支援兩個引數的問題
-
在Filter中消除無用的布林型別的CAST
-
SQL支援先排序然後再projection
-
JDBC增加BOOLEAN型別
-
修復了Timeseries和TopN查詢中的post aggregation在執行計劃中丟失的問題
-
在子查詢中支援複雜aggregation(例如HyperUnique)
國產資料庫概覽
K-DB釋出叢集資料庫版本
2018年7月1日,K-DB釋出叢集資料庫版本。其特點如下:
1、K-DB叢集資料庫採用全新的高效能DB Server、超高速網路Infiniband、智慧型Storage Server三層架構,具備了專注處理海量資料儲存和大批量實時資料處理的能力。
2、K-DB叢集資料庫支援Function Offloading,其Storage Server不僅具有磁碟的I/O功能,還承擔部分資料庫業務,如過濾 (Filtering) 或投影 (Projection) ,從而大幅提高資料庫的效能。
3、支援儲存資料對映 (Storage Data Map) 功能,大幅提高磁碟使用率。磁碟內的資料統計值被訪問過一次後,訪問記錄會儲存在記憶體中,再次訪問該磁碟時,可以減少不必要的磁碟讀取。
4、支援Flash Cashing功能,可利用快閃記憶體裝置 (Flash Device) 進行I/O快取分層 (Cache Tiering)。如果硬體中有快閃記憶體裝置的話,可以利用它進行I/O分層,即快閃記憶體裝置用作I/O快取。在OLTP環境下,反應速度極快。如果使用者願意,快閃記憶體裝置還可以像普通HDD一樣使用。
5、支援InfiniBand介面,提供高頻寬、高效能網路訪問能力。K-DB叢集資料庫預設使用InfiniBand。InfiniBand以高頻寬著稱,與Fiber channel構成的SAN相比,高於其數百倍。
6、支援應用RDMA協議,縮短通訊延遲時間。K-DB叢集資料庫預設使用RDMA協議交換節點間的資料,由此大幅縮短通訊延遲時間,降低CPU使用率。
OceanBase釋出2.0版本
以下是從分散式架構、資料可用性、可運維性、相容性、價效比五個方面對OceanBase 2.0版本的主要產品特性及技術革新的解讀:
1、業務透明的分散式系統
-
支援全域性一致性快照:Global Timestamp Service實現外部一致性,打造業務透明的分散式架構;
-
支援全域性索引:有效支援分割槽表的多維度查詢,資料庫原生的表和索引資料一致性保證;
-
負載均衡:同樣的硬體資源、更高的TPS/QPS、更短響應時間索引實時生效。
2、資料持續可用
-
索引實時生效:索引生效和每日合併解耦,及時滿足業務對新索引的需求;
-
支援閃回查詢:快速查詢資料歷史版本,有效應對人為誤操作;
-
支援線上分割槽分裂:將單分割槽資料打散到多個節點,有效解決業務發展帶來的擴充套件性問題。
3、可運維性增強
-
支援DB Replay功能:真實業務流量回放,為系統升級保駕護航;服務全鏈路壓測,保障“大促”絲般順滑體驗;
-
支援線上升級:平滑升級、可灰度、可回滾;
-
新版本雲管控平臺OCP 2.0釋出:更少資源佔用、更少外部依賴、更好用。
4、價效比提升
OLTP場景效能較1.4版本提升50%以上,儲存成本下降30%。
5、相容性提升
-
支援MySQL / Oracle 雙相容模式;
-
第一款支援儲存過程的原生分散式資料庫。
SequoiaDB開源SequoiaSQL
9月7日,SequoiaDB 3.0對MySQL相容的機構以及相容工具SequoiaSQL正式向社群開源。
SequoiaSQL此前是SequoiaDB資料庫的SQL解析模組,在經過1.0~3.0的發展,SequoiaSQL元件也實現了PostgreSQL、MySQL的相容。
MySQL的分散式改造目前也是包括網際網路行業在內的多個行業的一個共性需求,因此巨杉也決定將SequoiaSQL元件開源,一方面是將這一個MySQL的分散式方案和工具提供給業界和社群,解決更多應用中實際的資料庫痛點;另一方面,也希望專案的開源,可以讓社群參與到專案中,未來可以一同實現工具的通用化。
專案目前已經實現MySQL、PostgreSQL的支援,在未來,還會實現MairaDB的相容支援,並且實現更多儲存引擎的相容對接。
SequoiaDB 3.0目前在MySQL相容上,主要也是採取“SQL-儲存分離“的架構。
SequoiaDB 3.0 MySQL 相容架構
SequoiaDB 3.0使用了MySQL資料庫原生的SQL解析器,天然支援MySQL協議並可以做到100%語法相容。在該架構中,MySQL協議解析層作為SQL解析和分發的角色,直接面對應用程式,每一個MySQL服務的接入節點都是一個獨立支援讀寫操作的MySQL程序。而資料儲存和管理層,則完全由巨杉資料庫的分散式資料庫引擎實現。簡單來說,SequoiaDB 3.0作為MySQL的InnoDB替換引擎,在天然支援MySQL的全部語法和功能的同時,提供了資料庫儲存層彈性擴張的能力。
開源專案地址:github.com/sequoiadb/sequoiasql-mysql
本期新內容:雲資料庫
本期新秀:TDSQL釋出正式版10.2.0
TDSQL簡介騰訊分散式資料庫(Tencent Distributed SQL)是由騰訊打造的一款高可用、強一致性、高效能的分散式資料庫產品。目前廣泛應用於騰訊集團及騰訊雲客戶,為超過500+金融政企客戶提供資料庫服務,覆蓋金融、政務、新零售、遊戲等多個行業。
一、RocksDB
TDSQL提供穩定、可靠的RocksDB儲存引擎。RocksDB 是一種基於LSM樹的儲存引擎,其資料壓縮率領先InnoDB引擎,極大節省資料庫使用成本,對寫入效能也有較大提升,適合物聯網、日誌等“寫多讀少”,且對容量比較敏感的業務場景。
1、解決RocksDB在某些場景下宕機重啟回放事務的bug和索引查詢的bug,解決RocksDB在分散式架構下相關的bug:
-
事務回放寫鎖改讀鎖;
-
修復使用utf8_binary,索引資料被截斷的問題。
2、實現trace log功能:
-
跟蹤事務的執行流程,用於監控和效能分析。
3、實現write prepared機制:
-
優化大事務的記憶體,提前釋放事務的記憶體;
-
支援分散式事務。
二、TDSpark
TDSpark是TDSQL推出的為了解決使用者複雜OLAP需求的解決方案。藉助Spark平臺本身的優勢,同時融合TDSQL分散式叢集的優勢,為使用者一站式解決HTAP需求。
1、深度整合了Spark Catalyst引擎, 使Spark能夠高效的讀取TDSQL中的資料,以支援OLAP分析類請求;
2、相容MySQL協議。
三、智慧DBA“扁鵲系統”
智慧DBA“扁鵲系統”基於自身的規則策略庫,專注於定位、分析資料庫故障以及SQL效能問題,並利用機器學習手段不斷積累DBA成熟經驗,服務於雲上企業。
四、冷備系統優化
TDSQL提供對誤刪除的例項通過回檔恢復功能從冷備系統恢復到刪除前例項狀態,減少業務不可用時間,提高系統可維護性。回檔恢復時,採用貪心演算法進行資源快速匹配,重設資源排程策略,優化回檔空間。
五、讀寫分離優化
TDSQL提供多種讀寫分離模式,將使用者的讀請求轉發給合適的備DB(系統提供多種選擇備機的策略),降低主DB的負載,提高系統的讀寫效能。優化開啟全域性讀寫分離策略時,對於事務的處理策略:事務SQL不進行讀寫分離。
六、T-TDSQL全時態資料庫系統
基於TDSQL的T-TDSQL全時態資料庫系統釋出正式版,更新關注的新特性有:
-
提供有效時間時態、事務時間時態功能支援,有效支援合同管理、履歷管理、資料分析等業務的應用;
-
提供資料的全生命週期管理(資料全時態生命週期,資料生命狀態包括當前態、過渡態、歷史態。傳統的資料庫只包含當前態資料);
-
在資料庫核心層支援增量資料抽取、增量資料計算功能,替代傳統的ETL模式;
-
在資料庫核心層支援網際網路等業務金融對帳服務,有效提高對帳的精度和準確度,並高效核對總賬、精準核對每一筆細賬;
-
高效的資料閃回功能(準備提交MySQL官方社群),DBA不用再擔心誤刪除資料庫而倉皇跑路;
-
具備資料重演、多維度分析的潛能,賦予資料更多、更大的價值。
本期新秀:RadonDB釋出1.0.1版本
2018年9月20日,MyNewSQL領域的RadonDB雲資料庫釋出1.0.1版本。
RadonDB是一款基於MySQL研發的新一代分散式關係型資料庫(MyNewSQL)。向用戶提供具備金融級高可用、強一致、超大容量的資料庫服務,高度相容MySQL語法,自動水平分表,智慧化擴容。
RadonDB具有以下特性:
-
自動水平分表;
-
資料多副本,率先使用GTID並行複製+Raft一致性協議確保副本間資料強一致、零丟失;
-
主副本故障自動秒級切換,實現自動化運維,無需人工干預;
-
儲存副本使用MySQL儲存,穩定可靠的儲存能力與強大的計算能力並存;
-
提供分散式事務能力,保證跨節點操作的資料一致性;
-
同時支援OLTP(高併發事務需求)和OLAP(複雜分析需求);
-
高度相容MySQL語法,資料可快速匯入、匯出,簡單易用。
本次釋出的v1.0.1版本是RadonDB的一個小版本, 主要對監控進行了改善: 支援使用者級連線監控、後端資訊、各種操作統計資訊、慢查詢等各種維度監控,時序資料庫Prometheus儲存監控和效能指標資訊,用Grafana作為視覺化元件展示。
RadonDB已全部開源在github, 包含兩大核心元件:
-
Radon
負責接收SQL請求並生成分散式執行計劃, 把請求路由到相關的MySQL副本。
https://github.com/radondb/radon
-
Xenon
使用GTID並行複製+Raft一致性協議實現的MySQL高可用叢集管理工具。
https://github.com/radondb/xenon
推出dbaplus Newsletter的想法
dbaplus Newsletter旨在向廣大技術愛好者提供資料庫行業的最新技術發展趨勢,為社群的技術發展提供一個統一的發聲平臺。為此,我們策劃了RDBMS、NoSQL、NewSQL、時間序列、大資料生態圈、國產資料庫、雲資料庫等版塊。
我們不以商業宣傳為目的,不接受任何商業廣告宣傳,嚴格審查資訊源的可信度和準確性,力爭為大家提供一個純淨的技術學習環境,歡迎大家監督指正。
至於Newsletter釋出的週期,目前計劃是每三個月左右會做一次跟進, 下期計劃時間是2019年1月14日~1月25日 , 如果有相關的資訊提供請傳送至郵箱:[email protected]
感謝名單
最後要感謝那些提供寶貴資訊和建議的專家朋友,排名不分先後。
-
歡迎提供Newsletter資訊,
傳送至郵箱:[email protected]
-
Github地址:
https://github.com/dbaplus/DBAplus_Newsletter
-
歡迎技術文章投稿,
傳送至郵箱:[email protected]
往期回顧: