天天看點

資料簡化社群2018年全球資料庫總結及18種主流資料庫介紹(公号回複“資料庫2018”下載下傳典藏版PDF報告)

資料簡化社群2018年全球資料庫總結及18種主流資料庫介紹(公号回複“資料庫2018”下載下傳典藏版PDF報告)

秦隴紀 資料簡化DataSimp 今天

資料簡化DataSimp導讀:Google搜尋量最大的DB-Engines資料庫排名,介紹前幾名資料庫特點、雲AI區塊鍊等資料庫服務;展望2018年資料庫發展趨勢,本文合計40k字詳讀約需36分鐘。最近群裡說國内可以重新使用谷歌搜尋、谷歌學術了,馬上梳理全球搜尋量最大資料庫排名,梳理成本報告。不必再看度娘歪曲正常搜尋結果,枉顧事實和知識,給錢就排前,連醫院都敢競價排名的非正常、隻認錢、不負責、無底線、純私有公司做派的臉色搜尋資訊了。十個黑餅合起來拼了一個大餅,貌似做得很大,不過,即使一百個、一萬個黑的,能拼出一個白的嗎?雖然不是親兒子,至少谷歌有底線,尊重事實和版權,不會輸入“雪白”給你推女人大腿、輸入Indentify-H出一堆垃圾資訊,TMD什麼玩意兒!希望國人懂得科學技術怎麼來的、給誰用的、為了什麼搞科技和制度,幹事業是為了誰。

資料簡化社群2018年全球資料庫總結及18種主流資料庫介紹(40619字)目錄

A 2018年全球資料庫總結及各資料庫特點(26367字)

1. 全球2018年度資料庫排名

2.NoSQL資料庫常見系統特點

3. SQL資料庫特點及主流産品

4. 其他模式資料庫産品及其特點

B 2018年雲AI區塊鍊等領域資料庫發展趨勢(13637字)

5. 全球雲資料庫服務及常見産品

6.AI/NewSQL/時序/區塊鍊/IOT等DB發展

7 資料庫技術已明确的發展趨勢

8. 全球資料庫2018發展趨勢展望

參考文獻(2531字)Appx(626字).資料簡化DataSimp社群簡介

2018年全球資料庫總結及雲AI區塊鍊等領域資料庫發展趨勢

文|秦隴紀,來源:資料簡化社群,2018-08-11周六-16周四

本報告分AB兩部分(共8章38節),宏觀介紹2013年到2018年三季度Google搜尋量最大的DB-Engines資料庫排名,前幾名并18種代表性資料庫的常識、特色、動态和優缺點;全球雲計算AI時序物聯網區塊鍊等新場景資料庫服務;展望截止2018年以來的18個資料庫發展趨勢。

A2018年全球資料庫總結及各資料庫特點(26367字)

Google搜尋量最大、資料庫社群認可度最高的DB-Engines全球資料庫排名DB-Engines ranking,是按流行度人氣排名,覆寫340多種資料庫管理系統database management systems。排名标準包括搜尋資料庫引擎結果的數量,如:資料庫的系統名稱、Google趨勢、StackOverflow讨論、所提系統的工作提供機會、LinkedIn等專業網絡中的個人資料的數量、社交網絡中的提及,如推特。該排名每月更新一次,在社群内得到廣泛認可。通過對特定資料庫特征(如資料庫模型database model或許可證類型type of license)進行分組,定期釋出的統計資料揭示了戰略聲明strategicstatements中使用的曆史趨勢。

DB-EnginesDBMS門戶2012年建立,由奧地利咨詢公司SolidIT維護。根據DB-Engines排名,授予一年内獲得最多人氣的資料庫系統一個年度獎項,分别是:2013年MongoDB,2014年MongoDB,2015年Oracle甲骨文,2016年Microsoft SQL Server,2017年PostgreSQL(2018年1月2日釋出)。

1. 全球2018年度資料庫排名

2018年最流行的資料庫前十名是:1.Oracle,2. MySQL,3.Microsoft SQL Server,4. PostgreSQL,5.MongoDB,6.DB2,7.Redis,8.Elasticsearch,9.Microsoft Access,10.Cassandra。DB-Engines排名和Statista排名前十名相同,僅Access次序略有不同,也類似于往年。

1.1 2018年8月份前30名資料庫引擎排名

資料簡化社群2018年全球資料庫總結及18種主流資料庫介紹(公号回複“資料庫2018”下載下傳典藏版PDF報告)

圖1 DB-Engines 2018-08資料庫前30名清單[2]

2018年8月的DB-Engines排名前30名清單如上圖。[1] 其排名在資料庫系統業界權威性很高。本次用6方面統計資料給出綜合排名:

Ø  資料庫名稱被搜尋數量(通過Google、Bing、Yandex搜尋引擎統計)

Ø  正常興趣關注度(通過GoogleTrends頻度統計)

Ø  技術讨論頻度(通過StackOverflow、DBAStack Exchange問題和興趣使用者數統計)

Ø  提到資料庫的招聘職位數(通過Indeed、Simply Hired統計)

Ø  專業網站裡提到資料庫的檔案數(通過LinkedIn、Upwork統計)

Ø  社交資訊(通過Twitter提到資料庫的推文統計)

DB-Engines全球資料庫排名不是測量系統的實際使用或安裝數量,而是用相當模糊的概念“流行度popularity”,可能與使用者數量相對應,也可能不相對應。此外,系統的品質quality和功能features對排名沒有直接影響。[2] DB-Engines排名隻反映全球流行程度,不能反映出系統技術特性、産品營收情況,也不代表國内流行度排名(他們統計時Google和Twitter在中國都不能用)。該排名是一種技術外部标準為基礎的間接排名,側面反映系統應用情況為主的。

從超過22,500個來源做統計和研究的統計門戶Statista的“技術與電信>軟體>2018全球最受歡迎的資料庫管理系統”欄目文章《2018年2月全球最受歡迎的資料庫管理系統排名》(Ranking of the most popular database managementsystems worldwide, as of February 2018),如下圖。[3]

資料簡化社群2018年全球資料庫總結及18種主流資料庫介紹(公号回複“資料庫2018”下載下傳典藏版PDF報告)

圖2 2018年2月全球最受歡迎的資料庫管理系統排名[3]

該Statista統計資料顯示了截至2018年2月十大資料庫管理系統(DBMSs)受歡迎度排名,前三名最受歡迎資料庫管理系統均比後三名DBMS規模約大三倍。根據源标準source's criteria,甲骨文Oracle是最受歡迎的系統,排名分數為1,303。從排名來看Oracle、MySQL、SQL Server三大老牌資料庫是遙遙領先,呈三足鼎立局面。PostgreSQL、MongoDB比較穩的站在前五,得分也不相上下,兩家一直在争奪老四的位置。曾經的資料庫上司者DB2近幾年發展乏力、持續下滑,網際網路行業及中小企業IT裡鮮見DB2身影,金融等領域也受到非常大的挑戰,估計第六還要下滑。MongoDB、Redis、Elasticsearch、Cassandra、Neo4j等在各自領域繼續取得上司地位。

資料簡化社群2018年全球資料庫總結及18種主流資料庫介紹(公号回複“資料庫2018”下載下傳典藏版PDF報告)

圖3 2013年-2018年十五大主流資料庫排名趨勢[4]

上圖是DB-Engines排名的2013年-2018年十五大主流資料庫排名趨勢圖,總體來說MySQL、SQLServer、PostgreSQL、MongoDB、Redis、Redis、Elasticsearch是市場赢家,在自家地盤都發展得非常不錯;Oracle、DB2、Access、Sybase也維持了曆史活躍度,整個資料庫市場在壯大。[4]

1.2 DB-Engines排名的343種資料庫分析

在DB-Engines排名統計的343種資料庫中,有173種商業資料庫和170種開源資料庫,分别占比52.5%和47.5%。[5]其中,排名前五位的商業資料庫系統commercialsystems分别是:

1.Oracle(得分1312總排名1)

2.Microsoft SQL Server(得分1073總排名3)

3.DB2(得分182總排名6)

4.Microsoft Access129總排名9)

5.Teradata77總排名12)

排名前五位的開源資料庫系統open source systems分别是:

1.MySQL(得分1207總排名2)

2.PostgreSQL(得分417總排名4)

3.MongoDB(得分351總排名5)

4.Redis(得分139總排名7)

5.Elasticsearch(得分138總排名8)

資料簡化社群2018年全球資料庫總結及18種主流資料庫介紹(公号回複“資料庫2018”下載下傳典藏版PDF報告)

圖4 2018年資料庫模型在商業授權和開源資料庫的流行度遞減趨勢[5]

此圖表是DB-Engines2018年8月按資料庫模型細分的商業授權和開源資料庫流行度遞減趨勢,表明開源工具的普及很大程度上取決于他們的資料庫模型database model。開源資料庫沒有完全打敗商業資料庫的勢頭,未來會長期激烈競争,目前商業資料庫主要是Oracle、SQL Server在支撐。

資料簡化社群2018年全球資料庫總結及18種主流資料庫介紹(公号回複“資料庫2018”下載下傳典藏版PDF報告)

圖5 按資料庫類型的市場百分比[6]

DB-Engines列出343種不同資料庫管理系統,根據資料庫模型進行分類,例如關系資料庫管理系統(Relational DBMS)、鍵值存儲(Key-value stores)、文檔存儲(Document stores) 、事件存儲(Event stores)、圖資料庫管理系統(Graph DBMS)、時間序列資料庫管理系統(Time Series DBMS)、資源描述架構存儲(RDF stores)、面向對象的資料庫管理系統(Object oriented DBMS)、搜尋引擎(Search engines)、寬列存儲(Wide column stores)、多值資料庫管理系統(Multivalue DBMS)、原生XML資料庫管理系統(Native XML DBMS)、内容存儲(Content stores)、活動存儲(Event Stores)、導航資料庫管理系統(Navigational DBMS)等。上面的餅圖顯示每個類别中的系統數,一些系統屬于多個類别。[6]下面的圖表顯示了每個類别的受歡迎程度。它是根據每個類别的所有單個系統流行度(即排名分數)來計算的。所有排名分數的總和為100%。[7]

資料簡化社群2018年全球資料庫總結及18種主流資料庫介紹(公号回複“資料庫2018”下載下傳典藏版PDF報告)

圖6 按資料庫類型的市場百分比[7]

資料庫産品競争關系及客戶流向示意圖如下。

資料簡化社群2018年全球資料庫總結及18種主流資料庫介紹(公号回複“資料庫2018”下載下傳典藏版PDF報告)

圖7資料庫産品競争關系及客戶流向

1.3 全部343種系統DB-Engines排名

下表是DB-Engines排名完整版[8],注意這是8月釋出的,排名每月更新一次。

表1 2018年8月DB-Engines排名完整版[8]

343  systems in ranking, August 2018
Rank DBMS Database Model Score

Aug

2018

Jul

2018

Aug

2017

Aug

2018

Jul

2018

Aug

2017

1. 1. 1. Oracle   Relational  DBMS 1312.02 +34.24 -55.85
2. 2. 2. MySQL Relational  DBMS 1206.81 +10.74 -133.49
3. 3. 3. Microsoft SQL Server Relational  DBMS 1072.65 +19.24 -152.82
4. 4. 4. PostgreSQL   Relational  DBMS 417.50 +11.69 +47.74
5. 5. 5. MongoDB   Document store 350.98 +0.65 +20.48
6. 6. 6. DB2 Relational  DBMS 181.84 -4.36 -15.62
7. 7. 9. Redis Key-value store 138.58 -1.34 +16.68
8. 8. 10. Elasticsearch   Search engine 138.12 +1.90 +20.47
9. 9. 7. Microsoft Access Relational  DBMS 129.10 -3.48 +2.07
10. 10. 8. Cassandra   Wide column store 119.58 -1.48 -7.14
11. 11. 11. SQLite   Relational  DBMS 113.73 -1.55 +2.88
12. 12. 12. Teradata   Relational  DBMS 77.41 -0.82 -1.83
13. 13. 16. Splunk Search engine 70.49 +1.26 +9.03
14. 14. 18. MariaDB   Relational  DBMS 68.29 +0.78 +13.60
15. 16. 13. Solr Search engine 61.90 +0.38 -5.06
16. 15. 14. SAP Adaptive Server Relational  DBMS 60.44 -1.68 -6.48
17. 17. 15. HBase Wide column store 58.80 -1.97 -4.72
18. 18. 20. Hive Relational  DBMS 57.94 +0.32 +10.64
19. 19. 17. FileMaker Relational  DBMS 56.05 -0.33 -3.60
20. 20. 19. SAP  HANA Relational  DBMS 51.93 +0.33 +3.96
21. 21. 22. Amazon DynamoDB Multi-model 51.66 +2.03 +14.04
22. 22. 21. Neo4j Graph  DBMS 40.92 -0.95 +2.92
23. 24. 23. Couchbase   Document store 32.96 -0.12 -0.01
24. 23. 24. Memcached Key-value store 32.91 -0.96 +2.95
25. 25. 26. Microsoft Azure SQL Database Relational  DBMS 26.10 -0.74 +4.19
26. 26. 25. Informix Relational  DBMS 25.39 -1.20 -2.04
27. 28. 30. Firebird Relational  DBMS 20.29 -0.37 +2.22
28. 27. 27. Vertica   Relational  DBMS 20.04 -0.78 -1.77
29. 30. 39. Microsoft Azure Cosmos DB Multi-model 19.52 +0.07 +10.10
30. 29. 28. CouchDB Document store 18.44 -1.06 -2.90
31. 31. 29. Netezza Relational  DBMS 16.34 -0.57 -3.24
32. 32. 32. Amazon Redshift Relational  DBMS 15.18 +0.46 +2.35
33. 33. 34. Google BigQuery Relational  DBMS 14.41 +1.07 +2.60
34. 34. 31. Impala Relational  DBMS 13.50 +0.21 +0.44
35. 35. 37. Spark  SQL Relational  DBMS 12.80 +0.08 +2.03
36. 36. 41. InfluxDB   Time Series DBMS 11.57 -0.13 +3.47
37. 37. 33. MarkLogic Multi-model 11.21 -0.10 -1.29
38. 38. 35. Greenplum Relational  DBMS 10.38 -0.42 -1.03
39. 39. 38. dBASE Relational  DBMS 10.14 -0.65 -0.04
40. 41. 40. Hazelcast Key-value store 8.60 -0.17 -0.14
41. 40. 36. Oracle Essbase Relational  DBMS 8.07 -1.06 -3.28
42. 42. 54. Firebase Realtime Database Document store 7.51 -0.03 +3.00
43. 43. Datastax Enterprise Multi-model 7.30 -0.06
44. 45. 45. Sphinx Search engine 7.03 +0.23 +0.88
45. 46. 44. Ehcache Key-value store 6.54 +0.12 -0.39
46. 44. Microsoft Azure SQL Data  Warehouse Relational  DBMS 6.35 -0.74
47. 47. 43. Interbase Relational  DBMS 5.92 -0.40 -1.17
48. 49. 59. Realm Relational  DBMS 5.73 +0.15 +1.70
49. 48. 42. Riak  KV Key-value store 5.30 -0.98 -1.96
50. 51. 49. H2 Relational  DBMS 5.07 -0.02 +0.05
51. 53. 62. Amazon  Aurora Relational  DBMS 4.98 +0.32 +1.42
52. 50. 46. OrientDB   Multi-model 4.91 -0.48 -0.76
53. 52. 47. HyperSQL Relational  DBMS 4.50 -0.28 -1.00
54. 56. 64. Microsoft Azure Search Search engine 4.45 +0.05 +1.16
55. 54. 52. Ingres Relational  DBMS 4.39 -0.26 -0.42
56. 58. 53. SAP SQL Anywhere Relational  DBMS 4.18 -0.15 -0.46
57. 55. 56. Aerospike Key-value store 4.07 -0.34 -0.30
58. 60. 51. RethinkDB Document store 4.01 -0.13 -0.87
59. 57. 55. Derby Relational  DBMS 3.99 -0.39 -0.50
60. 61. 60. Jackrabbit Content store 3.97 -0.03 +0.01
61. 59. 50. SAP  IQ Relational  DBMS 3.94 -0.22 -1.03
62. 62. 61. Accumulo Wide column store 3.78 -0.06 +0.12
63. 70. 101. Kdb+   Multi-model 3.51 +0.29 +1.85
64. 66. 81. Ignite Multi-model 3.45 -0.02 +0.86
65. 65. 68. OpenEdge Relational  DBMS 3.42 -0.06 +0.33
66. 64. 80. Algolia Search engine 3.38 -0.19 +0.77
67. 67. 74. ArangoDB Multi-model 3.34 -0.11 +0.42
68. 68. 63. Google Cloud Datastore Document store 3.32 -0.05 -0.17
69. 63. 57. Cloudant Document store 3.28 -0.37 -1.03
70. 69. 73. Microsoft Azure Table Storage Wide column store 3.03 -0.31 +0.07
71. 72. 58. Adabas Multivalue DBMS 2.95 -0.11 -1.12
72. 73. 70. MaxDB Relational  DBMS 2.67 -0.29 -0.37
73. 76. 76. Google Search Appliance Search engine 2.64 -0.04 -0.25
74. 71. 65. RavenDB   Document store 2.60 -0.50 -0.67
75. 80. 88. Graphite Time Series DBMS 2.60 +0.04 +0.30
76. 74. 67. Apache  Drill Multi-model 2.53 -0.27 -0.68
77. 77. 69. RRDtool Time Series DBMS 2.47 -0.18 -0.59
78. 78. 66. MemSQL   Relational  DBMS 2.47 -0.15 -0.79
79. 82. 93. Jena RDF  store 2.45 +0.01 +0.27
80. 81. 71. PouchDB Document store 2.34 -0.13 -0.64
81. 75. 72. UniData,UniVerse Multivalue DBMS 2.33 -0.39 -0.64
82. 83. 89. Amazon CloudSearch Search engine 2.32 -0.06 +0.02
83. 79. 79. Caché Multi-model 2.26 -0.35 -0.45
84. 87. 84. SAP Advantage Database Server Relational  DBMS 2.26 -0.07 -0.31
85. 91. Google Cloud Firestore Document store 2.22 +0.09
86. 84. 91. LevelDB Key-value store 2.22 -0.16 +0.03
87. 90. 87. 4D Relational  DBMS 2.20 +0.01 -0.10
88. 88. 83. Infinispan Key-value store 2.15 -0.08 -0.42
89. 93. 95. Virtuoso Multi-model 2.05 +0.06 +0.07
90. 86. 75. Oracle Berkeley DB Multi-model 2.04 -0.31 -0.86
91. 85. 77. Oracle  NoSQL Key-value store 1.92 -0.44 -0.95
92. 89. 97. MapD Relational  DBMS 1.85 -0.36 -0.02
93. 94. 92. Amazon SimpleDB Key-value store 1.81 -0.11 -0.37
94. 92. 78. Oracle Coherence Key-value store 1.81 -0.31 -0.97
95. 95. 85. TimesTen   Relational  DBMS 1.68 -0.24 -0.87
96. 96. 94. Percona Server for MySQL Relational  DBMS 1.67 -0.14 -0.39
97. 97. 103. mSQL Relational  DBMS 1.65 -0.16 +0.17
98. 98. 90. CloudKit Document store 1.58 -0.21 -0.62
99. 103. 163. Prometheus Time Series DBMS 1.52 +0.13 +0.92
100. 100. 98. Datomic Relational  DBMS 1.51 -0.09 -0.36

101.RocksDB

102.OpenTSDB

103.Teradata  Aster

104.IBM dashDB

105.VoltDB

106.Red Brick

107.IMS

108.ClickHouse

109.Google  Cloud Spanner

110.MonetDB

111.Versant  Object Database

112.Db4o

113.Druid

114.Tibero

115.CockroachDB

116.EXASOL

117.PrestoDB

118.Datameer

119.GridGain

120.EnterpriseDB

121.jBASE

122.ObjectStore

123.Geode

124.Giraph

125.Empress

126.Snowflake

127.Oracle Rdb

128.SQLBase

129.Matisse

130.Mnesia

131.BaseX

132.FoundationDB

133.R:BASE

134.Google  Cloud Bigtable

135.Infobright

136.DataEase

137.XAP

138.Amazon  Neptune

139.NonStop SQL

140.HAWQ

141.Altibase

142.NuoDB

143.ScyllaDB

144.Model 204

145.GT.M

146.ScaleArc

147.Cubrid

148.eXist-db

149.Datacom/DB

150.Actian Vector

151.Kognitio

152.IDMS

153.MapR-DB

154.D3

155.1010data

156.NCache

157.AllegroGraph

158.GraphDB

159.solidDB

160.Tarantool

161.Event Store

162.DBISAM

163.JanusGraph

164.ZODB

165.TiDB

166.Stardog

167.HFSQL

168.InfiniDB

169.GemStone/S

170.webMethods  Tamino

171.WiredTiger

172.OpenInsight

173.WebSphere  eXtreme Scale

174.SciDB

175.KairosDB

176.OpenBase

177.Splice  Machine

178.Sedna

179.NexusDB

180.Xapian

181.CrateDB

182.VistaDB

183.Clustrix

184.LiteDB

185.Northgate  Reality

186.MapDB

187.BigchainDB

188.Postgres-XL

189.AlaSQL

190.Kinetica

191.Tokyo Cabinet

192.SQL.JS

193.Perst

194.Sqrrl

195.Objectivity/DB

196.ObjectDB

197.eXtremeDB

198.Rasdaman

199.Trafodion

200.Jade

201.Tokyo Tyrant

202.4store

203.Riak TS

204.InfiniteGraph

205.SQream DB

206.Project  Voldemort

207.FrontBase

208.Algebraix

209.Blazegraph

210.Raima  Database Manager

211.RDF4J

212.Graph Engine

213.Tajo

214.LokiJS

215.Percona  Server for MongoDB

216.Redland

217.BoltDB

218.ModeShape

219.Starcounter

220.Lovefield

221.Dgraph

222.SearchBlox

223.c-treeACE

224.Comdb2

225.Sequoiadb

226.Mimer SQL

227.Citus

228.PipelineDB

229.LucidDB

230.YugaByte DB

231.TimescaleDB

232.TigerGraph

233.Kyoto Cabinet

234.ElevateDB

235.Hibari

236.OpenQM

237.Axibase

238.Dataupia

239.SnappyData

240.STSdb

241.Actian PSQL

242.FaunaDB

243.Scalaris

244.NEventStore

245.EsgynDB

246.TransLattice

247.Sparksee

248.WebScaleSQL

249.ActorDB

250.VelocityDB

251.HyperGraphDB

252.RedStore

253.InfoGrid

254.Hawkular  Metrics

255.Warp 10

256.FlockDB

257.BrightstarDB

258.Mulgara

259.Transbase

260.RaptorDB

261.ITTIA

262.Eloquera

263.EJDB

264.NosDB

265.XtremeData

266.DensoDB

267.SenseiDB

268.Siaqodb

269.searchxml

270.GridDB

271.SmallSQL

272.WakandaDB

273.Valentina  Server

274.Alibaba  Cloud MaxCompute

275.Alibaba  Cloud HybridDB

276.TinkerGraph

277.Blueflood

278.Alibaba  Cloud Table Store

279.CubicWeb

280.Dydra

281.GraphBase

282.FleetDB

283.Kyoto Tycoon

284.Quasardb

285.AgensGraph

286.TempoIQ

287.ScaleOut  StateServer

288.JethroData

289.GRAKN.AI

290.Bangdb

291.LeanXcale

291.TayzGrid

293.iBoxDB

294.IRONdb

295.Versant  FastObjects

296.BigObject

297.Brytlyt

298.GlobalsDB

299.TerarkDB

300.MammothDB

301.InfinityDB

302.CodernityDB

303.Strabon

304.WhiteDB

305.ToroDB

306.AnzoGraph

307.DBSight

308.LedisDB

309.Atos Standard Common Repository

309.Badger

309.BergDB

309.Cachelot.io

309.CortexDB

309.DaggerDB

309.Djondb

309.Elliptics

309.Exorbyte

309.Helium

309.Heroic

309.HGraphDB

309.HyperLevelDB

309.Indica

309.Jaguar

309.JasDB

309.JustOneDB

309.K-DB

309.Linter

309.Machbase

309.Manticore Search

309.Nanolat

309.Newts

309.OrigoDB

309.Resin Cache

309.Sadas Engine

309.SiriDB

309.SisoDb

309.SiteWhere

309.SparkleDB

309.SwayDB

309.TomP2P

309.Upscaledb

309.Yaacomo

309.Yanza

2. NoSQL資料庫常見系統特點

非關系型資料庫NoSQL是Notonly SQL縮寫,是對不同于傳統的關系型資料庫的資料庫系統的統稱,它具有非關系型、分布式、不提供ACID的資料庫設計模式等特征。NoSQL資料庫易擴充,共同特點是都去掉了關系型資料庫的關系型特性。NoSQL涵蓋了各種不同資料庫技術,開發人員使用一些建立大量新的、快速變化的資料類型的應用程式...包括Memcached、Redis、MongoDB、TokyoTyrant等,這些技術是根據建構現代應用程式的要求而開發的。[8]随着網際網路與移動流量呈現出爆發性增長,近年來以Redis、MongoDB、HBase為代表的NoSQL資料庫快速發展,NoSQL資料庫快速實作業務需求、輕松、低成本、可伸縮的特點,有些人說NoSQL要取代關系型資料庫。發展幾年後大家冷靜了,目前RDBMS仍占據80%的活躍度,仍處于統治地位。

表2 NoSQL資料庫的四大分類表格分析

分類 系統執行個體 典型應用場景 資料模型 優點 缺點
鍵值(key-value)存儲 Redis; 臨時Memcached;  永久Tokyo Cabinet/Tyrant, Flare, ROMA,  Voldemort, Oracle BDB 内容緩存,主要用于處理大量資料的高通路負載,也用于一些日志系統等等 Key指向Value的鍵值對,通常用hash  table來實作 查找速度快 資料無結構化,通常隻被當作字元串或者二進制資料
列存儲(Column stores) Cassandra, HBase, Riak,  HyperTable 分布式的檔案系統 以列簇式存儲,将同一列資料存在一起 查找速度快,可擴充性強,更容易進行分布式擴充 功能相對局限
文檔型(Document stores)資料庫 CouchDB, MongoDb Web應用(與Key-Value類似,Value是結構化的,不同的是資料庫能夠了解Value的内容) Key-Value對應的鍵值對,Value為結構化資料 資料結構要求不嚴格,表結構可變,不需要像關系型資料庫一樣需要預先定義表結構 查詢性能不高,而且缺乏統一的查詢文法
圖形(Graph)資料庫 Neo4J, InfoGrid, Infinite Graph 社交網絡,推薦系統等。專注于建構關系圖譜 圖結構 利用圖結構相關算法。比如最短路徑尋址,N度關系查找等 很多時候需要對整個圖做計算才能得出需要的資訊,且這種結構不太好做分布式的叢集方案

該表是常見NoSQL資料庫的分類、系統執行個體、應用場景、資料模型、優缺點。NoSQL分四大分類:

鍵值(Key-Value)存儲資料庫

這類資料庫主要用到一個哈希表,表中有一個特定的鍵和一個指針指向特定資料。Key/value模型對IT系統來說,優勢在于簡單、易部署。但如果DBA隻對部分值進行查詢或更新時,Key/value就顯得效率低下了。舉例如:TokyoCabinet/Tyrant, Redis, Voldemort, Oracle BDB。

列存儲(Columnstores)資料庫

這部分資料庫通常用來應對分布式存儲的海量資料。鍵仍然存在,但指向了多個列,這些列由列家族來安排。如:Cassandra,HBase, Riak。

文檔型(Documentstores)資料庫

文檔型資料庫的靈感來自于Lotus Notes辦公軟體,和鍵值存儲類似。該類型的資料模型是版本化的文檔,半結構化的文檔以特定的格式存儲,比如JSON。文檔型資料庫可以看作是鍵值資料庫的更新版,允許之間嵌套鍵值。文檔資料庫比鍵值資料庫的查詢效率更高。如:CouchDB, MongoDb。國内也有文檔型資料庫SequoiaDB,已經開源。

圖形(Graph)資料庫

圖形結構的資料庫同其他行列以及剛性結構的SQL資料庫不同,它是使用靈活的圖形模型,并且能夠擴充到多個伺服器上。NoSQL資料庫沒有标準的查詢語言(SQL),是以進行資料庫查詢需要制定資料模型。許多NoSQL資料庫都有REST式的資料接口或者查詢API。如:Neo4J,InfoGrid, Infinite Graph。

2.1 Redis(緩存資料庫)

Redis是一個開源(BSD許可)的,記憶體中的資料結構存儲系統,它可以用作資料庫、緩存和消息中間件。它支援多種類型的資料結構,如字元串(strings),散列(hashes),清單(lists),集合(sets),有序集合(sorted sets)與範圍查詢,bitmaps,hyperloglogs和 地理空間(geospatial)索引半徑查詢。Redis内置了複制(replication),LUA腳本(Lua scripting),LRU驅動事件(LRUeviction),事務(transactions)和不同級别的磁盤持久化(persistence),并通過Redis哨兵(Sentinel)和自動分區(Cluster)提供高可用性(highavailability)。[9]

資料簡化社群2018年全球資料庫總結及18種主流資料庫介紹(公号回複“資料庫2018”下載下傳典藏版PDF報告)

圖8 最新版Redis 4.0.10

Redis提供的緩存服務是其核心競争力,但Redis也可以把資料庫持久化。幾年前Memcached是最流行的緩存服務,但随着Redis的發展在很多方面比Memcached更好用,比如Redis支援更多種資料類型,包括hash、set、list等等。Redis也支援資料持久化,另外2015年釋出Redis 3.0開始支援叢集服務。Redis還支援subscribe/publish指令,可以用于簡單的消息發送與訂閱,總體而言95%的情況,如果是緩存服務,我們都可以選擇Redis。[10]

2016年Redis釋出3.2版本,提供GEO地理資訊存儲支援。Redis原計劃下個版本是3.4,後來計劃重指令為Redis 4.0,目前的最新版是2017年推出的4.0.10。Redis4.0有許多大的變化,最重要的是子產品化特性,官方希望Redis是一個底層基礎設施,開發者可以在上面建構更多有意思的東西,比如對神經網絡、機器學習資料計算擴充,還有如圖資料、二級索引、時序資料、全文索引等等。[11] (備注:antirez是redis創始人的網名,他是最核心開發成員,90%以上的代碼是他貢獻的。)

官網:https://redis.io/ (國内無法通路,域名字尾io屬于國家域名,是BritishIndian Ocean territory,即英屬印度洋領地)http://www.redis.cn/ (中國使用者組,可通路)

所用語言:ANSI C/C++

特點:運作異常快

使用許可:BSD

協定:類Telnet

有硬碟存儲支援的記憶體資料庫,但自2.0版本以後可以将資料交換到硬碟(注意,2.4以後版本不支援該特性)

Master-slave複制:如果同一時刻隻有一台伺服器處理所有的複制請求,這被稱為Master-slave複制,通常應用在需要提供高可用性的伺服器叢集。

雖然采用簡單資料或以鍵值索引的哈希表,但也支援複雜操作,例如ZREVRANGEBYSCORE。

INCR & co(适合計算極限值或統計資料)

支援sets(同時也支援union/diff/inter)

支援清單(同時也支援隊列;阻塞式pop操作)

支援哈希表(帶有多個域的對象)

支援排序sets(高得分表,适用于範圍查詢)

Redis支援事務

支援将資料設定成過期資料(類似快速緩沖區設計)

Pub/Sub允許使用者實作消息機制

最佳應用場景:适用于資料變化快且資料庫大小可遇見(适合記憶體容量)的應用程式。例如:股票價格、資料分析、實時資料搜集、實時通訊。

優點:

1.支援多種資料結構,如string(字元串)、list(雙向連結清單)、dict(hash表)、set(集合)、zset(排序set)、hyperloglog(基數估算)

2.支援持久化操作,可以進行aof及rdb資料持久化到磁盤,進而進行資料備份或資料恢複等操作,較好的防止資料丢失的手段。

3.支援通過Replication進行資料複制,通過master-slave機制,可以實時進行資料的同步複制,支援多級複制和增量複制,master-slave機制是Redis進行HA的重要手段。

4.單線程請求,所有指令串行執行,并發情況下不需要考慮資料一緻性問題。

5.支援pub/sub消息訂閱機制,可以用來進行消息訂閱與通知。

6.支援簡單的事務需求,但業界使用場景很少,并不成熟。

缺點:

1.Redis隻能使用單線程,性能受限于CPU性能,故單執行個體CPU最高才可能達到5-6wQPS每秒(取決于資料結構,資料大小以及伺服器硬體性能,日常環境中QPS高峰大約在1-2w左右)。

2.支援簡單的事務需求,但業界使用場景很少,并不成熟,既是優點也是缺點。

3.Redis在string類型上會消耗較多記憶體,可以使用dict(hash表)壓縮存儲以降低記憶體耗用。

2.2 MongoDB(文檔型資料庫)

MongoDB是文檔型資料庫,NoSQL領域的上司者之一,是目前最成功的NoSQL資料庫。它有不少過人之處:彌補關系型資料庫很多問題,比如支援Schema Free,在關系型資料庫不支援JSON之前,就是一個典型的難題。比如,對于一個動态屬性的表,該如何設計商品的屬性、遊戲裝備屬性等Schema表結構。以前,關系型資料庫除了預留字段、行轉列模式、大字段文本幾種方案外,沒别的好解決方案。MongoDB在這方面非常擅長,因為它的資料互動及存儲都采用類似JSON格式,非常靈活,并且可以對JSON資料建立非常靈活的索引,如子屬性、數組都能支援索引。新關系型資料庫雖然也支援JSON格式,但是與MongoDB還是有較大的差距。

資料簡化社群2018年全球資料庫總結及18種主流資料庫介紹(公号回複“資料庫2018”下載下傳典藏版PDF報告)

圖9 NodeJS+MongoDB

因為是JSON,MongoDB天然支援js文法互動,吸引了很多NodeJS服務端程式員。也是js程式員的一種方案選擇,有人宣稱NodeJS+MongoDB組合要代替PHP+MySQL組合了。MongoDB很早就有自己的查詢語言,文法是js格式但和SQL很像,與SQL一樣強大。

資料簡化社群2018年全球資料庫總結及18種主流資料庫介紹(公号回複“資料庫2018”下載下傳典藏版PDF報告)

圖10 Mongo Query Language and SQL

上圖簡單對比MongoDB查詢語言與SQL。SQL是面向關系型資料庫設計的語言,且文法很全面,是以提供一個面向文檔型資料庫類似SQL的語言非常有價值。MongoDB查詢語言洞察DBA需求:不隻要高性能,還要提供強大高效的通路接口語言。

MongoDB原生支援分布式資料庫、資料自動分片,還支援MapReduce,也内置分布式檔案系統GridFS,另外可以挂接多種存儲引擎;支援View,decimal最多支援34位小數位;支援collation字元串校驗集,校驗集會影響字元對比與排序,3.4版以前字元串是按位元組嚴格對比,通過設定collation後可以指定校驗方式,比如忽略大小寫、漢字按拼音排序(官方文檔特意舉例拼音排序,說明重視中國使用者)等等。MongoDB叢集管理與日志複制方面進一步增強:推出自己的資料庫雲服務MongoDB Atlas,支援AWS上部署,這是一種更好用的雲計算服務模式。

資料簡化社群2018年全球資料庫總結及18種主流資料庫介紹(公号回複“資料庫2018”下載下傳典藏版PDF報告)

圖11 MongoDB4.0

2018年6月27日,MongoDB在紐約釋出了4.0版本。MongoDB4.0的新MongoDB Kubernetes Operator (Beta)支援配置有狀态的分布式資料庫叢集,協調Kubernetes和MongoDBOps Manager之間的協同性。除了之前的Cloud Foundry內建,對Kubernetes的支援使客戶可以自由地利用内部部署,混合和公共雲基礎架構。MongoDB Atlas通過與Google合作将AtlasFree Tier擴充到Google Cloud Platform,為使用者提供更多選擇。這允許不斷增長的開發人員社群依靠GCP服務使用完全托管的MongoDB建構他們的應用程式,而無需進入成本。AtlasFree Tier提供512MB存儲空間,是原型設計和早期開發的理想選擇。

此外,該公司還宣布了一系列針對Atlas的複雜新安全功能,例如加密密鑰管理,LDAP內建和資料庫級審計,以便為安全意識最強的組織提供對其資料的更多控制。MongoDB Atlas現在使受保護的實體及其業務夥伴能夠使用安全的Atlas環境來處理,維護和存儲受保護的健康資訊,這些資訊是根據與MongoDB公司簽署的業務夥伴協定,适用于符合1996年健康保險流通與責任法案(the Health Insurance Portabilityand Accountability Act of 1996, HIPAA)。

官網:https://www.mongodb.com (正常通路)

所用語言:C++

特點:保留了SQL一些友好的特性(查詢,索引)。

使用許可:AGPL(發起者:Apache)

協定:Custom, binary(BSON)

Master/slave複制(支援自動錯誤恢複,使用sets複制)

内建分片機制

支援javascript表達式查詢

可在伺服器端執行任意的javascript函數

update-in-place支援比CouchDB更好

在資料存儲時采用記憶體到檔案映射

對性能的關注超過對功能的要求

建議最好打開日志功能(參數–journal)

在32位作業系統上,資料庫大小限制在約2.5Gb

空資料庫大約占192Mb

采用GridFS存儲大資料或中繼資料(不是真正的檔案系統)

最佳應用場景:适用于需要動态查詢支援;需要使用索引而不是map/reduce功能;需要對大資料庫有性能要求;需要使用CouchDB但因為資料改變太頻繁而占滿記憶體的應用程式。

例如:你本打算采用MySQL或PostgreSQL,但因為它們本身自帶的預定義欄讓你望而卻步。

優點:

1.更高的寫負載,MongoDB擁有更高的插入速度。

2.處理很大的規模的單表,當資料表太大的時候可以很容易的分割表。

3.高可用性,設定M-S不僅友善而且很快,MongoDB還可以快速、安全及自動化的實作節點

(資料中心)故障轉移。

4.快速的查詢,MongoDB支援二維空間索引,比如管道,是以可以快速及精确的從指定位置

擷取資料。MongoDB在啟動後會将資料庫中的資料以檔案映射的方式加載到記憶體中。如果内

存資源相當豐富的話,這将極大地提高資料庫的查詢速度。

5.非結構化資料的爆發增長,增加列在有些情況下可能鎖定整個資料庫,或者增加負載進而

導緻性能下降,由于MongoDB的弱資料結構模式,添加1個新字段不會對舊表格有任何影響,

整個過程會非常快速。

缺點:

1.不支援事務。

2.MongoDB占用空間過大。

3.MongoDB沒有成熟的維護工具。

2.3 Memcached(緩存資料庫)

Memcached是一個高性能的分布式記憶體對象緩存系統,用于動态Web應用以減輕資料庫負載。它通過在記憶體中緩存資料和對象來減少讀取資料庫的次數,進而提高動态、資料庫驅動網站的速度。Memcached基于一個存儲鍵/值對的hashmap。其守護程序(daemon)是用C寫的,但用戶端可以用任何語言來編寫,并通過memcached協定與守護程序通信。但是它并不提供備援(例如,複制其hashmap條目);當某個伺服器S停止運作或崩潰了,所有存放在S上的鍵/值對都将丢失。memcached是一套分布式的快取系統,之是以不如Redis流行,是因為memcached缺乏認證以及安全管制,應将memcached伺服器放置在防火牆後。[14]

許多Web應用都将資料儲存到RDBMS中,應用伺服器從中讀取資料并在浏覽器中顯示。但随着資料量的增大、通路的集中,就會出現RDBMS的負擔加重、資料庫響應惡化、網站顯示延遲等重大影響。這時就該memcached大顯身手了。memcached是高性能的分布式記憶體緩存伺服器。一般的使用目的是,通過緩存資料庫查詢結果,減少資料庫通路次數,以提高動态Web應用的速度、提高可擴充性。

官網:http://memcached.org/ (無法通路)

所用語言:許多語言都實作了連接配接memcached的用戶端,其中以Perl、PHP為主。僅僅memcached網站上列出的語言就有·Perl·PHP·Python·Ruby·C#·C/C++·Lua等等。

特點:協定簡單,基于libevent的事件處理,内置記憶體存儲方式,不互相通信的分布式。

使用許可:開放源代碼軟體,以BSD license授權協定釋出。

協定:伺服器用戶端通信不使用複雜XML等格式,而使用簡單的基于文本行的協定。

事件處理:libevent是個程式庫,它将Linux的epoll、BSD類作業系統的kqueue等事件處理功能封裝成統一的接口。即使對伺服器的連接配接數增加,也能發揮O(1)的性能。memcached使用這個libevent庫,是以能在Linux、BSD、Solaris等作業系統上發揮其高性能。關于事件處理這裡就不再詳細介紹,可以參考Dan Kegel的TheC10K Problem。

存儲方式:資料僅存在于記憶體中,是以重新開機memcached、重新開機作業系統會導緻全部資料消失。

通信分布式:memcached盡管是“分布式”緩存伺服器,但伺服器端并沒有分布式功能。各個memcached不會互相通信以共享資訊。進行分布式完全取決于用戶端的實作。

優點:

1.Memcached可以利用多核優勢,單執行個體吞吐量極高,可以達到幾十萬QPS(取決于key、value的位元組大小以及伺服器硬體性能,日常環境中QPS高峰大約在4-6w左右)。适用于最大程度扛量。

2.支援直接配置為sessionhandle。

缺點:

1隻支援簡單的key/value資料結構,不像Redis可以支援豐富的資料類型。

2.無法進行持久化,資料不能備份,隻能用于緩存使用,且重新開機後資料全部丢失。

3.無法進行資料同步,不能将MC中的資料遷移到其他MC執行個體中。

4.Memcached記憶體配置設定采用SlabAllocation機制管理記憶體,value大小分布差異較大時會造成記憶體使用率降低,并引發低使用率時依然出現踢出等問題。需要使用者注重value設計。

2.4 Redis、Memcached和MongoDB對比

①性能:三者性能都比較高,總的來講:Memcached和Redis差不多,要高于MongoDB。

②便利性:memcached資料結構單一。

redis豐富一些,資料操作方面,redis更好一些,較少的網絡IO次數。

mongodb支援豐富的資料表達,索引,最類似關系型資料庫,支援的查詢語言非常豐富。

③存儲空間:redis在2.0版本後增加了自己的VM特性,突破實體記憶體的限制;可以對keyvalue設定過期時間(類似memcached)。

memcached可以修改最大可用記憶體,采用LRU算法。

mongoDB适合大資料量的存儲,依賴作業系統VM做記憶體管理,吃記憶體也比較厲害,服務不要和别的服務在一起。

④可用性:redis,依賴用戶端來實作分布式讀寫;主從複制時,每次從節點重新連接配接主節點都要依賴整個快照,無增量複制,因性能和效率問題,是以單點問題比較複雜;不支援自動sharding,需要依賴程式設定一緻hash 機制。一種替代方案是,不用redis本身的複制機制,采用自己做主動複制(多份存儲),或者改成增量複制的方式(需要自己實作),一緻性問題和性能的權衡。

Memcached本身沒有資料備援機制,也沒必要;對于故障預防,采用依賴成熟的hash或者環狀的算法,解決單點故障引起的抖動問題。

mongoDB支援master-slave,replicaset(内部采用paxos選舉算法,自動故障恢複),autosharding機制,對用戶端屏蔽了故障轉移和切分機制。

⑤可靠性:redis支援(快照、AOF):依賴快照進行持久化,aof增強了可靠性同時,對性能有影響。

memcached不支援,通常用在做緩存,提升性能。

MongoDB從1.8版本開始采用binlog方式支援持久化的可靠性。

⑥一緻性:Memcached在并發場景下,用cas保證一緻性。

redis事務支援比較弱,隻能保證事務中的每個操作連續執行。

mongoDB不支援事務。

⑦資料分析:mongoDB内置了資料分析的功能(mapreduce),其他兩者不支援。

⑧應用場景:redis:資料量較小的更性能操作和運算上。

memcached:用于在動态系統中減少資料庫負載,提升性能;做緩存,提高性能(适合讀多寫少,對于資料量比較大,可以采用sharding)。

MongoDB:主要解決海量資料的通路效率問題。

是以,總結NoSQL資料庫在以下這幾種情況下比較适用:1、資料模型比較簡單;2、需要靈活性更強的IT系統;3、對資料庫性能要求較高;4、不需要高度的資料一緻性;5、對于給定key,比較容易映射複雜值的環境。

2.5 Neo4j(圖資料庫)

圖資料庫一直是NoSQL領域的重要分支,Neo4j可以說是圖資料庫的絕對上司者,雖然這個名字很像通用java元件(如log4j、dom4j)。Neo4j是一個高性能的NoSQL圖形資料庫,它将結構化資料存儲在網絡(從數學角度叫做圖)上而不是表中。它是一個嵌入式的、基于磁盤的、具備完全事務特性的Java持久化引擎,可以被看作是一個高性能的圖引擎,該引擎具有成熟資料庫的所有特性。因為Neo4j嵌入式、高性能、輕量級等優勢,越來越受到關注。程式員工作在一個面向對象的、靈活的網絡結構下而不是嚴格、靜态的表中——但是他們可以享受到具備完全的事務特性、企業級的資料庫的所有好處。[15]

資料簡化社群2018年全球資料庫總結及18種主流資料庫介紹(公号回複“資料庫2018”下載下傳典藏版PDF報告)

圖12 neo4j

Neo是一個比較新的開源項目,但它已經在具有1億多個節點、關系和屬性的産品中得到了應用,并且能滿足企業的健壯性和性能的需求:完全支援JTA和JTS、2PC分布式ACID事務、可配置的隔離級别和大規模、可測試的事務恢複。Neo4j提供了大規模可擴充性,在一台機器上可以處理數十億節點/關系/屬性的圖,可以擴充到多台機器并行運作。Neo已經應用在高請求的24/7環境下超過3年了,是成熟、健壯的,完全達到了部署的門檻。

相對于關系資料庫來說,圖資料庫善于處理大量複雜、互連接配接、低結構化的資料,這些資料變化迅速,需要頻繁的查詢——在關系資料庫中,這些查詢會導緻大量的表連接配接,是以會産生性能上的問題。Neo4j重點解決了擁有大量連接配接的傳統RDBMS在查詢時出現的性能衰退問題。通過圍繞圖進行資料模組化,Neo4j會以相同的速度周遊節點與邊,其周遊速度與構成圖的資料量沒有任何關系。此外,Neo4j還提供了非常快的圖算法、推薦系統和OLAP風格的分析,而這一切在目前的RDBMS系統中都是無法實作的。

官網:https://neo4j.com/

定義:面向網絡的資料庫

圖:是指資料原理裡的樹集合成的網絡。

類型:一種非常高效的資料存儲結構

語言:Java/C

使用許可:GPL v3 license

特點:1.對象關系的不比對使得把面向對象的“圓的對象”擠到面向關系的“方的表”中是那麼的困難和費勁,而這一切是可以避免的。

2.關系模型靜态、剛性、不靈活的本質使得改變schemas以滿足不斷變化的業務需求是非常困難的。由于同樣的原因,當開發小組想應用靈活軟體開發時,資料庫經常拖後腿。

3.關系模型很不适合表達半結構化的資料——而業界的分析家和研究者都認為半結構化資料是資訊管理中的下一個重頭戲。

4.網絡是一種非常高效的資料存儲結構。人腦是一個巨大的網絡,網際網路也同樣構造成網狀,這些都不是巧合。關系模型可以表達面向網絡的資料,但是在周遊網絡并抽取資訊的能力上關系模型是非常弱的。

Neo4j提供了類似SQL的圖查詢語言Cypher,Cypher語言的描述能力非常強大,甚至已經成為圖查詢語言的通用标準。一個簡單的圖資料庫Cypher查詢語言如下:

資料簡化社群2018年全球資料庫總結及18種主流資料庫介紹(公号回複“資料庫2018”下載下傳典藏版PDF報告)

圖13Cypher

2.6 Cassandra(列式資料庫)

資料簡化社群2018年全球資料庫總結及18種主流資料庫介紹(公号回複“資料庫2018”下載下傳典藏版PDF報告)

圖14 cassandra

Cassandra列式資料庫最初有列式概念,但現在已經看不到列式的東西,完全是一個标準分布式資料庫。Cassandra除了具備表、字段、二級索引這些概念外,還支援觸發器、物化視圖,增加支援list、set、map、tuple等進階資料類型。Cassandra的接口語言是CQL,CQL查詢資料用select,支援insert、update、delete,建立表也是用create table,建立索引也是用create index,文法與SQL基本一模一樣,更像是SQL的一種擴充;但功能方面有一些限制,比如不支援多表關聯,對where條件也有許多嚴格的限制等等。Cassandra與HBase起步與實作原理很像,但在國外非常流行,國内基本沒有使用者,而HBase國内非常流行。

3. SQL資料庫特點及主流産品

結構化查詢語言(Structured QueryLanguage)簡稱SQL(發音/ˈes kjuːˈel/"S-Q-L"),是一種用來通路和操作資料庫系統的特殊目的程式設計語言,是一種資料庫查詢和程式設計語言,用于存取資料以及查詢、更新和管理關系資料庫系統;同時也是資料庫腳本檔案的擴充名。SQL語句用于取回和更新資料庫中的資料。SQL可與資料庫程式協同工作,比如MS Access、DB2、Informix、MS SQL Server、Oracle、Sybase以及其他資料庫系統。

結構化查詢語言是進階的非過程化程式設計語言,允許使用者在高層資料結構上工作。它不要求使用者指定對資料的存放方法,也不需要使用者了解具體的資料存放方式,是以具有完全不同底層結構的不同資料庫系統,可以使用相同的結構化查詢語言作為資料輸入與管理的接口。結構化查詢語言語句可以嵌套,這使它具有極大的靈活性和強大的功能。

1986年10月,美國國家标準協會ANSI對SQL進行規範後,以此作為關系式資料庫管理系統的标準計算機語言(ANSI X3. 135-1986),1987年國際标準組織ISO支援下成為國際标準。除了SQL标準之外,各種通行資料庫系統在實踐過程中都對SQL規範作了某些編改和擴充,大部分SQL資料庫程式都擁有其私有擴充!存在着很多不同版本的SQL語言,實際上不同資料庫系統間SQL不能完全通用。但為了與ANSI标準相相容,它們必須以相似方式共同地支援一些主要的關鍵詞(如SELECT、UPDATE、DELETE、INSERT、WHERE等)。

3.1 Oracle(最掙錢的資料庫老大)

Oracle一直是資料庫市場占有率最高的産品,長期被MySQL追趕(現在Oracle與MySQL都是Oracle公司的産品,但MySQL營收可忽略不計)。考慮到MariaDB分支也在持續快速發展,如果官方MySQL更新緩慢,估計很多公司就選擇MariaDB了,是以甲骨文公司還得争取把使用者守住。

資料簡化社群2018年全球資料庫總結及18種主流資料庫介紹(公号回複“資料庫2018”下載下傳典藏版PDF報告)

圖15 最新Oracle12c第二版

目前最新版本是Oracle12c第二版,相比11g設計理念上有全新變化:全面擁抱雲計算,多租戶是12c的最大特性。按Oracle以前産品釋出來看,大版本的第一個版本更多是布道,第二個版本更具有大規模生産使用價值。雲計算多租戶重要特性:

I/ORate Limits for PDBs(PDB可以按IOPS或Mbps隔離)

Supportfor PDBs with Different Character Sets, Time Zone File Versions, and DatabaseTime Zones in a CDB

ProxyPDB(PDB代理服務,可以用一個連結指向遠端的一個PDB)

Service-LevelACLs for TCP Protocol(每個PDB可以指定ACL安全政策)

FlashbackPluggable Database

PDBArchive Files(.pdb Files可導出PDB為離線檔案,然後遷移到其它CDB上,用于容器遷移)

PDBRefresh,clone PDB and autorefresh(可用于單PDB的鏡像執行個體災備、同步、分析)

Oracle12.2增加原生Sharding支援,這與以前的partition及rac不同,sharding可以将資料放在完全不同的主機,屬于sharenothing的架構。這個特性是專門為業務非常大的OLTP系統準備的,相當于内置實作了自動分庫分表管理功能。另外新增資料生命周期管理功能。資料庫有冷熱之分,往往近期資料經常使用,早年前資料偶爾使用,好做法是對經常使用的資料采用行式存儲、對不經常使用的資料采用壓縮存儲或列式存儲,這樣總體成本更優。這樣做要付出一定設計與運維成本,可能影響業務體驗,是以能做好的人不多。Oracle12.2可以指定資料的生命周期,讓資料庫自動幫你管理,提高了管理資料自動化能力,就像下面這兩條指令:

資料簡化社群2018年全球資料庫總結及18種主流資料庫介紹(公号回複“資料庫2018”下載下傳典藏版PDF報告)

3.2 MySQL(最流行的開源資料庫)

受益于網際網路行業快速發展,MySQL市場占有率持續攀升,原因是它開源免費易用,成為網際網路公司最受歡迎的資料庫。MySQL社群版、企業版最新版本是MySQL 8.0.12和8.0.2x。

資料簡化社群2018年全球資料庫總結及18種主流資料庫介紹(公号回複“資料庫2018”下載下傳典藏版PDF報告)

圖17 MySQL8.0 DMR

MySQL8.0原生支援JSON、fulltext search等,新版全面支援開發者版MySQL8.0 DMR提供的role角色權限。Role權限集合有統一名字的role名,可以給多個賬戶統一的某個role的權限。權限的修改直接通過修改role來實作,不需要以前那樣每個賬戶逐一grant權限,友善運維和管理。role可以建立、删除、修改并作用到他管理的賬戶上。MySQL8.0幾大特性:支援role,資料字典存儲由myisam引擎變為innodb,支援invisible indexes,這對DBA索引調優很有幫助,增加column_stats,相當于Oracle的直方圖,Performance schema持續加強,增加了很多error資訊采集與展示,支援SET參數持久化儲存。

3.3 SQL Server(Windows資料庫)

微軟有大量資料庫頂級人才,SQL Server使用者非常多、發展非常迅猛。最新版是SQL Server 2017版,2018年8月微軟還沒推出SQL Server 2018。

資料簡化社群2018年全球資料庫總結及18種主流資料庫介紹(公号回複“資料庫2018”下載下傳典藏版PDF報告)

圖18 SQLServer2017 180天試用版

SQLServer2016-2017特性:支援JSON、支援R語言做資料分析;

PolyBase——PolyBase支援查詢分布式資料集,可以使用Transact SQL語句查詢Hadoop或者SQLAzure blob存儲。組織跨多個分布式位置傳遞資料,PolyBase就成了利用SQL Server技術通路這些位置的半結構化資料的便捷解決方案了。

全程加密——支援SQL Server資料加密,隻有調用SQL Server應用才能通路加密資料(包括靜态資料和動态資料)。該功能支援敏感資料存儲在雲端管理資料庫中,并且永遠保持加密。即便是雲供應商也看不到資料。

動态資料屏蔽——保護一個表中的敏感資訊,如:會員表的注冊時間不太機密,但像手機号碼這種資訊并不希望普通賬号可以檢視,動态資料屏蔽可以有效的解決這個問題,普通賬号看不到完整手機号資訊,比如138-1234-5678手機号可能會顯示為138-****-****。

Stretch Database——Stretch Database功能提供了把内部部署資料庫擴充到Azure SQL資料庫的途徑,通路頻率最高的資料會存儲在内部資料庫,通路較少的資料離線存儲在Azure SQL資料庫。

3.4 PostgreSQL(功能最強開源資料庫)

PostgreSQL是曆史非常悠久的開源資料庫,關系型資料庫理論提出以來一直非常活躍,功能非常強大與Oracle相當。PostgreSQL是一個功能強大的開源對象關系資料庫系統,經過30多年積極開發,在可靠性、功能強大性和性能方面赢得了良好的聲譽。PostgreSQL社群提供大量資訊可供參考,通過官方文檔介紹如何安裝和使用PostgreSQL,以熟悉技術發現其工作原理,并找到職業機會。[17]PostgreSQL代碼可讀性非常好還開源,學術界非常喜歡研究。工業界應用不多,pg國外活躍度比中國高很多,有許多成功的工業界案例。

資料簡化社群2018年全球資料庫總結及18種主流資料庫介紹(公号回複“資料庫2018”下載下傳典藏版PDF報告)

圖19 PostgreSQL

PostgreSQL最新版是2018年8月9日釋出的PostgreSQL 10.5 and 11Beta 3版本,支援單條SQL并行通路。該功能曾是商業資料庫與開源資料庫的重大差別,因為Oracle、SQLServer、DB2都支援單SQL并行計算,但是開源資料庫基本不支援。開源資料庫PostgreSQL9.6版是第一個支援。另外postgres_fdw在PostgeSQL功能類似Oracle的DBLink,或SQL Server連結伺服器概念,是一個非常實用的元件,可以非常友善的通路遠端資料庫,還可以通路遠端非PostgreSQL資料庫,這對于一些資料遷移與異構關聯計算非常有價值。

3.5 SQLite(最流行的嵌入式資料庫)

SQLite嵌入式資料庫随着手機、物聯網等移動開發的流行而崛起,成為手機嵌入式資料庫老大。google搜尋iOS資料庫或Android資料庫開發,全屏都是SQLite介紹。SQLite是完整的關系型資料庫,支援标準SQL、函數索引、外鍵、視圖、觸發器、ACID,擴充支援自定義函數、JSON、全文索引、GIS等進階特性;功能非常全,但程式包不到500KB能在幾百KB記憶體運作,是目前手機或掌上嵌入式裝置存儲結構化資料的最好選擇。SQLite是開源免費軟體,但有支援加密、壓縮等進階特性的收費功能,對資料安全要求較高的業務很有用。

資料簡化社群2018年全球資料庫總結及18種主流資料庫介紹(公号回複“資料庫2018”下載下傳典藏版PDF報告)

圖20 SQLite Version 3.24.0

SQLite最新版本是2018年6月4日釋出的SQLite Version 3.24.0,開源協定Public Domain(基本是沒有任何限制的開源協定)。相比MySQL、MongoDB等開源資料庫來說,沒有任何使用風險。

3.6OceanBase(國産分布式關系型資料庫)

OceanBase是阿裡巴巴/螞蟻金服研發的高性能、分布式關系型資料庫,支援完整ACID特性。它最大特點是高度相容MySQL協定與文法,性能卻是原生MySQL版本(半同步)的兩倍以上。[18]

資料簡化社群2018年全球資料庫總結及18種主流資料庫介紹(公号回複“資料庫2018”下載下傳典藏版PDF報告)

圖21 雲資料庫OceanBase

OceanBase主打分布式與高可用特性,所有資料變更都在記憶體完成,基線資料全部使用SSD存儲,擁有更好性能和更低響應時間;并可使用MySQL指令用戶端或MySQL JDBC Driver直接通路OceanBase,對應用改造成本非常低。2015年底正式釋出OceanBase 1.0,2018年最新版不詳(他們org.cn官網、阿裡雲網頁、百度百科、新聞均不提供版本号、LOGO這樣的正常資訊,隻能看到媒體文章)。OceanBase已經是支付寶、網商銀行最核心的資料庫,承載了支付寶雙十一所有交易服務。

4. 其他模式資料庫産品及其特點

除了介紹上述12種主流資料庫外,繼續了解一下近年來雲計算、搜尋、大資料、AI、區塊鍊等領域模式延展過來的類資料庫服務,并入其他模式資料庫服務和産品,陸續介紹代表性的6種。

4.1 ElasticSearch(網絡搜尋服務)

ElasticSearch是一個基于Lucene開發的分布式搜尋服務,并不隻是一個架構(Lucence需要二次開發),而是可以直接使用的伺服器。它提供分布式多使用者能力的全文搜尋引擎,基于RESTful web接口。Elasticsearch是Java開發,按Apache許可條款開放源碼釋出,是目前流行的企業級搜尋引擎。設計用于雲計算中,能夠達到實時搜尋,穩定,可靠,快速,安裝使用友善。

建網站或應用程式并添加搜尋功能,完成搜尋工作的建立非常困難。程式開發人員希望搜尋解決方案要運作速度快、有一個零配置和完全免費的搜尋模式,能夠簡單地使用JSON通過HTTP來索引資料;并希望搜尋伺服器始終可用,能夠從一台開始并擴充到數百台,要實時搜尋、要簡單的多租戶,希望建立一個雲解決方案。Elasticsearch就是解決這些問題及可能出現的更多其它問題的。

Elasticsearch本是一項搜尋服務,但因其實在太強大太好用,以至于有一些業務把它作為資料存儲與搜尋服務。搜尋與資料庫本來就非常密切,很早以前的資料搜尋都采用資料庫内置的like模糊查詢或全文檢索實作,但随着網際網路搜尋業務的快速發展,對搜尋選項也要求更豐富;另外,早期的搜尋并不一定需要資料庫完全實時的需求,是以資料庫對全文搜尋的支援一直不理想,就産生了很多專業搜尋引擎産品,Lucence就是最流行的開源搜尋引擎架構。近幾年随着大資料快速發展,搜尋引擎需要有更強的分布式支撐,另外業務競争需要大量的日志資料采集與分析,實時性要求更高,Elasticsearch在這方面脫穎而出。Elasticsearch對增強了文檔模型,有文檔型資料庫的感覺,甚至有人把它完全當分布式資料存儲服務(主流大資料存儲真的沒有太好的準實時查詢功能)。

資料簡化社群2018年全球資料庫總結及18種主流資料庫介紹(公号回複“資料庫2018”下載下傳典藏版PDF報告)

圖22 Elasticsearch 6.3

最新版ElasticSearch是2018年6月13日釋出Elasticsearch 6.3,首次展示了用于節省空間的彙總,用于搜尋的SQL等等。去年的版本跳躍就是為了與2018年7月24釋出的Elastic公司旗下另一産品最新版KibanaVersion 6.3.2等産品版本号統一,解決使用者搭建ELK或ElasticStack日志分析架構選擇元件版本的困擾。

B2018年雲AI區塊鍊等領域資料庫發展趨勢(13637字)

資料庫服務在搜尋、雲計算、大資料、AI、區塊鍊等領域都是核心技術之一,資訊社會IT時代邁向DT潮流,移動網際網路、物聯網、雲計算、人工智能、區塊鍊的發展産生大量資料,資料存儲群組織、資料挖掘和分析、資料管理和決策等等,都離不開基礎的資料庫技術。本部分共4章22節,秦隴紀帶大家繼續了解相關領域DB的服務特點、産品對比、發展趨勢。

5. 全球雲資料庫服務及常見産品

雲計算融合了多項ICT技術,是傳統資訊技術演進的産物。其核心技術有大規模分布式計算、虛拟化、分布式資料存儲、大規模資料管理、分布式資源管理、并行程式設計模式、資訊安全、雲計算平台管理、綠色節能等各項技術。雲計算是一種以資料和處理能力為中心的密集型計算模式,其商業模式有托管、後向收費、按需傳遞等雲計算市場。雲計算不僅改變了資訊提供的方式,也颠覆了傳統ICT系統的傳遞模式。與其說雲計算是技術的創新,不如說雲計算是思維和商業模式的轉變。

雲計算領域,兩種雲計算分布式存儲系統Google的GFS和Hadoop開源系統HDFS比較流行。谷歌的非開源GFS(Google File System)技術是雲計算平台滿足大量使用者需求,并行地為大量使用者提供服務,使得雲計算的資料存儲技術具有了高吞吐率和高傳輸率的特點。Hadoop開源的HDFS(Hadoop Distributed File System)資料存儲技術被大部分ICT廠商,包括Yahoo、Intel的“雲”計劃采用,未來的發展将集中在超大規模的資料存儲、資料加密和安全性保證、及繼續提高I/O速率等方面。

分布式并行程式設計模式MapReduce是目前雲計算主流并行程式設計模式之一。MapReduce是Google開發的Java、Python、C++程式設計模型,主要用于大規模資料集(大于1TB)的并行運算。MapReduce模式将任務自動分成多個子任務,通過Map和Reduce兩步實作任務在大規模計算節點中的高度與配置設定。MapReduce模式的思想是将要執行的問題分解成Map(映射)和Reduce(化簡)的方式,先通過Map程式将資料切割成不相關的區塊,配置設定(排程)給大量計算機處理,達到分布式運算的效果,再通過Reduce程式将結果彙整輸出。

Google的BT(BigTable)資料管理技術和Hadoop團隊開發的開源資料管理子產品HBase是業界比較典型的大規模資料管理技術。BT(BigTable)資料管理技術中,BigTable是非關系的資料庫,是一個分布式的、持久化存儲的多元度排序Map。BigTable建立在GFS, Scheduler, LockService和MapReduce之上,與傳統的關系資料庫不同,它把所有資料都作為對象來處理,形成一個巨大的表格,用來分布存儲大規模結構化資料。BigTable的設計目的是可靠的處理PB級别的資料,并且能夠部署到上千台機器上。開源資料管理子產品HBase是Apache的Hadoop項目的子項目,定位于分布式、面向列的開源資料庫。HBase不同于一般的關系資料庫,它是一個适合于非結構化資料存儲的資料庫。另一個不同的是HBase基于列的而不是基于行的模式。作為高可靠性分布式存儲系統,HBase在性能和可伸縮方面都有比較好的表現。利用HBase技術可在廉價PC Server上搭建起大規模結構化存儲叢集。

目前公有雲市場AWS、Azure、阿裡雲三家廠商排在前面,簡稱3A,各有特色。資料庫服務一直是雲計算廠商非常核心的競争力,下表是幾大廠商提供的資料庫服務産品對比。

資料簡化社群2018年全球資料庫總結及18種主流資料庫介紹(公号回複“資料庫2018”下載下傳典藏版PDF報告)

圖23 3A(AWS、Azure、阿裡雲)資料庫服務

5.1 AWS

亞馬遜的AWS産品非常全,且客戶體量非常大,産品成熟度非常高。AWS Database Service有AWS SnowBall資料遷移系列産品,幫助使用者快速遷移PB級資料量到雲上;還有AWS SnowMobile用卡車來完成上百PB的資料遷移,比傳輸網絡傳輸快50倍。

以AWS的親身經曆為例,截至2018年6月29日,AWS在全球幫助超過78000套不同類型的資料庫通過AWS DMS資料庫遷移工具遷移至雲上。8月9日,在不到兩個月的時間裡,這一數字變成了83000套。(沃納·威格爾,2018)。由西雲資料營運的AWS中國(甯夏)區域成為中國的第二個AWS區域,也是繼北京、孟買、首爾、新加坡、悉尼和東京的AWS區域之後AWS在亞太地區的第七個AWS區域。當時,亞馬遜在全球完成了17個區域、46個可用區的基礎設施布局。現在AWS在全球已經有55個可用區,分布在18個區域和一個本地區域。AWS全球副總裁、大中華區執行董事容永康透露說,今年年底之前,AWS還将啟用包括中國香港特别行政區在内的4個服務區域。

AWS目前服務着全球數百萬客戶,包括發展迅速的初創公司、大型企業和政府機構,提供120多項功能全面的服務,涵蓋計算、存儲、聯網、資料庫、分析、應用服務、部署、管理、開發、移動、物聯網、人工智能、安全、混合雲、虛拟和增強現實、媒體和企業級應用等。

5.2 Azure

微軟出品Azure Database Service包括SQLServer之外,同時提供表存儲、Redis緩存、資料倉庫,并通過第三方支援MySQL服務,給使用者提供了豐富的選擇。微軟自家核心資料庫引擎SQL Server在資料管理與遷移工具方面非常強大。SQL Server Stretch Server混合雲解決方案,在SQL Server方面支援力度最強。

5.3 阿裡雲

阿裡雲發展很快,2015年隻有MySQL與SQL Server兩個引擎,現在有十幾種,如PostgreSQL、SQL Server、MongoDB、Redis、DRDS、ADS(分析型資料庫服務)、Greenplum等,豐富的資料庫引擎是阿裡雲的核心競争力之一。除了支援豐富的資料庫引擎外,還有資料傳輸與資料管理兩個資料庫服務類的産品,用來管理各種資料源中的資料,替代Navicat、phpMyAdmin等用戶端資料庫工具。資料在内網傳輸,更安全高效。資料管理服務還提供了各種資料圖表分析、資料變更統計、性能診斷等十幾項特色功能。連接配接上資料庫,就算資料庫在本地,非阿裡雲使用者也可免費使用資料管理服務。阿裡雲在國内的成本效益最有優勢。

5.4 Oracle雲服務

Oracle剛開始反對向雲計算轉型,是以雲市場方面起步較晚,市場佔有率較低。但是Oracle産品線是全宇宙最全的,從IaaS、PaaS、DaaS、SaaS全都覆寫,自家做資料庫、OS、CPU、伺服器,還有最全的SaaS類軟體。Oracle在資料庫雲服務主要銷售Oracle、MySQL資料庫及Hadoop大資料服務。AWS這種雲計算服務對于傳統基礎IT公司沖擊特别大,特别是IaaS及DaaS方面,現在Microsoft、Oracle、IBM都在痛苦的轉型,各自都在結合自己的優勢突圍。雲計算給惠普、DELL、EMC這種偏硬體的企業壓力更大。

5.5 Google雲服務

Google是最先提出雲計算的概念,但是發展得非常不順利,因為Google提的雲計算與目前的流行的概念已經完全不一樣了。Google最早主要是提供GAE這個PaaS服務,沒有搞起來。最近兩年完全轉型為IaaS+PaaS,和AWS非常像,新的平台叫GCP(Google CloudPlatform),但是公有雲市場已經被AWS領先很多。Google在資料庫方面帶來了分布式技術的突破,研發了BigTable、Spanner這樣領先的分布式資料庫技術,但是BigTable與Spanner隻是一項内部應用的技術,離市場需要的産品不一樣,業界大部份公司還不需要這樣複雜的技術。雲計算服務不僅要有技術基礎,更需要有很強的産品設計能力。另外雲計算和網際網路一樣,是一個基礎設施,不能因為使用者上了雲計算就必須要全部改變他原有的軟體架構,就像不能因為使用者要上網就必須把電腦全換了一樣的道理。Google公有雲服務位址:https://cloud.google.com/products/

國内其他雲廠商也提供了資料庫服務,包括騰訊雲、百度雲、華為雲,但是産品線及成熟度還有待提升,有機會再整理。以上就是本報告涉及到的18種主流資料庫引擎的總結。

6. AI/NewSQL/時序/區塊鍊/IOT等DB發展

資料庫作為IT技術架構的核心,新技術層出不窮。随着大資料、物聯網及人工智能時代的到來,資料庫技術DBMS與AI、HTAP、時序、區塊鍊結合,解決海量資料增長帶來的各種需求及問題。技術始終是不斷發展着的。OpenStack,Progressive Web Apps,Rust,R,認知雲,人工智能(AI),物聯網等新發展正在把我們傳統的認知模式抛棄。

6.1 資料庫管理AI輔助技術趨勢

AI (人工智能ArtificialIntelligence)是研究、開發用于模拟、延伸和擴充人的智能的理論、方法、技術及應用系統的一門新的技術科學。人工智能需要被教育,彙入很多資訊才能進化,進而産生一些意想不到的結果。AI影響幅度很大,例如媒體業,現在計算機跟機器人可以寫出很好的文章,而且1小時産出好幾百篇,成本也低。AI對經濟發展會産生劇烈影響,很多知識産業跟白領工作也可能被機器人取代。資料庫管理技術向AI方向發展,已有研究項目在做AI與DBMS的結合。

DBMS發展越快功能越多,需要處理多達數百個平台容器環境變量、資料讀寫存儲器、複雜負載控制、緩存量調整等資料庫系統配置選項和參數,還無法實作配置資源最優化,對傳統DBA的專業性和管理成本要求也很高。基于這些原因,一些DBMS在近年逐漸加強自動化管理和AI輔助技術。與AI的結合相繼出現,例如Oracle自治資料庫的概念,亞馬遜和卡内基梅隆大學一起開發的機器學習自動化調整DBMS的OtterTune系統,并公布起設計論文和開源項目,重點解決DBMS長期存在的類似一些問題。據了解,OtterTune可以自動為DBMS的配置選項找到最好的設定方法。

資料簡化社群2018年全球資料庫總結及18種主流資料庫介紹(公号回複“資料庫2018”下載下傳典藏版PDF報告)

OtterTune通過機器學習算法,利用從先前的DBMS部署調整中學到知識,目标是任何人都容易部署資料庫管理系統,減少調整新的DBMS部署所需的時間和資源。為此,OtterTune維護了從以前的調優會話收集的調優資料庫,使用此資料建構機器學習(ML)模型,捕獲DBMS如何響應不同的配置,使用這些模型來指導新應用程式的實驗,推薦改進目标參數的設定(例如,減少延遲或提高吞吐量)。

資料簡化社群2018年全球資料庫總結及18種主流資料庫介紹(公号回複“資料庫2018”下載下傳典藏版PDF報告)

通過客戶伺服器的硬體配置及業務場景來自動生成大資料系統的配置檔案,類似OtterTune維護DBMS,AI在DBMS的出現會為DBA解放那類重複性、規律性的工作,未來的DBA工作,更加需要真正的創新,而不是調參了。這對推動技術、科學的發展非常有益。

6.2 NoSQL後NewSQL融合OLTP和OLAP的HTAP發展迅速

起源于Google三大基礎設施論文(GFS,MapReduce和BigTable)誕生了開源Hadoop系統,網際網路公司通常用于對海量非結構化資料和結構化資料的存儲及分析,開源社群有持續的貢獻,Hadoop生态系統迅速發展,已經成為了OLAP(聯機分析處理Online AnalyticalProcessing)方面對海量資料處理的事實标準。但Hadoop生态系統作為離線資料分析系統,無法實時資料分析。在業務資料庫之外建構一個新的資料倉庫提供OLAP也就是資料分析方面的支撐,需要在傳統資料庫和Hadoop之間建構一套ETL(抽取轉換加載Extract-Transform-Load,也稱為資料倉庫技術)系統,使得兩者之間資料導入導出。如此則資料庫和資料倉庫的管理更加複雜。

Hadoop作為一個龐大的開源系統,需要很多元件才能滿足業務的需求。基于Hadoop建構資料倉庫滿足OLAP需求有很多不足,用NoSQL資料庫可以為很多大資料量業務擴容。例如通過HBase管理近千億url資料,并且NoSQL資料庫通常可以動态擴容并且支援容錯,但是NoSQL系統的缺點也非常的明顯,例如應用場景相對簡單,通常無法相容傳統的sql語句,多表關聯以及事物等需求也通常無法滿足。對于開發人員還需要重新學習NoSQL的API和使用方式,帶來了額外的代價。

基于上述原因,出現了融合OLTP(On-LineTransaction Processing聯機事務處理過程,也稱為面向交易的處理過程)和OLAP的一種Gartner提出了HTAP資料庫概念提法HTAP(Hybrid Transactional Analytical Processing),意味着可以通過一個資料庫系統同時滿足事務性需求和分析型需求,而最具代表性的就是Google的Spanner+F1論文,産生了一批NewSQL系統。

例如CockroachDB和國内PingCAP團隊開發的TiDB,以TiDB為例,TiDB采用Raft實作分布式協定,完全相容MySQL用戶端,可以用熟悉的MySQL接口,不需要對資料庫進行分庫分表,既實作了分布式,又減輕了使用者學習成本,對于企業來講,可以通過建構一套分布式資料庫系統,同時滿足事務性和分析型需求,減輕系統複雜性的同時也提高了效率。TiDB團隊在資料庫領域作出了世界級的開源項目,可以說是具備裡程碑的意義。HTAP将成為未來的資料庫的主流發展趨勢。[19]

6.3 時序資料庫在物聯網、金融交易等領域崛起

物聯網傳感器,DevOps的監控資料,金融領域的股票交易、匯率等等嚴格按時間順序産生了大量的資料,都屬于時序資料。基于這些場景産生了時序資料庫的概念。時序資料庫對時間屬性進行特殊索引,實作資料的快速查詢以及更高壓縮,例如InfluxDB項目。InfluxDB是一個使用Go語言開發的分布式時序、時間和名額資料庫,無需外部依賴。特别适合處理和分析資源監控資料。

資料簡化社群2018年全球資料庫總結及18種主流資料庫介紹(公号回複“資料庫2018”下載下傳典藏版PDF報告)

物聯網項目使用InfluxDB用于存儲大型中央空調裝置産生的資料,與傳統DBMS相比,InflluxDB存儲空間減少了近70%,存儲和查詢效率也有大幅度提升,并且通過InfluxDB內建的聚合函數和連續查詢功能,可以自動生成資料的日報表、月報表、年報表,極大減輕了開發成本和系統複雜度。

6.4 區塊鍊賬本類似某種強分布式資料庫

區塊鍊是分布式資料存儲、點對點傳輸、共識機制、加密算法等計算機技術的新型應用模式。其中共識機制是區塊鍊系統中實作不同節點之間建立信任、擷取權益的數學算法。區塊鍊(Blockchain)技術的DLT(分布式賬本DistributedLedger Technology)起源于比特币的一個重要概念,指一種全民參與記賬的方式,本質上是一個去中心化的資料庫。所有區塊鍊系統背後都有一個本地用來記賬的資料庫,這些本地賬本,合起來就是一個大賬本,和常見資料庫架構和安全原理對立,但僅存儲角度來說,類似某種強分布式資料庫。區塊鍊系統能夠大幅度降低成本,減少風險和管理成本,提升流動性,增加創新産品和服務的機會。像大資料、雲計算、人工智能一樣,區塊鍊是這十年中舉足輕重的技術。

6.5 生活資料、智慧城市彙集的大資料資料庫

生活資料、物聯網、智慧城市彙集了大資料,無處不在的連接配接産生了大量的資料處理和存儲需求,各地紛紛建設本地化資料中心,以支撐服務于人與社會的發展。以資料庫為基礎的多種技術為依托且互相結合,釋放大資料的“洪荒之力”,推進社會往公開、公平、高效、充分發展!智慧城市是運用資訊和通信技術手段感測、分析、整合城市運作核心系統的各項關鍵資訊,進而對包括民生、環保、公共安全、城市服務、工商業活動在内的各種需求做出智能響應。

資料簡化社群2018年全球資料庫總結及18種主流資料庫介紹(公号回複“資料庫2018”下載下傳典藏版PDF報告)

有人在1995年讨論所謂“數位彙流”,說有一天電話、電視、音響、電腦與遊戲機,将會整合成一個裝置。事實上智能手機就是這樣的裝置,數位載具會彙流,每個裝置都可以兼當另一個裝置使用。他們産生的生活資料、智慧城市彙集的大資料,就需要存儲在各式各樣的資料庫裡面。數位彙流比較像“iCloud”,也就是說所有的裝置會存取同一個遠端資料庫,讓你的數位生活可以完全同步,随時、無縫的切換使用情境。

7 資料庫技術已明确的發展趨勢

資料庫技術解決存儲、使用和管理資料。最早1961年美國通用電氣公司Bachman等人開發IDS(IntegratedData Store)網狀DBMS,資料庫高速發展57年以來,現有公開發行343種(DB-Engines,2018)資料庫系統。DBMS是計算機系統的核心構成,是IT界一直活躍的技術。面對新資料形式,專家們提出了豐富多樣的資料模型(層次模型、網狀模型、關系模型、面向對象模型、半結構化模型等),衆多新的資料庫技術(XML資料管理、資料流管理、Web資料內建、資料挖掘等)。從網絡/層次資料庫到關系型資料庫,到面向對像資料庫、分布式資料庫、時序資料庫,再到NoSQL(KV型、文檔型、列式資料庫、圖資料庫)、大資料(HBase)、NewSQL,微軟(SQLServer)、Oracle(Oracle+MySQL)、IBM(DB2)、SAP(Sybase+HANA)、Google(Spanner)、Facebook(RocksDB)、阿裡巴巴(OceanBase)、Amazon(Aurora)等資料庫界全球頂級軟體廠商都非常重視資料庫領域傳統和新一代發展趨勢并投入巨大研發資源。本章簡單總結近十年以來資料庫的技術趨勢,介紹目前已經明确了的資料庫研究領域和廠商推出的資料庫技術發展特征、面臨的問題和最熱門的研究發展現狀、未來趨勢,大體上有如下十大主要特征。

7.1 資料庫性能與易用性仍是主流趨勢

IDC報告顯示,關系資料庫管理系統(RDBMS)軟體市場上,Oracle繼續領先對手IBM和微軟。RDBMS沒有關鍵的技術革新,關系型資料庫更新緩慢,各大廠商所都在對産品進行錦上添花式的不斷完善。資料庫以更少的相對資源消耗、更高的性能運作,變得更加自動化和智能、維護和使用更加簡單,始終是資料庫技術發展的必經之路。

在性能與易用性方面,Oracle資料庫一直走在前列,其霸主地位和高昂價格的背後,是其海量産品研發投入。從Oracle 9i開始,Oracle一直緻力于資料庫軟體自動化,實作了自動PGA管理、自動SGA管理、自動段空間管理(ASSM)、自動存儲管理(ASM)等新特性,切實降低了DBA工作量,使資料庫管理更加簡單。而IBM DB2也加強這方面功能,如IBM的SMART技術(Self-Managing And Resource Tuning自我管理和資源調優)。在DB2 v9中IBM同樣推出了一系列自動化特性,包括自動資料庫管理功能、自動統計資料收集等功能。詳情參看Oracle公司舉行的OpenWorld大會。

7.2 搜尋是資料庫的未來之路

資料庫容納存儲幾乎所有資料後,面臨着如何快速擷取資料的問題。使用者通路資料庫時,怎樣減少使用者等待,快速傳回使用者需要的資料是所有資料庫都需要解決的問題。資料庫到資料倉庫、商業智能(BI)、SOA等,必然向進階增強--面向搜尋的增強、面向需求的增強-資料分析和挖掘、快速搜尋和查詢方面進行增強。

7.3 開源資料庫已占半壁江山

和Linux作業系統漸入佳境一樣,開放源代碼的資料庫系統也走向了應用主流。根據本報告A部分第1章第2節DB-Engines排名資料,其統計的343種資料庫中,有173種商業資料庫和170種開源資料庫,分别占比52.5%和47.5%,開源資料庫已占半壁江山。2018年主要開源資料庫産品依然是MySQL、PostgreSQL、Redis和MaxDB。Apache Hadoop、Spark等開源系統在雲計算大資料領域占據主導地位。MySQL資料庫5.0-8.0版本越來越象SQL Server等大型資料庫,逐漸從開源圈子向企業級市場拓展。憑借廉價優勢,MySQL市場正在擴大。除了開源資料庫廠商成為市場焦點外,甲骨文、Sun 和微軟老牌廠商也紛紛擁抱開源。中小企業使用者市場拉動下,開源資料庫走向應用主流。開源資料庫軟體以其低成本獲得越來越多使用者認可,迫使主流廠商推出免費版應對。佛瑞斯特研究顯示60%企業的Hadoop叢集投入生産,Hadoop使用率正以每年32.9%的速度增長。[22]許多企業将繼續擴大他們的Hadoop和NoSQL技術應用,并尋找方法來提高處理大資料的速度。

7.4 層次型XML/關系型RDBMS混合資料格式

IBM公司DB2 9版本中,直接對XML支援,是業内第一個同時支援關系型資料和層次性XML資料的混合資料庫。無需重新定義XML資料格式,将其置于資料庫大型對象下,IBM DB2 9允許使用者無縫管理普通關系資料和純XML資料。傳統關系型資料與層次型資料的混合應用成為新一代資料庫産品的一個特點。Oracle和微軟也同時宣傳其産品可實作高性能XML存儲與查詢,使現有應用更好的與XML共存。

7.5 SOA架構支援

最初IBM和BEA推動的SOA(面向服務的體系結構Service-Oriented Architecture)理念,已成為IT業内一大發展趨勢。随着市場發展,越來越多的公司開始支援SOA,包括Oracle、微軟、國内主流資料庫廠商。

7.6 商業智能支援

企業内部IT及資訊系統的商業資料幾何數量級遞增,從這些海量資料中挖掘資訊、分析決策、轉化為商業價值,就是BI的關注點。資料庫廠商推新産品,也将BI商業智能作為其資料庫産品的亮點。微軟SQL Server從2005就內建了完整的商業智能套件,包括資料倉庫、資料分析、ETL工具、報表及資料挖掘等,并有針對性的做了一些優化。商業智能也是未來資料庫産品發展趨勢。

7.7 資料內建和資料倉庫邁向内容管理

主資料管理、資料內建、資料倉庫在内容展現和戰術性分析方面成為一個新的熱點。資料庫管理除了更加自動化之外,将會提供更多基于Internet環境的管理工具,完成資料Internet化之後的資料庫管理Internet化,資料庫将與業務語義的資料内容融合。未來随着使用者對以上特性認知程度的提高,資料庫産品自帶的資訊呈現特性,将會成為衆多中小型項目的不二選擇。

7.8 網絡資料源的資訊內建支援

網絡資料源的資訊內建系統方法分為:資料倉庫方法和Wrapper/Mediator方法。資料倉庫方法中,各資料源的資料按照需要的全局模式從各資料源抽取并轉換,存儲在資料倉庫中,使用者對資料倉庫中的資料進行查詢,适用于資料源數目少的單個企業。Wrapper/Mediator方法不将各資料源的資料集中存放,而是通過Wrapper/Mediator結構滿足上層內建應用的需求。這種方法的核心是中介模式(MediatedSchema)。資訊內建系統通過中介模式将各資料源的資料內建起來,而資料仍存儲在局部資料源中,通過各資料源的包裝器(wrapper)對資料進行轉換使之符合中介模式。使用者的查詢基于中介模式,不必知道每個資料源的特點,中介器(mediator)将基于中介模式的查詢轉換為基于各局部資料源的模式查詢,它的查詢執行引擎再通過各資料源的包裝器将結果抽取出來,最後由中介器将結果內建并傳回給使用者。Wrapper/Mediator 方法解決了資料的更新問題,進而彌補了資料倉庫方法的不足。但這種架構結構有3個挑戰:如何支援異構資料源之間的互操作性(interoperability);如何模型化源資料内容和使用者查詢;當資料源的查詢能力受限時,如何處理查詢和進行優化。

7.9 網格資料管理支援

網格是把整個網絡整合成一個虛拟的巨大的超級計算環境,實作計算資源、存儲資源、資料資源、資訊資源、知識資源和專家資源的全面共享。目的是解決多機構虛拟組織中的資源共享和協同工作問題。按照應用層次不同可分為3種:計算網格(提供高性能計算機系統的共享存取);資料網格(提供資料庫和檔案系統的共享存取);資訊服務網格(支援應用軟體和資訊資源的共享存取)。

高性能計算的應用需求使計算能力不可能在單一計算機上獲得,是以,必須通過建構“網絡虛拟超級計算機”或“元計算機”獲得超強的計算能力,這種計算方式稱為網格計算。它通過網絡連接配接地理上分布的各類計算機(包括機群)、資料庫、各類裝置和儲存設備等,形成對使用者相對透明的虛拟的高性能計算環境,應用包括了分布式計算、高吞吐量計算、協同工程和資料查詢等諸多功能資料網格保證使用者在存取資料時無須知道資料的存儲類型(資料庫,文檔,XML)和位置。涉及的問題包括:如何聯合不同的實體資料源,抽取源資料構成邏輯資料源集合;如何制定統一的異構資料通路的接口标準;如何虛拟化分布的資料源等。資訊網格是利用現有的網絡基礎設施、協定規範、Web 和資料庫技術,為使用者提供一體化的智能資訊平台,其目标是建立一種架構在OS和Web之上的基于Internet的新一代資訊平台和軟體基礎設施。

7.10 資料加密技術支援

資料加密與解密方法是商業資料庫核心功能之一。保護資料、杜絕非授權通路、防止工業間諜等,都需要安全措施,來保護機密資料不被竊取或篡改。傳統上有幾種方法來加密資料流。比如80x86的CPU系列有一個xlat指令,用在硬體級置換。目前流行基于公鑰的加密算法。

8. 全球資料庫2018發展趨勢展望

未來全球資料庫競争會更加激烈,MySQL有望超越Oracle成為流行度第一的資料庫産品,RDBMS、NoSQL、NewSQL等各資料庫互相借鑒,但RDBMS地位仍居首。AI和知識圖譜在更多領域的應用,使得圖資料庫繼續增長并開始發力,機器學習等AI技術應用于資料庫領域自動化、智能化管理和運維。資料庫雲服務化繼續加強,各廠商競争激烈,混合雲解決方案成重要戰場。

8.1全球資料庫2018年發展趨勢

水準有限,隻能在本節略帶展望一下全球資料庫2018年發展趨勢,不敢更新為章。

8.1.1 記憶體技術

加速大資料處理過程,記憶體技術是關鍵。在傳統資料庫中,資料存儲在配備有硬碟驅動器或固态驅動器(SSD)的存儲系統中。而現代記憶體技術将資料存儲在RAM中,這樣大大提高了資料存儲的速度。佛瑞斯特研究的報告中預測,記憶體資料架構每年将增長29.2%。目前,有很多企業提供記憶體資料庫技術,最著名的有SAP、IBM和Pivotal. [22]

8.1.2 雲端資料庫托管服務

O’Reilly調查顯示,龐大運維人員支援的傳統IT公司上雲感受到雲資料庫的便捷後,往往會需要進一步提供存儲、資料處理、可視化、分析以及人工智能的托管服務。類似服務相關的開源元件需要專業運維人員,是以選擇将這些工具托管到服務提供商,不用考慮詳細的資料庫管理、運維。其公司内資料專業人士将能關注手頭的問題,提供公司在其領域的專業性。但并非所有資料都會遷移到公共雲,遺留系統、敏感的資料、安全、合規以及隐私問題将會需要一個混合的架構。這就需要定制或私有雲,如工業物聯網Predix或AWS的CIA。

8.1.3 微小型資料庫技術支援

移動計算時代到來,嵌入式作業系統對微小型資料庫系統有更多需求。微小型資料庫系統(a small-footprint DBMS)是一種隻需很小的記憶體來支援的資料庫系統核心,其技術已從研究領域逐漸走向應用領域。微小型資料庫系統與作業系統和具體應用內建在一起,運作在各種智能型嵌入裝置或移動裝置上。微小型資料庫系統針對便攜式裝置其占用記憶體空間約為2MB,對于掌上裝置和其他手持裝置占用記憶體空間隻有50KB-500KB左右。記憶體限制是決定微小型資料庫系統特征的重要因素。微小型資料庫系統根據占用記憶體大小又進一步分為:超微DBMS(pico-DBMS)、微小DBMS(micro-DBMS)和嵌入式DBMS三種。逐漸增多的移動資料處理和管理需求,緊密結合各種智能裝置的嵌入式移動資料庫技術得到學術界、工業界、軍事領域和民用部門等方面的重視并不斷實用化。

8.1.4移動資料管理支援

掌上型或筆記本電腦、個人數字助理(PDA)、智能手機等移動計算機,是可以自由地移動的計算環境,稱之為移動計算(mobile computing)。研究移動計算環境中的資料管理技術,已成為目前分布式資料庫研究的一個新的方向,即移動資料庫技術。與基于固定網絡的傳統分布計算環境相比,移動計算環境具有以下特點:移動性、頻繁斷接性、帶寬多樣性、網絡通信的非對稱性、移動計算機的電源能力、可靠性要求較低和可伸縮性等。移動計算所獨有的特點,對分布式資料庫技術和客戶/伺服器資料庫技術,提出了新的要求和挑戰。移動資料庫系統支援移動使用者在多種網絡條件下能夠有效地通路所需資料,完成資料查詢和事務處理。通過移動資料庫的複制/緩存技術或者資料廣播技術,移動使用者即使在斷接的情況下也可以繼續通路所需的資料,進而繼續自己的工作,這使得移動資料庫系統具有高度的可用性。此外,移動資料庫系統能夠盡可能地提高無線網絡中資料通路的效率和性能。而且,它還可以充分利用無線通信網絡固有的廣播能力,以較低的代價同時支援大規模的移動使用者對熱點資料的通路,進而實作高度的可伸縮性,這是傳統的客戶/伺服器或分布式資料庫系統所難以比拟的。目前,移動資料管理的研究主要集中在以下幾個方面:首先是資料同步與釋出的管理。其次是移動對象管理技術。

8.1.5傳感器資料庫技術支援

傳感器應用越來越廣泛。傳感器網絡中,傳感器資料的資料标記時間戳後發送到伺服器,再由伺服器對其進行處理。應用在監測和監控的傳感器資料随着時間和采集的累積,越來越多。傳感器節點上資料存儲和處理後,傳感器資料庫系統需要考慮大量的傳感器裝置的存在,以及它們的移動和分散性。傳統RDBMS性能明顯不适應。是以,新的傳感器資料庫系統需要解決一些新的問題。主要包括:傳感器資料的表示和傳感器查詢的表示、在傳感器節點上處理查詢分片、分布查詢分片、适應網絡條件的改變、傳感器資料庫系統等。

8.1.6 資料科學家進入資料庫領域

随着傳統和移動網際網路、物聯網等場景發展,資料庫虛拟化、自動化、智能化的需求會更旺盛,競争也會更激烈。資料科學家和資料分析師,用模組化和機器學習等技術,帶來更加自動、智能的資料庫管理和運維能力,重新賦能DB領域基礎能力。

①資料科學家開始使用深度學習

深度學習DB領域的應用,如OtterTune系統自動為DBMS配置選項,使得DB相關資料與工具化AI算法整合在一起,實作一定程度的自動化。資料科學家将在時間序列和事件資料(包括異常檢測)、物聯網及傳感器資料為主的資料庫模型上使用深度學習。對資料工程技能的需求将持續上升,許多公司招聘接觸生産系統會程式設計的資料科學家。

②大資料分析師、資料管理專家、大資料算法工程師、資料産品經理具有有豐富經驗的資料分析人才将成為稀缺的資源,資料驅動型工作将呈現爆炸式的增長。《華爾街日報》在一份題為《大資料,大影響》的報告宣傳,資料已經成為一種新的資産類别,就像貨币或黃金一樣。Google、Facebook、亞馬遜、騰訊、百度、阿裡巴巴和360等企業正在運用大資料力量獲得商業上更大的成功,并且金融和電信企業也在運用大資料來提升自己的競争力。

8.2中國資料庫2018趨勢展望

國内資料庫産品,受益于自主可控紅利已經在金融、政府等行業得到應用。國内自主研發關系型、非關系型資料庫的企業、機關基本上都是發源于上世紀90年代的,而且都是以大學、科研機構為主。檢索時間有限,其他沒有列出的絕無其他意思。代表性國内廠商有:

1.南大-通用GBASE資料庫(GBase 8a等版本):南開大學的背景,2010年左右自主研發的,基于列式存儲的,面向資料分析、資料倉庫的資料庫系統。

2.人大-金倉資料庫(Kingbas...金倉:由人民大學王珊教授創辦,自主研發。普通的關系型資料庫。

3.華中理工-達夢資料庫(DM):由華中理工馮玉才教授創辦,完全自主研發。以Oracle為參照、追趕對象。

4.神舟通用(神通資料庫:神通資料庫企業版、神通資料庫安全版、神通KSTORE):神舟集團與南大通用合作開發的關系型資料庫。更多地用于資料分析領域。

5.OpenBASE、iBASE、華易資料庫Huayisoft、SequoiaDB巨杉資料庫、太陽塔資料庫等等。

6.DataSimpOS:資料簡化社群以OS、資料簡化、新媒體技術學術為三大目标,學習中涉及到資料庫系統、Hadoop平台、MySQL資料庫,對DBMS的選型、管理及優化等。秦隴紀90s接觸電腦就想做OS。驅動、中間件、UI、資料庫、檔案系統、核心、通信、字元集、指令集各子產品均在簡化、整合已有開源架構,做不過來。有興趣的dev可以合作做某一個子領域,要求就一點:最簡、規範。計算機系統最核心的是指令集,有所謂的專家說CPU指令集容易做,但是沒有生态。這種人的話就當是放屁熏人!最難就是指令集,結合了軟硬體各種控制排程算法的實作。Intel80386那個一千多頁手冊讀了好多年了,很多軟硬體實作的機制,還沒用看懂,對軟硬體知識和電氣性能的綜合性要求很高。設計制造封裝一個28nm的晶片國内完全可以實作,關鍵是軟體系統部分拿不出來。花時間學習研究真正的基礎技術資料去吧,很多知識需要掌握。希望占據各種資源的人投入加入。

7.濤思資料(TAOSData)團隊:陶建輝領銜做時序資料庫産品TDengine,目前開放測試。

國産資料庫最大趨勢就是向着分布式資料庫、開源、安全放心發展,希望更多的國内團隊做出屬于我們自己的優秀資料庫産品,并不斷加大研發投入,期待優秀國産資料庫早日加入市場競争。

-END-

參考文獻(2531字)

1-16.DB-EnginesRanking.343 systems in ranking, August2018.[EB/OL]DB-Engines,https://db-engines.com/en/ranking,2018-08.

2-8.Wikipedia.DB-Enginesranking.[EB/OL]Wikipedia,https://en.wikipedia.org/wiki/DB-Engines_ranking,2018-07-11.

3.Statista 2018.Rankingof the most popular database management systems worldwide, as of February 2018.[EB/OL]Statista,https://www.statista.com/statistics/809750/worldwide-popularity-ranking-database-management-systems/,2018-02.

4.DB-Engines Ranking.Completetrend, starting with January 2013.[EB/OL]DB-Engines,https://db-engines.com/en/ranking_categories,2018-07.

5.DB-Engines Ranking.OpenSource vs. Commercial.[EB/OL]DB-Engines,https://db-engines.com/en/ranking_osvsc,2018-08.

6.DB-Engines Ranking.DBMSpopularity broken down by database model Number of systems per category, August2018.[EB/OL]DB-Engines,https://db-engines.com/en/ranking_categories,2018-07.

7.DB-Engines Ranking.Rankingscores per category in percent, August 2018.[EB/OL]DB-Engines,https://db-engines.com/en/ranking_categories,2018-07.

9.weiyanzi07.常見的NoSQL資料庫有哪些?以及他們的特點與差別?.[EB/OL]CSDN知數堂,https://blog.csdn.net/wyz0516071128/article/details/80877984,2018-07-01.

10.redis.cn翻譯團隊.Redis.[EB/OL]redis中國使用者組,http://www.redis.cn/,通路時間:2018-08-13.

11.建立者:smox.Redis.[EB/OL]百度百科,https://baike.baidu.com/item/Redis/6549233,2018-08-09.

12.antirez.The firstrelease candidate of Redis 4.0 is out.[EB/OL]antirez,http://antirez.com/news/110,2016-12-03.

13.MongoDB.MongoDBExpands its Leadership as the Modern, General Purpose Database Platform WithNew Product Announcements.[EB/OL]MongoDB,https://www.mongodb.com/press/mongodb-expands-its-leadership-with-a-number-of-new-product-announcements,2018-06-27.

14.建立者:lyxcf.memcached.[EB/OL]百度百科,https://baike.baidu.com/item/memcached,2018-07-02.

15.neo4j.neo4j.[EB/OL]neo4j,https://neo4j.com/,通路時間:2018-08-13.

17.PostgreSQL.PostgreSQL:The World's Most Advanced open source relational database.[EB/OL]PostgreSQL,https://www.postgresql.org/,通路時間:2018-08-14.

18.OceanBase.Redis.[EB/OL]OceanBase,http://oceanbase.org.cn/,通路時間:2018-08-14.

19.王曉偉goodwxw.2018資料庫技術發展趨勢.[EB/OL]CSDN知數堂,https://blog.csdn.net/n88Lpo/article/details/80268963l,2018-05-10.

20.中嘉和信.2018年大資料發展的七大趨勢.[EB/OL]百家号,https://baijiahao.baidu.com/s?id=1595441186353487980,2018-03-20.

21.lhl545545.資料庫技術發展的三個特征_當今主流資料庫技術發展狀況及趨勢分析.[EB/OL]電子發燒友網,http://m.elecfans.com/article/629912.html,2018-02-05.

22.假的魚轉載.2018年大資料十大發展趨勢.[EB/OL]CSDN,https://blog.csdn.net/m0_37803704/article/details/80392673,2018-05-21.

x.秦隴紀.資料科學與大資料技術專業概論;人工智能研究現狀及教育應用;純文字資料神經網絡訓練;大資料簡化之技術體系[EB/OL]資料簡化DataSimp(微信公衆号),http://www.datasimp.org,2017-06-06.

資料簡化社群2018年全球資料庫總結及18種主流資料庫介紹 (40619字)

秦隴紀

簡介:資料簡化社群2018年全球資料庫總結及18種主流資料庫介紹。(公号回複“資料庫2018”,文末“閱讀原文”可下載下傳27圖45k字28頁PDF報告) 藍色連結“資料簡化DataSimp”關注後下方菜單項有文章分類頁,歡迎轉發、贊賞支援社群。作者:秦隴紀。來源:Google、DB-Engines、資料庫網站等、資料簡化社群秦隴紀微信群聊公衆号,引文出處請看參考文獻。主編譯者:秦隴紀,資料簡化社群、科學Sciences、知識簡化新媒體創立者,資料簡化OS設計師、C/Java/Python/Prolog程式員,IT教師。每天大量中英文閱讀/設計開發調試/文章彙譯編簡化,時間精力人力有限,歡迎轉發/贊賞/加入支援社群。版權聲明:科普文章僅供學習研究,公開資料©版權歸原作者,請勿用于商業非法目的。秦隴紀2018資料簡化DataSimp綜合彙譯編,投稿合作,或出處有誤、侵權、錯誤或疏漏(包括原文錯誤)等,請聯系[email protected]溝通、指正、授權、删除等。歡迎轉發:“資料簡化DataSimp、科學Sciences、知識簡化”新媒體聚集專業領域一線研究員;研究技術時也傳播知識、專業視角解釋和普及科學現象和原理,展現自然社會生活之科學面。秦隴紀發起未覆寫各領域,期待您參與~~ 強烈譴責超市銀行、學校醫院、政府公司肆意收集、濫用、倒賣公民姓名、身份證号手機号、機關家庭住址、生物資訊等隐私資料!

Appx(626字).資料簡化DataSimp社群簡介

資訊社會之資料、資訊、知識、理論持續累積,遠超個人認知學習的時間、精力和能力。應對大資料時代的資料爆炸、資訊爆炸、知識爆炸,解決之道重在資料簡化(Data Simplification):簡化減少知識、媒體、社交資料,使資訊、資料、知識越來越簡單,符合人與裝置的負荷。資料簡化2018年會議(DS2018)聚焦資料簡化技術(Data Simplification techniques):對各類資料從采集、處理、存儲、閱讀、分析、邏輯、形式等方ose 做簡化,應用于資訊及資料系統、知識工程、各類資料庫、實體空間表征、生物醫學資料,數學統計、自然語言處理、機器學習技術、人工智能等領域。歡迎投稿資料科學技術、簡化執行個體相關論文送出電子版(最好有PDF格式)。填寫申請表加入資料簡化DataSimp社群成員,應至少一篇資料智能、程式設計開發IT文章:①高品質原創或翻譯美歐資料科技論文;②社群網站義工或完善S圈型黑白靜态和三彩色動态社群LOGO圖示。論文投稿、加入資料簡化社群,詳情通路www.datasimp.org社群網站,網站維護請投會員郵箱[email protected]。請關注公衆号“資料簡化DataSimp”留言,或加微信QinlongGEcai(備注:姓名/機關-職務/學校-專業/手機号),免費加入投稿群或”科學Sciences學術文獻”讀者微信群等。長按下圖“識别圖中二維碼”關注三個公衆号(搜名稱也行,關注後底部菜單有文章分類頁連結):

資料技術公衆号“資料簡化DataSimp”:

資料簡化社群2018年全球資料庫總結及18種主流資料庫介紹(公号回複“資料庫2018”下載下傳典藏版PDF報告)

科普公衆号“科學Sciences”:

資料簡化社群2018年全球資料庫總結及18種主流資料庫介紹(公号回複“資料庫2018”下載下傳典藏版PDF報告)

社會教育知識公衆号“知識簡化”:

資料簡化社群2018年全球資料庫總結及18種主流資料庫介紹(公号回複“資料庫2018”下載下傳典藏版PDF報告)

(轉載請寫出處:©秦隴紀2010-2018彙譯編,歡迎技術、傳媒夥伴投稿、加入資料簡化社群!“資料簡化DataSimp、科學Sciences、知識簡化”投稿回報郵箱[email protected]。)

普及科學知識,分享到朋友圈

資料簡化社群2018年全球資料庫總結及18種主流資料庫介紹(公号回複“資料庫2018”下載下傳典藏版PDF報告)

轉發/留言/打賞後“閱讀原文”下載下傳PDF

閱讀原文

資料簡化社群2018年全球資料庫總結及18種主流資料庫介紹(公号回複“資料庫2018”下載下傳典藏版PDF報告)

微信掃一掃

關注該公衆号

繼續閱讀