この記事は、データベース(DB)およびデータベース管理システム(DBMS)に関する多くの質問に対する回答ではありません。著者として、公平な指標や統計などに頼りながら、トレンドについて自分の意見を述べていますが、自分の経験を例に挙げています。私はどの企業の熱心な代表者でもありません。自分の手で作成したものも含め、さまざまなDBMSで25年以上の経験に基づいて私の見解を表明します。すべての用語、技術、落とし穴、そして動きがどこに向かっているのかを知っている経験豊富なプログラマーやアーキテクトでさえ、それほど多くはありません。トピックは本当に巨大なので、トップレベルの情報でさえ1つの記事内で開示することはできません。誰かがお気に入りのDBMSまたはその信じられないほどのプラスに言及する価値があることに出くわさない限り、それから私はあなたにコメントで示し、それによって全体像を補足するようにお願いします。それは他の人が主題分野をよりよく理解し理解するのを助けるでしょう。行く!
オープンソースDBMSと商用DBMS
まず、db-engines.comというサイトからグラフを作成します。私の気持ちによると、データベースの傾向を追跡するのが得意です。このグラフが、現状についての記事を書きたいという願望を加えました。実際、「データベース」という言葉は、特定のデータベース管理システム(DBMS)を意味することが多いため、テキストにDBMSではなくデータベースが含まれている場合は、そのような習慣が原因です。
オープンソースDBMS-オープンソースデータベース管理システムは、商用のクローズドソースDBMSに追いついています。オープンソース49.98%対コマーシャルの50.02%。2020年の結果は、オープンソースがそれほど人気がないと言える瞬間です。ご覧のとおり、この状況は突然発生しませんでした。グラフの計算は数値比ではなく、特定のシステムによって得られるポイントで行われます。
. Microsoft Access , COBOL , . , IBM DB2 . 10 – 75% . 10 .
Open Source , , Oracle, MS SQL, IBM DB2 , . . enterprise licenses ( ) . , 4 16 - 64 .
MS SQL - 439 936$
Oracle - 1 368 000$
, , , , , . .
2019 2020 AMD , EPYC, , , . AMD 64 - . ? . . AMD , Oracle, Microsoft . Microsoft SQL Server Linux, . IBM DB2 .
( « ») , , Open Source . .
, . , : (Microsoft), (Oracle), . 10 Forbes , (Amazon RDS), (Google Bigtable).
open source . , , , . , , , , , , . , .
MySQL open source 1 .$, Sun Microsystem, Oracle. MySQL MariaDB. , . MariaDB 12 .
, , , , , , . open source , , Facebook c MySQL. open source , . 10 SQLite - . -, .
: , 70-80 , Oracle, , , , .. .
, , . () ( ), . , – , , . open source. ClickHouse, Tarantool, PostgreSQL .., . . , , , « ».
open source . , Oracle . « » Open Source. , , PostgreSQL, MySQL, SQLite, MongoDB .
, open source commercial, online , , .. online vs. offline.
online offline
2 , - , - . .
, , , ( ) ( ), Windows . WISA (Windows, IIS, MS SQL, ASP.Net). WISA, , StackOverflow. , LAMP (Linux Apache MySQL PHP). , , Windows . .
, . , , .. ( ) , ERP, CRM SAP, Microsoft Dynamics NAV AX, 1C . , , Oracle, MS SQL, IBM DB2.
10 , 2 Microsoft Alphabet (Google). . . , .. 2020 .
. , , , . 113 . 20. open source , . - () , open source. , , .
- online . , .
, . RDBMS – . ¼ , .
, MS SQL(Oracle) MongoDB, Redis, MySQL, ClickHouse, ElasticSearch ..
:
Relational: , . 2- , . . 2 – (Key). , , SQL (Structured Query Language), . . 2- .
Document stores:
, . . , . MongoDB – JSON (Java Script Object Notation). BSON (Binary JSON), , .
( )
.
Key-Value : NoSQL - , - . , , . – Redis. , . , . , , . , 1 IP . IP, +1. , (). TTL X .
Search Engines: – . c ID (, , ..) , , , . . , , , , , , , . ElasticSearch , ELK (. ) ElasticSearch+Logstash+Kibana , , .
Wide column stores: Key-Value . , . .
– Cassandra, HBase.
Graph : , , . () (). .
(), - () . , — , . 18 , . - Neo4j.
Columnstore
db-engines , , . , . , , . , . ClickHouse, Vertica. ClickHouse.
ClickHouse . , .
Multi-model databases
, . , , . «multi-model». multi-model NoSQL . - , .
SQL vs NoSQL
NoSQL 10 2009 « ». , + SQL NoSQL, , . . , , . , , , , , , , .. . , , , , , ..
, , 10 .
, 0- 1 Gb , . 100-200 .
SQL 10 100 . , , , , , . , . , .
, NoSQL , , SQL, . , NoSQL - , , .
NoSQL . .
A SQL – Structured Query Language – ? 1970- , , . , (features - ), SQL, , , SQL. SQL , . , NoSQL , SQL. , MongoDB Studio3T, SQL MongoDB, MongoDB SQL . ClickHouse Tarantool ( ) SQL . NoSQL SQL, , join-, , NULL ..
Cloud DBs vs DBs
Gartner 5 2 .
BPaaS IaaS. . AWS , Microsoft , Alibaba , .
(DBaaS) , , .
:
, , , . , CPU, RAM, SSD(HDD) , .
, . . , , , , , , ..
, , . , , . , , , , Mb. AWS Azure . NASA, , . .
. , , . . , , . Gb, , .
, - , . , . .
, , . , Alibaba , 12 - , .
, , IP . .
. , . .
., SberCloud, . , , . , Microsoft, Google, .
: , , , . c .
, , , . . .
, , .
OLTP vs OLAP
Online Transaction Processing (OLTP): , , , .. . , . OLTP – . , OLTP.
, Online Analytical Processing (OLAP). OLAP , . , , , . OLAP , , . Data Scientist. , . SQL, Python, R, , ..
OLAP OLTP, . OLAP , . OLAP , , SIMD (single instruction, multiple data) , 1 , .
, . , , . , , NVidia Tesla.
SSD vs HDD vs Storage vs Tape vs Other
.
2020 , SSD HDD. , . , , , . . SSD, HDD . HDD , . 1000 , HDD. OLTP HDD. SSD c 6000 IOPS ( ), NVME , , .
HDD OLAP , , . 1 – . HDD SSD 1 .
SSD HDD . . SSD HDD, , , SLC MLC, , TLC QLC, . . SSD 1Tb 1000$ - . , , , . SSD HDD, . SSD .
- SSD – 2.5 , PCI-X , U.2– M.2, . SSD – NVME.
Storage – () - , . , . – , 10 . . – , . . , . AllFlash – HDD SSD.
EMC DELL . Huawei . , .
Intel Optane (3D Xpoint) – , , , SSD. - . SSD+NVME /. Optane SSD, RAID .
RAID – , . . , RAID . OLTP RAID10.
Tape – . , 2020 . , . , . , , . , .
– , . , , .., . . . .
: Horizontal scaling vs Vertical Scaling.
, 10-15 . 2000-x Oracle, Microsoft, IBM , , Web API, , 2000-x , ( ) . CPU, , , .. . , .
, , , . , , . , , .
, . : , , . . , . , . , . . , hash , . ().
, 8 , , 4 , 2 , . , 2 8 10 . : , .. 2-3 , . .
2 2 , , , , , .
: , , , . , .
- High Availability. Master-master, master-slave.
High Availability– . . . , , . : , , , ..
, , , RAID . , , , , , .
online , . . – , , .
. , , -. Slave- , . Master-Slave.
, . , , . , , master , . Master-Master. master slave .
, .
, , , . , , . master , , slave master, . , , . , , . , .
. . , .
Online maintenance - online alter
24/7/365 – , 24 , 7 365 . (maintenance). , , , , . , , , , , . , , , .
. , ? . , , , . , , . . , .
, . , , , , . , , , , , . – , . , .
, , % . .
: – SQL, , , , , , product- ..
, , , DataGrip JetBrains ( Kotlin, ReSharper, GoLand ..) . , .
, . , - , . , , , . . , . , , , .
, . , , , , , SQL . , - . , . , Flashback Data Archive, Temporal history, Change Tracking, Data Audit ..
, , . , , , , , , , , .
-
, . , . , , , , , . , .
- - , . -. , (, -) - , , , .. , . , , , , , , .. - , -.
, - , .. .
, , ClickHouse . - , .
JSON
NuGet- Micrsoft Visual Studio C# - JSON (JavaScript Object Notation). , , Microsoft, XML. JSON , , JSON .
In Memory
RAM . , . , . . -, .
- In-Memory , , , Tarantool.
, . , .. OLAP . , , , , CPU. , .
(temporary)
, , . , . , , , . , , .
MapReduce
Google . Map – Reduce – . Apache Hadoop Spark – , HDFS . Hive, SQL. .
, . , . , .. Hive , .
. ? , , . (spatial index) R-tree .
Graph data
. .
. . - , , , . , - .
, . , . , . , , , , , .. . , , . - . , . . (), - .
GPU, NPU (Neural Processing Unit), Google TPU (Tensor Processing Unit)
- . , GPU NPU , , GPU NPU , ( ) . . DPU (Data Processing Unit) – , . .
Community
, , . , – . . StackOverflow.com , . . KnowledgeBase.
Tag |
Count |
MySQL |
598,350 |
SQL Server |
285,092 |
Mongodb |
129,907 |
Oracle |
122,385 |
Postgresql |
117,427 |
sqlite |
82,596 |
ms-access |
46,177 |
elasticsearch |
44,482 |
redis |
18,290 |
db2 |
10,485 |
… |
|
clickhouse |
530 |
tarantool |
103 |
, , , , . % - (holy war - ). , . . Oracle IBM DB2 – .
: . OpenSource Commercial , . Online . . SQL. -. , . , . , .