定义:
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。
基本概念&分类:
·ORDBMS对象关系数据库系统
·RDBMS关系型数据库管理系统
·OODBMS 面向对象数据库管理系统
·MPP (Massively Parallel Processing):即大规模并行处理。基于传数据库并区别于传统单节点数据库,支持多节点分布式存储和计算。
·OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。
·OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。
P.S.
·Hadoop和MPP的区别与联系:
https://blog.csdn.net/tbdp6411/article/details/50389059
·“其实MPP架构的关系型数据库与Hadoop的理论基础是极其相似的,都是将运算分布到节点中独立运算后进行结果合并。个人觉得区别仅仅在于前者跑的是SQL,后者底层处理则是MapReduce程序。”
(引用于https://blog.csdn.net/trocp/article/details/86687206)
·Hadoop在处理非结构化和半结构化数据上具备优势,尤其适合海量数据批处理等应用要求。海量数据存储查询、批量数据ETL、非机构化数据分析(日志分析、文本分析)等。
·MPP适合替代现有关系数据机构下的大数据处理,具有较高的效率。
MPP适合多维度数据自助分析、数据集市等。
以下对比几个数据库:
产品 |
产品来源 |
产品 |
产品来源 |
PostgreSQL |
开源 |
GaussDB |
华为 |
GreenPulm |
开源 |
Gbase |
南大通用 |
ClickHouse |
开源 |
Tbase |
腾讯 |
Presto |
开源 |
ADB |
阿里 |
Impala |
开源 |
MaxCompute |
阿里 |
MongoDB |
开源 |
FusionInsight |
华为 |
①PostgreSQL(开源)
在线手册http://www.runoob.com/manual/PostgreSQL/
·号称“世界上最先进的开源关系型数据库”。
·全栈数据库:在可观的规模内,都能做到多功能。
·免费的对象-关系数据库服务器(ORDBMS),在灵活的BSD许可证下发行。
·单机版的关系型数据库(PostgreSQL)更多作为OLTP。
·Mysql、orcale等数据的语句格式差不太多,比较容易上手。
特点:
·Text字段没有大小限制
· PostgreSQL 的稳定性极强
·PG 多年来在 GIS 领域处于优势地位,因为它有丰富的几何类型
·PG 的可以使用函数和条件索引,这使得PG数据库的调优非常灵活
·PG 的有多种集群架构可以选择
·pgsql对语法简直严苛到有时候你认为变态的地步,甚至要为它这个严苛的学院派作风做很多代码修改、预处理。E.g.千万行数据可能因为某一条数据错误而无法导入所有数据
应用:
·在探探的实践中,整个系统就是围绕PostgreSQL设计的。
·成熟的应用可能会用到许许多多的数据组件:缓存、OLTP、OLAP/批处理/数据仓库、流处理/消息队列、搜索索引、NoSQL/文档数据库、地理数据库、空间数据库、时序数据库、图数据库。传统架构选型可能会组合使用多种组件,典型的如:Redis + MySQL + Greenplum/Hadoop + Kafuka/Flink + ElasticSearch。
一些数据库只能满足一种功能但如果是PostgreSQL,就可以身兼多职,比如:
OLTP:事务处理是PostgreSQL的本行。
OLAP:citus分布式插件,ANSI SQL兼容,窗口函数,CTE,CUBE等高级分析功能。
流处理:PipelineDB扩展,Notify-Listen,物化视图,规则系统,灵活的存储过程与函数编写。
时序数据:timescaledb时序数据库插件,分区表,BRIN索引。
空间数据:PostGIS扩展(杀手锏),内建的几何类型支持,GiST索引。
搜索索引:全文搜索索引足以应对简单场景;丰富的索引类型,支持函数索引,条件索引。
NoSQL:JSON,JSONB,XML,HStore原生支持,至NoSQL数据库的外部数据包装器。
数据仓库:能平滑迁移至同属Pg生态的GreenPlum,DeepGreen,HAWK等,使用FDW进行ETL。
图数据:递归查询。
缓存:物化视图。
作者:冯若航
链接:https://www.zhihu.com/question/20010554/answer/94999834
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。