2019數據架構選型必讀:1月數據庫產品技術解析

2019数据架构选型必读:1月数据库产品技术解析

本期目錄

DB-Engines數據庫排行榜

新聞快訊

一、RDBMS家族

  • Oracle發佈18.3版本

  • MySQL發佈8.0.13版本

  • MariaDB 10.3版本功能展示

  • Percona Server發佈8.0 GA版本

  • RocksDB發佈V5.17.2版本

  • PostgreSQL發佈11版本

  • DB2發佈11.1.4.4版本

二、NoSQL家族

  • Redis發佈5.0.3版本

  • MongoDB升級更新MongoDB Mobile和MongoDB Stitch

  • Cassandra發佈3.11.3版本

三、NewSQL家族

  • TiDB 發佈2.1.2版本

  • EsgynDB發佈R2.5版本

  • CockroachDB發佈2.1版本

四、時間序列

  • 本期新秀:TimescaleDB發佈1.0版本

五、大數據生態圈

  • Hadoop發佈2.9.2版本

  • Greenplum 發佈5.15版本

六、國產數據庫概覽

  • K-DB發佈數據庫一體機版

  • OceanBase遷移服務發佈1.0版本

  • SequoiaDB 發佈3.0.1新版本

七、雲數據庫

  • 本期新秀:騰訊發佈數據庫CynosDB,開啟公測

  • 本期新秀:京東雲DRDS發佈1.0版本

  • RadonDB發佈1.0.3版本

八、推出dbaplus Newsletter的想法

九、感謝名單

為方便閱讀、重點呈現,本期Newsletter(2019年1月)將對各個板塊的內容進行精簡。需要閱讀全文的同學可點擊文末【閱讀原文】或登錄https://pan.baidu.com/s/13BgipbaHeMfvm0YPtiYviA進行下載。

DB-Engines數據庫排行榜

以下取自2019年1月的數據,具體信息可以參考http://db-engines.com/en/ranking/,數據僅供參考。

2019数据架构选型必读:1月数据库产品技术解析

DB-Engines排名的數據依據5個不同的因素:

  • Google以及Bing搜索引擎的關鍵字搜索數量

  • Google Trends的搜索數量

  • Indeed網站中的職位搜索量

  • LinkedIn中提到關鍵字的個人資料數

  • Stackoverflow上相關的問題和關注者數

新聞快訊

1、2018年9月24日,微軟公佈了SQL Server2019預覽版,SQL Server 2019將結合Spark創建統一數據平臺。

2、2018年10月5日,ElasticSearch在美國紐約證券交易所上市。

3、亞馬遜放棄甲骨文數據庫軟件,導致最大倉庫之一在黃金時段宕機。受此消息影響,亞馬遜盤前股價小幅跳水,跌超2%。

4、2018年10月31日,Percona發佈了Percona Server 8.0 RC版本,發佈對MongoDB 4.0的支持,發佈對XtraBackup測試第二個版本。

5、2018年10月31日,Gartner陸續發佈了2018年的數據庫系列報告,包括《數據庫魔力象限》、《數據庫核心能力》以及《數據庫推薦報告》。

今年的總上榜數據庫產品達到了5家,分別來自:阿里雲,華為,巨杉數據庫,騰訊雲,星環科技。其中阿里雲和巨杉數據庫已經連續兩年入選。

6、2018年11月初,Neo4j宣佈完成E輪8000萬美元融資。11月15日,Neo4j宣佈企業版徹底閉源:

  • Neo4j 平臺的核心——Neo4j社區版,將繼續在GPLv3許可下開源。Neo4j企業版,原來也有大部分的源代碼以AGPLv3許可開源(今年5月份有變更為AGPLv3 + Commons Clause雙重許可),從Neo4j 3.5 GA版本開始,僅用於企業版的代碼將不再開源。

7、2019年1月8日,阿里巴巴以1.033億美元(9000萬歐元)的價格收購了Apache Flink商業公司DataArtisans。

8、2019年1月11日早間消息,亞馬遜宣佈推出雲數據庫軟件,亞馬遜和MongoDB將會直接競爭。

AWS在一份聲明中表示:“Amazon DocumentDB是從頭開始設計的,旨在為客戶提供大規模運營任務關鍵型MongoDB工作負載時所需的性能、可擴展性和可用性。”AWS表示,它正在使用的是MongoDB開源技術的舊版本。

MongoDB首席執行官Dev Ittycheria在一份聲明中表示:“模仿是最真誠的奉承形式,所以亞馬遜試圖利用MongoDB的流行和勢頭也就不足為奇了。然而,開發人員足夠聰明,能夠區分真實的東西和拙劣的模仿。”

RDBMS家族

Oracle 發佈18.3版本

2018年7月,Oracle Database 18.3通用版開始提供下載。我們可以將Oracle Database 18c視為採用之前發佈模式的Oracle Database 12c第2版的第一個補丁集。未來,客戶將不再需要等待多年才能用上最新版Oracle數據庫,而是每年都可以期待新數據庫特性和增強。Database 19c將於2019年Q1率先在Oracle cloud上發佈雲版本。

Oracle Database 18c及19c部分關鍵功能:

1、性能

  • 高可用OLTP的RAC環境,速度提升5倍;

  • 內存行存儲查找速度提升2倍;

  • Oracle Database In-Memory的性能增強特性包括:內存中聯接組、內存中表達式和內存中處理JSON查詢;

  • 還引入了Memoptimized Rowstore來支持快速查詢性能,例如需要根據主鍵值進行快速低延遲查找的物聯網 (IoT) 負載;

  • 對於count ,distinct and group查詢的性能改進;

  • 自動索引。

2、多租戶,大量功能增強及改進,大幅節省成本和提高敏捷性

3、高可用

  • 數據庫分片(sharding)支持RAC。確保海量Web應用的高可用性;

  • DataGuard DML重定向;

  • Sharding現在支持CDB中的多個PDB分片。

4、數據倉庫和大數據

  • 全面的分析和數據科學功能;

  • In-Memory支持外部表;

  • Nologged數據到備庫的自動加載;

  • 更多機器學習算法;

  • 多態表函數;

  • 聯機表分區合併;

  • 近似值查詢增強。

MySQL發佈8.0.13版本

2018年10月22日,MySQL發佈8.0.13版本,值得關注的更新有:

1、賬戶管理

經過配置,修改密碼時,必須帶上原密碼。在之前的版本,用戶登錄之後,就可以修改自己的密碼。這種方式存在一定安全風險。比如用戶登錄上數據庫後,中途離開一段時間,那麼非法用戶可能會修改密碼。由參數password_require_current控制。

2、配置

Innodb表必須有主鍵。在用戶沒有指定主鍵時,系統會生成一個默認的主鍵。但是在主從複製的場景下,默認的主鍵,會對叢庫應用速度帶來致命的影響。如果設置sql_require_primary_key,那麼數據庫會強制用戶在創建表、修改表時,加上主鍵。

3、字段默認值

BLOB、TEXT、GEOMETRY和JSON字段可以指定默認值了。

4、優化器

1)Skip Scan

非前綴索引也可以用了。

  • 示例表結構:CREATE TABLE t1 (f1 INT NOT , f2 INT NOT , PRIMARY KEY(f1, f2))

  • 示例數據:(1,1), (1,2), (1,3), (1,4), (1,5),(2,1), (2,2), (2,3), (2,4), (2,5)

  • 示例查詢:EXPLAIN SELECT f1, f2 FROM t1 WHERE f2 > 40

之前的版本,任何沒有帶上f1字段的查詢,都沒法使用索引。在新的版本中,它可以忽略前面的字段,讓這個查詢使用到索引。其實現原理就是把(f1 = 1 AND f2 > 40) 和(f1 = 2 AND f2 > 40)的查詢結果合併。

2)函數索引

之前版本只能基於某個列或者多個列加索引,但是不允許在上面做計算,如今這個限制消除了。

  • CREATE INDEX idx1 ON t1 ((col1 + col2));

  • CREATE INDEX idx2 ON t1 ((col1 + col2), (col1 - col2), col1);

  • ALTER TABLE t1 ADD INDEX ((col1 * 40) DESC);

5、SQL語法

GROUP BY ASC和GROUP BY DESC語法已經被廢棄,要想達到類似的效果,請使用GROUP BY ORDER BY ASC和GROUP BY ORDER BY DESC。

6、功能變化

1)設置用戶變量,請使用SET語句

如下類型語句將要被廢棄SELECT @var, @var:=@var+1。

2)新增innodb_fsync_threshold

該變量是控制文件刷新到磁盤的速率,防止磁盤在短時間內飽和。

3)新增會話級臨時表空間

在以往的版本中,當執行SQL時,產生的臨時表都在全局表空間ibtmp1中,及時執行結束,臨時表被釋放,空間不會被回收。新版本中,會為session從臨時表空間池中分配一個臨時表空間,當連接斷開時,臨時表空間的磁盤空間被回收。

4)在線切換Group Replication的狀態

  • 指定某個節點為新的Primary節點。用法:SELECT group_replication_set_as_primary(member_uuid)。

  • 在線Single Primary和Multi Primary切換。

  • 而在以前版本需要停止集群中的所有成員才能做到。

5)新增了group_replication_member_expel_timeout

之前,如果某個節點被懷疑有問題,在5秒檢測期結束之後,那麼就直接被驅逐出這個集群。即使該節點恢復正常時,也不會再被加入集群。那麼,瞬時的故障,會把某些節點驅逐出集群。

group_replication_member_expel_timeout讓管理員能更好的依據自身的場景,做出最合適的配置(建議配置時間小於一個小時)。

MariaDB 10.3版本功能展示

1、MariaDB 10.3支持update多表ORDER BY and LIMIT

1)update連表更新,limit語句

update t1 join t2 on t1.id=t2.id set t1.name='hechunyang' limit 3;

MySQL 8.0直接報錯

2019数据架构选型必读:1月数据库产品技术解析

MariaDB 10.3更新成功

2)update連表更新,ORDER BY and LIMIT語句

update t1 join t2 on t1.id=t2.id set t1.name='HEchunyang' order by t1.id DESC limit 3;

MySQL 8.0直接報錯

2019数据架构选型必读:1月数据库产品技术解析

MariaDB 10.3更新成功

參考:

https://jira.mariadb.org/browse/MDEV-13911

2、MariaDB10.3增補AliSQL補丁——安全執行Online DDL

Online DDL從名字上看很容易誤導新手,以為不論什麼情況,修改表結構都不會鎖表,理想很豐滿,現實很骨感,注意這個坑!

有以下兩種情況執行DDL操作會鎖表的,Waiting for table metadata lock(元數據表鎖):

  • 增加、刪除字段或索引不會鎖全表,刪除主鍵、更改字段屬性會鎖全表。

  • 在添加字段alter table表時,對該表的增、刪、改、查均不會鎖表。而在這之前,該表有被訪問時,需要等其執行完畢後,才可以執行alter table,例如在會話一,故意執行一條大結果的查詢,然後在會話二執行增加字段age,此時還會出現表鎖。

針對第二種情況,MariaDB10.3增補AliSQL補丁-DDL FAST FAIL,讓其DDL操作快速失敗。

例:

2019数据架构选型必读:1月数据库产品技术解析

如果線上有某個慢SQL對該表進行操作,可以使用WAIT n(以秒為單位設置等待)或NOWAIT在語句中顯式設置鎖等待超時,在這種情況下,如果無法獲取鎖,語句將立即失敗。 WAIT 0相當於NOWAIT。

參考:

https://jira.mariadb.org/browse/MDEV-11388

3、MariaDB Window Functions窗口函數分組取TOP N記錄

窗口函數在MariaDB10.2版本里實現,其簡化了複雜SQL的撰寫,提高了可讀性。

參考:

https://mariadb.com/kb/en/library/window-functions-overview/

Percona Server發佈8.0 GA版本

2018年12月21日,Percona發佈了Percona Server 8.0 GA版本。

在支持MySQL8.0社區的基礎版上,Percona Server for MySQL 8.0版本中帶來了許多新功能:

1、安全性和合規性

  • 審計日誌插件:提供數據庫活動的監視和日誌記錄。此功能與MySQL Enterprise Auditing相當。

  • 基於PAM的身份驗證插件:通過與PAM模塊的基礎,雙重驗證單登陸(SSO)和雙因素身份驗證(2FA)系統集成。此功能與MySQL Enterprise Auditing相當。

  • 增強加密:增強對二進制日誌加密,臨時文件加密,對所有innodb表空間類型和日誌的機密支持,並行雙寫緩衝區加密。此功能與MySQL Enterprise Auditing相當。

2、性能和可擴展性

  • Threadpool:支持10000多個連接,此功能與MySQL Enterprise Auditing相當。

  • InnoDB引擎增加功能:通過並行雙寫,多線程LRU刷新和單頁去除,實現高度併發的IO綁定工作負載,從而顯著提高性能。Percona Server for MySQL與MySQL Community Edition進行比較時,某些工作負載的性能提升了60%。

  • MyRocks存儲引擎:基於RocksDB存儲庫,MyRocks通過針對nVME SSD等現代硬件進行優化。

3、可觀察性和可用性

  • 改進檢測:Percona Server for MySQL 8.0提供了超過兩倍的可用性能和統計計數器,以及支持收集每用戶和每線程統計數據,以及擴展的慢查詢日誌記錄功能。

  • 減少備份影響:更輕的重量備份鎖定可降低對執行備份的性能和可用性的影響。與Percona XtraBackup 8.0一起使用時,此功能可使您的備份運行更快,並且您的應用程序在長時間運行的備份中表現更好。

Percona Server for MySQL 8.0中將要被廢用功能:

  • TokuDB存儲引擎:整個Percona Server for MySQL 8.0系列支持TokuDB,但在下一個版本將不會提供。Percona鼓勵TokuDB用戶探索MyRocks存儲引擎。

Percona Server for MySQL 8.0中刪除的功能:

  • CSV存儲引擎。

  • ALL_O_DIRECT InnoDB的刷盤方式。

  • 查詢緩存。

RocksDB發佈V5.17.2版本

2018年10月24日,RocksDB發佈V5.17.2版本。

RocksDB是Facebook在LevelDB基礎上用C++寫的高效內嵌式K/V存儲引擎。相比LevelDB,RocksDB提供了Column-Family,TTL,Transaction,Merge等方面的支持。目前MyRocks,TiKV等底層的存儲都是基於RocksDB來構建。

本次更新主要有如下值得關注的點:

  • 可以通過CacheAllocator自定義Block Cache的實現;

  • 增加了FlushOptions::allow_write_stall參數,控制flush操作是否立刻執行,即使會導致寫入暫停,默認為false,即flush操作會等待可以操作時執行,不會導致寫入暫停;

  • 應用如果使用悲觀事務數據庫時,在啟動新事務之前回滾/提交已恢復的事務。此假設在recovery期間跳過併發控制。

  • 修復當有很多snapshot導致slow/compaction慢的問題;

  • 修復WriteBatchWithIndex SeekForPrev找不到相同key的問題;

PostgreSQL發佈11版本

2018年10月18日,PostgreSQL 11發佈。

1、PostgreSQL 11的重大增強

  • OLAP能力增強1,增加JIT功能。

  • OLAP能力增強2,並行計算能力提升,hash join性能提升10倍以上,增加支持create index, create table as, create mview as, select into等並行。

  • OLAP能力增強3,性能更好的HASH JOIN,seq scan。

  • 存儲過程支持自治事務。

  • 新增帶默認值的字段,無需rewrite table,瞬間完成。

  • 分區表新增hash分區支持。

2、PostgreSQL 插件動態

1)分佈式插件citus發佈 8.1

citus是PostgreSQL的一款sharding插件,目前國內蘇寧、鐵總、探探有較大量使用案例。

https://github.com/citusdata/citus

2)地理信息插件postgis發佈2.5.1

PostGIS是專業的時空數據庫插件,在測繪、航天、氣象、地震、國土資源、地圖等時空專業領域應用廣泛。同時在互聯網行業也得到了對GIS有性能、功能深度要求的客戶青睞,比如共享出行、外賣等客戶。

http://postgis.net/

3)時序插件timescale發佈1.1.1

timescale是PostgreSQL的一款時序數據庫插件,在IoT行業中有非常好的應用。github star數目前有5000多,是一個非常火爆的插件。

https://github.com/timescale/timescaledb

4)流計算插件 pipelinedb 正式插件化

Pipelinedb是PostgreSQL的一款流計算插件,使用這個創建可以對高速寫入的數據進行實時根據定義的聚合規則進行聚合(支持概率計算),實時根據定義的規則觸發事件(支持事件處理函數的自定義)。可用於IoT,監控,FEED實時計算等場景。

https://github.com/pipelinedb/pipelinedb

3、PostgreSQL衍生開源產品動態

1)agensgraph發佈 2.0.0版本

agensgraph是兼容PostgreSQL、opencypher的專業圖數據庫,適合圖式關係的管理。

https://github.com/bitnine-oss/agensgraph

2)gpdb發佈5.15

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

4)遷移工具MTK發佈52版本

MTK是EDB提供的可以將Oracle、PostgreSQL、MySQL、MSSQL、Sybase數據庫遷移到PostgreSQL, PPAS的產品,遷移速度可以達到100萬行/s以上。

https://github.com/digoal/blog/blob/master/201812/20181226_01.md

DB2發佈 11.1.4.4版本

DB2最新發布Mod Pack 4 and Fix Pack 4,包含以下幾方面的改動及增強:

1、性能

  • 在新硬件(支持AVX-512的Intel CPU)上提供更好的性能支持。

2、高可用

  • 在HADR設置了ROS的環境中,通過設置DB2_HADR_ROS_AVOID_REPLAY_ONLY_WINDOW參數可以避免僅重放(replay-only)窗口,可以顯著提高備用數據庫執行SQL查詢的可用性。

  • 對於配置鏡像日誌路徑(MIRRORLOGPATH)的數據庫,通過配置DB2_USE_ASYNC_FOR_MIRRORLOG參數實現兩個日誌文件並行異步寫入來實現性能提升。

  • 增加db2pd -barstats選項實現監控備份和恢復操作的進度和性能。並且在該版本中,可以設置DB2_REDUCE_FLUSHING_DURING_BACKUP參數減少備份恢復過程中更改頁面的刷新行為,可以提高在線備份操作的性能。

  • 在ADMIN_MOVE_TABLE存儲過程中增加WITH_NONUNIQUE_INDEXES、ADD_MODSTATE_INDEX,REMOVE_MODSTATE_INDEX和SYNC_MODSTATE_INDEX選項,可以提供更精細地控制在目標表上創建非唯一索引和修改狀態索引。

  • 通過設置DB2_USE_BUFFERED_READ_FOR_ACTIVE_LOG參數可以在讀取事務日誌文件數據時自動使用緩衝I / O,顯著提高大型事務的回滾性能。

  • 現在可以通過配置磁盤仲裁器和多數節點集仲裁機制搭建db2haicu環境。

  • ADMIN_MOVE_TABLE存儲過程中增加ESTIMATE選項,允許用戶在移動表之前估計表的大小。

  • 可以使用新的db2fmtlog工具從事務日誌文件中提取和顯示信息。提取的信息包括加密或壓縮狀態,日誌鏈信息,日誌記錄範圍和其他元數據。此信息在問題確定方案中很有用。此信息還可以幫助識別哪些日誌記錄可以在HADR Reads-on-Standby環境中觸發“僅重放窗口”。

3、管理視圖

  • 支持通過ADMIN_GET_TAB_DICTIONARY_INFO表函數獲取在列組織表中的壓縮信息。

4、應用開發方面

  • 新增一組新的內置JSON SQL函數。這些JSON SQL函數更好地支持SQL與JSON數據的交互。使用這些函數可以使用SQL直接存儲,檢索和查詢JSON和BSON數據。還可以使用SQL創建JSON文檔。

  • 這些新功能遵循ISO(國際標準化組織)和IEC(國際電工委員會)SQL技術報告“第6部分:JavaScript支持JavaScript對象表示法(JSON)”中概述的語法和語義(TR 19075-6:2017年)。該報告的第6部分概述了一組用於存儲,查詢和發佈JSON數據的SQL語言。

  • 作為內置函數,Db2 JSON SQL函數駐留在SYSIBM模式中,並且不要求用戶在函數上保留任何特權以調用它。新的內置JSON SQL函數替換了SYSTOOLS模式中提供的原始JSON SQL函數集。

5、聯邦功能

  • 在數據類型映射和功能下推為SAP HANA提供更好的支持。並且支持SAP Adaptive Server Enterprise(ASE)16.0版本

  • 支持存儲在hadoop文件系統上的HDFS Parquet文件。

  • 支持通過Restful接口訪問CouchDB數據源。

  • 通過ODBC在數據類型映射和功能下推中為Greenplum、Microsoft SQL Server / Microsoft Azure提供更好的支持。

  • 增加對Microsoft SQL Server / Microsoft Azure中的Datetime2數據類型映射支持。

6、pureScale

  • 在數據庫級別提供多租戶高可用性支持。當單臺主機下線、單獨更換磁盤或者其他對於單臺主機需要停機的運維操作時,不會對其他節點產生影響。

  • 增加DB2_ENABLE_PS_EXTENT_RECLAIM參數可開啟在pureScale環境中增加降低高水位或縮小表空間功能。

  • 在SUSE Linux Enterprise Server(SLES)12 SP2上支持Db2 pureScale。 如果使用基於ConnectX-3的卡,則必須在卡上使用固件2.40.7004或更高版本。

  • SpectrumScale(以前稱為通用並行文件系統或GPFS)的缺省配置存儲庫類型將更改為群集配置存儲庫(CCR)。 此存儲庫類型提供更好的高可用性和更簡單的群集配置設置,同時降低管理費用。

  • 通過消除在高速互連交換機上配置本地環回IP接口的要求,簡化了在所有支持的平臺上在TCP / IP和RoCE網絡上部署pureScale的步驟。 通過消除配置RSCT網絡監視配置文件(netmon.cf)的手動步驟,可以更快地啟動和運行群集。

NoSQL家族

Redis發佈5.0.3版本

2018年12月12日,Redis發佈正式版5.0.3。其中值得關注的新修復有:

  • 修復了向MONITOR或SYNC複製模式連接發送數據的問題。

  • 修復了有序集合的某些邊界值問題。

  • 能更好的支持Unix的衍生系統了:在編譯或註冊時崩潰日誌記錄。

  • 修復了網絡核心模塊,以解決如果在編譯的時候使用了IPv6地址列表,而運行的系統本身又不支持的情況下出錯問題。

  • 集群模式下redis-cli命令增強,修改了一些在Redis 5中沒有解決的邊界值問題。

  • 內存利用更精準了。

  • 添加了一個DEBUG DIGEST-VALUE,如果你想確定一組key在不同實例之間是相同的時可以使用它。

  • 修復了網絡核心模塊中潛在的崩潰問題。

  • 在主從角色切換數據同步期間,拒絕在該實例中執行包含有寫操作的EXEC命令。

  • 修復了KEYS和其他命令在使用匹配模式時崩潰的問題。

  • 修復了在AOF加載期間的洩漏問題,由於在AOF加載狀態時的命令觸發了最大內存值。

MongoDB升級更新MongoDB Mobile和MongoDB Stitch

2018年11月21日,MongoDB升級更新MongoDB Mobile和MongoDB Stitch,助力開發人員提升工作效率。

MongoDB 公司日前發佈了多項新產品功能,旨在更好地幫助開發人員在世界各地管理數據。通過利用存儲在移動設備和後臺數據庫的數據之間的實時、自動的同步特性,MongoDB Mobile通用版本助力開發人員構建更快捷、反應更迅速的應用程序。此前,這隻能通過在移動應用內部安裝一個可供選擇或限定功能的數據庫來實現。

MongoDB Mobile在為客戶提供隨處運行的自由度方面更進了一步。用戶在iOS和安卓終端設備上可擁有MongoDB所有功能,將網絡邊界擴展到其物聯網資產範疇。應用系統還可以使用MongoDB Stitch的軟件開發包訪問移動客戶端或後臺數據,幫助開發人員通過他們希望的任意方式查詢移動終端數據和物聯網數據,包括本地讀寫、本地JSON存儲、索引和聚合。通過Stitch移動同步功能(現可提供beta版),用戶可以自動對保存在本地的數據以及後臺數據庫的數據進行同步。

本期新秀:Cassandra發佈3.11.3版本

2018年8月11日,Cassandra發佈正式版3.11.3。

Apache Cassandra是一款開源分佈式NoSQL數據庫系統,使用了基於Google BigTable的數據模型,與面向行(row)的傳統關係型數據庫或鍵值存儲key-value數據庫不同,Cassandra使用的是寬列存儲模型(Wide Column Stores)。與BigTable和其模仿者HBase不同,數據並不存儲在分佈式文件系統如GFS或HDFS中,而是直接存於本地。

Cassandra的系統架構與Amazon DynamoDB類似,是基於一致性哈希的完全P2P架構,每行數據通過哈希來決定應該存在哪個或哪些節點中。集群沒有master的概念,所有節點都是同樣的角色,徹底避免了整個系統的單點問題導致的不穩定性,集群間的狀態同步通過Gossip協議來進行P2P的通信。

3.11.3版本的一些bug fix和改進:

  • 預創建刪除日誌記錄以便更快地完成壓縮(CASSANDRA-12763)

  • 修復了在完全修復之後預防SSTables壓縮的bug (CASSANDRA-14423)

  • 修復了OutboundTcpConnection中掛起消息的計數錯誤(CASSANDRA-11551)

  • 修復了引起gossip阻塞的事件 (CASSANDRA-13849)

  • 依賴JVM來處理OutOfMemoryErrors (CASSANDRA-13006)

NewSQL家族

TiDB 發佈2.1.2版本

2018 年 12 月 22 日,TiDB 發佈 2.1.2 版,TiDB-Ansible 相應發佈 2.1.2 版本。該版本在 2.1.1 版的基礎上,對系統兼容性、穩定性做出了改進。

TiDB 是一款定位於在線事務處理/在線分析處理( HTAP: Hybrid Transactional/Analytical Processing)的融合型數據庫產品。除了底層的 RocksDB 存儲引擎之外,分佈式SQL層、分佈式KV存儲引擎(TiKV)完全自主設計和研發。

TiDB 完全開源,兼容MySQL協議和語法,可以簡單理解為一個可以無限水平擴展的MySQL,並且提供分佈式事務、跨節點 JOIN、吞吐和存儲容量水平擴展、故障自恢復、高可用等優異的特性;對業務沒有任何侵入性,簡化開發,利於維護和平滑遷移。

TiDB:

  • 兼容 Kafka 版本的 TiDB-Binlog [#8747]

  • 完善滾動升級下 TiDB 的退出機制 [#8707]

  • 增強 `utf8` 字符集的有效字符檢查 [#8754]

  • 修復在某些情況下為 generated column 增加索引 panic 的問題 [#8676]

  • 修復在某些情況下語句有 `TIDB_SMJ Hint` 的時候優化器無法找到正確執行計劃的問題 [#8729]

  • 修復在某些情況下 `AntiSemiJoin` 返回錯誤結果的問題 [#8730]

  • 修復事務中先寫後讀的情況下時間類型字段可能返回錯誤結果的問題 [#8746]

PD:

  • 修復Region Merge相關的Region信息更新問題 [#1377]

TiKV:

  • 支持以日 (`d`) 為時間單位的配置格式,並解決配置兼容性問題 [#3931]

  • 修復Approximate Size Split可能會panic的問題 [#3942]

  • 修復兩個Region Merge相關問題 [#3822],[#3873]

Tools:

1)TiDB-Lightning

  • 支持最小TiDB集群版本為 2.1.0

  • 修復解析包含JSON類型數據的文件內容出錯 [#144]

  • 修復使用checkpoint重啟後 `Too many open engines` 錯誤

2)TiDB-Binlog

  • TiDB支持寫[老版本TiDB-Binlog]

  • 消除了Drainer往Kafka寫數據的一些瓶頸點

EsgynDB發佈R2.5版本

2018年12月22日,EsgynDB R2.5版本正式發佈。

作為企業級產品,EsgynDB 2.5向前邁進了一大步,它擁有以下功能和改進:

  • 數據庫——支持冷熱數據,支持Hive DDL,增加了函數。

  • 易管理性——EsgynDB Manager增強了功能和更新了界面。

  • 安全性——EsgynDB Manager和REST server支持SSL,EsgynDB Manager Workbench支持組件級權限,EsgynDB Manager腳本執行器增加細粒度控制功能,支持安全語句,增強了GET語句。

  • 可用性——增加了EsgynDB Manager HA功能,提高了EsgynDB HA性能。

  • 基礎架構——在同一個EsgynDB實例上支持異構機器並能高效利用機器資源(技術預覽),支持新Hadoop發行版(HDP 2.6.5,CDH 5.13),在同一個EsgynDB實例上支持異構操作系統(RH/CentOS 6.x 和 7.x)。

  • 性能——提高了範圍優化掃描、ORC矢量化掃描和straw掃描的性能,提高了UPDATE語句、單行事務、repository(連接)和驅動連接的性能。

  • 易用性——通過Ambari安裝EsgynDB(簡化安裝),增強了LOAD語句功能(執行LOAD語句時指定UPDATE STATISTICS能自動更新統計信息),通過多種改進提高了用戶體驗(改進錯誤信息、提供易用工具和增強錯誤處理)。

CockroachDB發佈2.1版本

2018年10月30日,CockroachDB正式發佈2.1版本,其新增特性如下:

新增企業級特性:

  • CDC (Change Data Capture),可以方便用戶將訂閱的庫表變更實時同步至Kafka,方便用戶進一步的進行數據分析或處理。

  • 透明加密,可以方便對集群的用戶數據進行加密,防止用戶數據洩露。

  • 並行導出,可以將用戶指定的表,或者通過SELECT語句指定的結果通過DistSQL併成CSV格式的數據。

新增SQL特性:

  • 支持更改表字段類型。

  • 支持CANCEL JOB,集群內長時間執行的任務可以通過該語句終止。

  • 支持CANCEL QUERIES,支持同時終止多條SQL Statement。

  • 支持Cost-Based Optimizer。

  • 支持EXPLAIN (DISTSQL),可以查看指定SQL的物理執行計劃,方便進行調優。

  • 支持EXPLAIN ANALYZE,可以執行指定SQL,並返回該SQL物理執行過程中的統計信息。

  • 支持SHOW STATISTICS,查看統計信息,與Cost-Based Optimizer配合一起使用。

  • 支持關聯子查詢。

新增內核特性:

  • 支持Controlling Leaseholder Location, 可以顯示指定並控制Range的leaderHolder的位置。

  • 支持DBeaver,DBeaver是一個跨平臺的數據庫管理工具,用戶可以通過DBeaver對CockroachDB進行管理操作。

  • 支持Load-based Rebalancing,集群可以通過各個節點的負載情況來對副本進行rebalance。

  • 支持MySQL遷移至CockroachDB,目前僅支持全量數據遷移。

Admin UI增強:

  • Debug頁面顯示更全面的集群內部統計信息,方便進行troubleshoot。

  • 新增Hardware dashboard,可以查看CPU, 磁盤,網絡的統計信息。

  • 新增Statements page,可以顯示查看用戶的SQL在整個集群的執行情況。

  • 新增User Authentication,可以控制Admin UI的安全訪問。

時間序列

本期新秀:TimescaleDB發佈1.0版本

10月底,TimescaleDB 1.0宣佈正式推出,官方表示該版本已可用於生產環境,支持完整SQL和擴展。

TimescaleDB是基於PostgreSQL數據庫開發的一款時序數據庫,以插件化的形式打包提供,隨著PostgreSQL的版本升級而升級,不會因為另立分支帶來麻煩。

TimescaleDB架構:

2019数据架构选型必读:1月数据库产品技术解析

數據自動按時間和空間分片(chunk)

更新亮點:

  • 更廣泛的可用性改進

  • 後臺作業自動化和調度的基礎

  • 增強了數據庫強化和測試

  • 構建開源監控堆棧:對 Grafana 和 Prometheus 的原生支持

https://github.com/timescale/timescaledb/releases/tag/1.0.0

大數據生態圈

Hadoop發佈2.9.2版本

2018年11月中旬,Hadoop在2.9分支上發佈了新的2.9.2版本,該版本進行了204個大大小小的變更,主要變更如下:

  • 像3.x版本一樣,提供了對阿里oss雲對象存儲的支持,是目前唯一一個被Hadoop官方版本支持的雲存儲系統,只需要進行簡單的hadoop的配置,用戶就可以使用使用阿里雲的oss的對象存儲進行數據的存放於計算。

  • 更新了hadoop的資源評估器。通過官方提供資源評估器這樣的工具,可以對用戶使用的作業的資源進行評估,以幫助終端用戶更好的進行資源的調配。

  • 引入了3.x版本的基於路由的federation方案,相比於傳統的federation方案,新的基於路由的方案對客戶端完全透明,任何客戶端訪問HDFS的請求,可以通過路由轉發到對應的Namenode上進行數據訪問,不再需要客戶端層面進行配置。

  • 新增yarn的federation功能與機會容器特性,其中federation允許集群的Resource Manager管理部分計算節點,機會容器功能則允許先調度到相應節點,不會立馬運行,但是會排隊等待,直到可以獲取到對應的資源才會運行。這樣會提升節點資源的使用率。此外,yarn還支持了通過api的方式去配置任務的隊列。最後,AM在新版本中被允許在申請容器資源的時候變更請求,目前主要支持容器資源大小與容器類型的變更。

Greenplum 發佈5.15版本

Greenplum最新的5.15版本中發佈了流式數據加載工具。

該版本中的Greenplum Streem Server組件已經集成了Kafka流式加載功能,並通過了Confluent官方的集成認證,其支持的主要功能如下:

  • 支持多種常用數據格式,例如json,avro,二進制數據以及Confluent的Schema registry service;並提供可擴展的接口用於實現自定義數據格式,例如由多字節分隔符分割的文本等。

  • 基於Greenplum外部表以及UDF的強大功能,支持豐富的數據變換(Transform),在進行數據加載的同事可以完成複雜的實時數據變換。

  • 通過Mini-batch的方式,利用Greenplum的高速數據傳輸(gpfdist)協議,滿足高速、可靠、安全的加載需求。

  • 豐富多樣的輔助功能,例如定期任務,加密傳輸,加載歷史,任務管理等。

國產數據庫概覽

K-DB發佈數據庫一體機版

2018年11月7日,K-DB發佈了數據庫一體機版。該版本更新情況如下:

  • 採用高性能計算節點DB Server、超高速網絡Infiniband、智能型存儲節點Storage Server三層架構,具備了海量數據實時處理和PB級大容量數據存儲的能力,能夠應對海量數據下的HTAP混合業務需求;

  • 提供智能過濾(Function Offloading)、智能緩存(Flash Cashing)、存儲索引(Storage Data Map)等功能,提供了兼具強大計算能力、PB級海量數據存儲的先進架構,實現大幅提升服務器資源使用率以及數據庫整體性能,極大降低了數據交互的響應時間;

  • 增加了對InfiniBand超高速網絡及RDMA協議的支持,可以為用戶提供56Gbps的網絡帶寬和超快的傳輸速度,從而解決數據庫網絡瓶頸。

OceanBase遷移服務發佈1.0版本

1月4日,OceanBase 正式發佈OMS遷移服務1.0版本。

以下內容包含 OceanBase 遷移服務的重要特性和功能:

  • 多種類型數據庫支持:目前支持源端數據庫類型有Oracle、MySQL、OceanBase,支持全量遷移和增量數據同步。

  • 分鐘級即時回滾:切換到OceanBase後,將OceanBase的增量實時同步回源庫,並在較小延時的情況下可以立即完成回滾。

  • 一鍵完成遷移:整個數據遷移鏈路和回滾機制的搭建都是在頁面上連貫操作完成,使用簡便。

  • 負載回放驗證:採集源端數據庫的SQL流量,在目標庫OceanBase上回放,可以驗證其在OceanBase上的功能是否兼容、性能是否出現問題等。

  • 秒級數據驗證:數據增量同步過程中,可以定時校驗兩邊的數據增量是否一致。同時展示差異數據,提供快速訂正途徑。

SequoiaDB發佈3.0.1新版本

1、架構

1)完整計算存儲分離架構,兼容MySQL協議、語法

計算存儲分離體系以松耦合的方式將計算與存儲層分別部署,通過標準接口或插件對各個模塊和組件進行無縫替換,在計算層與存儲層均可實現自由的彈性伸縮。

2019数据架构选型必读:1月数据库产品技术解析

SequoiaDB巨杉數據庫“計算-存儲分離”架構詳細示意

用戶可以根據自身業務特徵選擇面向交易的SQL解析器(例如MySQL或PGSQL)或面向統計分析的執行引擎(例如SparkSQL)。眾所周知,使用不同的SQL優化與執行方式,數據庫的訪問性能可能會存在上千上萬倍的差距。計算存儲分離的核心思想便是在數據存儲層面進行一體化存儲,在計算層面則利用每種執行引擎的特點針對不同業務場景進行選擇和優化,用戶可以在存儲層進行邏輯與物理的隔離,將面向高頻交易的前端業務與面向高吞吐量的統計分析使用不同的硬件進行存儲,確保在多類型數據訪問時互不干擾,以真正達到生產環境可用的多租戶與HTAP能力。

2、其他更新信息

1)接口變更:

  • 新增:snapshot新增參數,可指定查詢條件、過濾條件,對結果進行排序等;

  • 新增:驅動中LOB部分提供eof接口。

2)主要特性:

  • SAC支持SequoiaSQL-MySQL與SequoiaDB創建關聯;

  • SAC支持SequoiaSQL-MySQL添加業務和卸載業務;

  • OM增加支持SequoiaSQL-MySQL的部署包;

  • 集合空間、集合增加全局唯一ID。

雲數據庫

本期新秀:騰訊發佈數據庫CynosDB,開啟公測

1、News

1)騰訊雲數據庫MySQL2018年重大更新:

  • 秒級監控,已全量發佈;

  • 強隔離一期,已灰度發佈,原地升級還在進行中,超用用戶也在推進中;

  • 備份產品化一期,灰度發佈中,已發佈重慶與日本地域。

2)騰訊雲數據庫MongoDB2018年重大更新:

  • 3.6版本上線;

  • 只讀和災備實例;

  • 備份與回檔重構;

  • 接入小程序雲,為小程序用戶提供數據庫服務。

3)騰訊雲數據庫Redis/CKV+2018年重大更新:

  • 推出集群版:18年Q3我們推出了CKV+和Redis4.0集群版,彌補了Redis產品線長期以來的在百萬、千萬QPS場景能力的缺失;

  • 推出了CKV+引擎:18年Q2我們完成了CKV+引擎的獨立品牌,通過CKV+支持了384GB超大規格的單節點實例,遠超業內同類產品的單節點規格。

4)騰訊雲數據庫CTSDB2018年重大更新:

  • 公有云完成計費,正式進入商業化;

  • 參與信通院時序數據庫標準制定、測試並拿到證書。

2、Redis 4.0集群版商業化上線

2018年10月,騰訊雲數據庫Redis 4.0集群版完成邀測、公測、商業化三個迭代,在廣州、上海、北京正式全量商業化上線。

其中值得關注的新特性/新功能/新改進/新修復有:

  • 解決了客戶在緩存場景高性能(千萬QPS)、大容量(TB級容量)、低延遲(亞毫秒)的痛點需求,為騰訊雲數據庫增添新利器。

產品特性:

  • 高性能低時延:千萬QPS性能、亞毫秒級別響應時延、4TB大容量,滿足用戶對集群版的極限要求;(性能和竟品對齊,容量比阿里更大);

  • 業界最靈活:支持分片數、分片容量、副本數三個維度的購買選配和彈性伸縮,擴縮容做到業務零感知;(Ali多個產品形態,變更業務閃斷,AWS不支持分片容量調整);

  • 自動讀寫分離:針對熱Key、高併發讀場景,提供動態添加&刪除只讀副本,一鍵開啟和關閉讀寫分離功能;(Ali單獨產品形態支持,支持需要遷移閃斷);

  • 簡單易用:通過自研Proxy,屏蔽集群底層複雜的管理細節,通過VIP的訪問方式,使得產品使用極為簡單。

使用場景:

  • 電商、直播等大容量、高性能的Cache場景;

  • 遊戲業務,快速無感知的動態擴容 & 縮容存儲場景;

  • 大數據分析緩存、中間件緩存場景。

官網文檔:

https://cloud.tencent.com/document/product/239/18336

3、騰訊自研數據庫CynosDB發佈,開啟公測

2018年11月22日,騰訊雲召開新一代自研數據庫CynosDB發佈會,業界第一款全面兼容市面上兩大最主流的開源數據庫MySQL和PostgreSQL的高性能企業級分佈式雲數據庫。

其中值得關注的新特性/新功能/新改進/新修復有:

  • 超高性能:CynosDB融合了傳統數據庫、雲計算和新硬件的優勢,支持無限量存儲、百萬級查詢和秒級的故障恢復,CynosDB可以達到單節點130萬QPS讀性能,超過業內目前最高100萬QPS水平,全面領先國內其他同類產品。實現了MySQL 8倍的性能提升,百TB級別的海量智能存儲,秒級的故障恢復。

  • 兼容兩大開源數據庫:產品架構上完全兼容開源數據庫引擎接口,是國內首家兼容MySQL5.7和全球第一個兼容PostgreSQL10的雲數據庫產品。在世界範圍內,MySQL和PostgreSQL是市面上最主流的兩大數據庫產品,因此,CynosDB完美的兼容性,讓企業幾乎無需更改代碼,就可以輕鬆實現無縫“上雲”。

  • 存儲和計算分離,高可用:為了提升系統可用性,CynosDB以軟件優化與新硬件結合為理念,採用了先進的計算和存儲分離架構,同時實現了計算無節點狀態,支持秒級故障切換和恢復,數據備份時間縮短到60秒之內,速度提升了180倍。

  • 釋放硬件紅利,價格僅為商用數據庫的1/15:CynosDB既支持普通的網絡和硬件設備,又能夠最大程度釋放硬件性能紅利。同時,靈活的擴展功能和購買方式,減少了用戶在計算和存儲資源上的浪費,綜合下來,CynosDB和同樣高性能的傳統商業數據庫相比,價格只相當於它的1/15。

本期新秀:京東雲DRDS發佈1.0版本

12月24日,京東雲分佈式關係型數據庫DRDS正式發佈1.0版本。

DRDS是京東雲精心自研的數據庫中間件產品,獲得了2018年 ”可信雲技術創新獎”。DRDS可實現海量數據下的自動分庫分表,具有高性能,分佈式,彈性升級,兼容MySQL等優點,適用於高併發、大規模數據的在線交易,歷史數據查詢,自動數據分片等業務場景,歷經多次618,雙十一的考驗,已經在京東集團內大規模使用。

京東雲DRDS產品有以下主要特性

1)自動分庫分表

通過簡單的定義即可自動實現分庫分表,將數據實際存放在多個MySQL實例的數據庫中,但呈現給應用程序的依舊是一張表,對業務透明,應用程序幾乎無需改動,實現了對數據庫存儲和處理能力的水平擴展。

2)分佈式架構

基於分佈式架構的集群方案,多個對等節點同時對外提供服務,不但可有效規避服務的單點故障,而且更加容易擴展。

3)超強性能

具有極高的處理能力,雙節點即可支持數萬QPS,滿足用戶超大規模處理能力的需求。

4)兼容MySQL

兼容絕大部分MySQL語法,包括MySQL語法、數據類型、索引、常用函數、排序、關聯等DDL,DML語句,使用成本低。

參考鏈接:

https://www.jdcloud.com/cn/products/drds

RadonDB發佈1.0.3版本

2018年12月26日,MyNewSQL領域的RadonDB雲數據庫發佈1.0.3版本。

其中值得關注的新功能有:

  • 支持全局表功能,加速小表/大表join;

  • 支持流式並行快速獲取,可對接ClickHouse MPP引擎進行OLAP分析。

推出dbaplus Newsletter的想法

dbaplus Newsletter旨在向廣大技術愛好者提供數據庫行業的最新技術發展趨勢,為社區的技術發展提供一個統一的發聲平臺。為此,我們策劃了RDBMS、NoSQL、NewSQL、時間序列、大數據生態圈、國產數據庫、雲數據庫等幾個版塊。

我們不以商業宣傳為目的,不接受任何商業廣告宣傳,嚴格審查信息源的可信度和準確性,力爭為大家提供一個純淨的技術學習環境,歡迎大家監督指正。

至於Newsletter發佈的週期,目前計劃是每三個月左右會做一次跟進,下期計劃時間是2019年4月14日~4月25日,如果有相關的信息提供請發送至郵箱:[email protected]

感謝名單

最後要感謝那些提供寶貴信息和建議的專家朋友,排名不分先後。

2019数据架构选型必读:1月数据库产品技术解析

往期回顧:

↓↓別忘了點這裡下載2019年1月完整版Newsletter哦~


分享到:


相關文章: