2 Greenplum数据库常用知识

2.1 Greenplum 相关概念

2.1.1 整体介绍

Greenplum的架构采用了MPP(大规模并行处理)。在 MPP 系统中,每个 SMP节点也可以运行自己的操作系统、数据库等。换言之,每个节点内的 CPU 不能访问另一个节点的内存。节点之间的信息交互是通过节点互联网络实现的,这个过程一般称为数据重分配(Data Redistribution) 。与传统的SMP架构明显不同,通常情况下,MPP系统因为要在不同处理单元之间传送信息,所以它的效率要比SMP要差一点,但是这也不是绝对的,因为 MPP系统不共享资源,因此对它而言,资源比SMP要多,当需要处理的事务达到一定规模时,MPP的效率要比SMP好。这就是看通信时间占用计算时间的比例而定,如果通信时间比较多,那MPP系统就不占优势了,相反,如果通信时间比较少,那MPP系统可以充分发挥资源的优势,达到高效率。

中国已有:中信实业银行,东方航空公司,阿里巴巴,华泰保险,中国远洋(Cosco),李宁公司等大型企业用户选择Greenplum的产品。

2.1.2 shared-nothing概念

Shared Everthting:一般是针对单个主机,完全透明共享CPU/MEMORY/IO,并行处理能力差,典型的代表SQLServer。 shared-everything架构优点很明显,但是网络,硬盘很容易就会成为系统瓶颈。

Shared Disk:各个处理单元使用自己的私有 CPU和Memory,共享磁盘系统。典型的代表Oracle Rac, 它是数据共享,可通过增加节点来提高并行处理的能力,扩展能力较好。其类似于SMP(对称多处理)模式,但是当存储器接口达到饱和的时候,增加节点并不能获得更高的性能 。

SharedNothing:各个处理单元都有自己私有的CPU/内存/硬盘等,不存在共享资源,各处理单元之间通过协议通信,并行处理和扩展能力更好。各节点相互独立,各自处理自己的数据,处理后的结果可能向上层汇总或在节点间流转。Share-Nothing架构在扩展性和成本上都具有明显优势。

2.1.3 MPP 理解

大规模并行处理系统是由许多松耦合处理单元组成的,借助MPP这种高性能的系统架构,Greenplum可以将TB级的数据仓库负载分解,并使用所有的系统资源并行处理单个查询。

2.1.4 MVCC 概念

 与事务型数据库系统通过锁机制来控制并发访问的机制不同, GPDB使用多版本控制(Multiversion Concurrency Control/MVCC)保证数据一致性。

 这意味着在查询数据库时,每个事务看到的只是数据的快照,其确保当前的事务不会看到其他事务在相同记录上的修改。据此为数据库的每个事务提供事务隔离。

MVCC以避免给数据库事务显式锁定的方式,最大化减少锁争用以确保多用户环境下的性能。在并发控制方面,使用MVCC而不是使用锁机制的最大优势是,

MVCC对查询(读)的锁与写的锁不存在冲突,并且读与写之间从不互相阻塞。

 

2.2 OLTP与OLAP的理解

2.2.1 描述概念

Greenplum 支持OLTP与OLAP机制,同时也支持AO表与堆方式储存,其中OLTP与OLAP的特点如下:

OLTP(On-Line Transaction Processing,联机事务处理)系统也称为生产系统,它是事件驱动的、面向应用的,比如电子商务网站的交易系统就是一个典型的OLTP系统。OLTP的基本特点是:

数据在系统中产生,

基于交易的处理系统(Transaction-Based),

每次交易牵涉的数据量很小,

对响应时间要求非常高,

用户数量非常庞大,主要是操作人员,

数据库的各种操作主要基于索引进行。

 

OLAP(On-Line Analytical Processing,联机分析处理)是基于数据仓库的信息分析处理过程,是数据仓库的用户接口部分。OLAP系统是跨部门的、面向主题的,其基本特点是:

本身不产生数据,其基础数据来源于生产系统中的操作数据(OperationalData)

基于查询的分析系统,

复杂查询经常使用多表联结、全表扫描等,牵涉的数据量往往十分庞大,

响时间与具体查询有很大关系,

用户数量相对较小,其用户主要是业务人员与管理人员,

由于业务问题不固定,数据库的各种操作不能完全基于索引进行。

2.2.2 图示解释

OLTP与OLAP的比较

OLTP与OLAP对于硬件的要求

2.3 其他名词概念

2.3.1 HTAP概念

HTAP(Hybrid Transactional / Analytical Processing)

一份数据,支持在线事务与在线分析

分布式share nothing架构,线性扩展

3-15倍压缩

https://yq.aliyun.com/articles/193401?utm_content=m_29900

 

2.3.2 Append-only 的概念

AO表为追加存储,当删除、更新记录时,有一个BITMAP对象来存储对应的记录是否被删除。对于AO存储,虽然是appendonly,但实际上GP是支持DELETE和UPDATE的,被删除或更新的行,通过BITMAP来标记,性需要用vacuum来释放。

 

2.4 数据仓库设计规则

2.4.1 数据仓库概念

数据仓库,英文名称为Data Warehouse,可简写为DW或DWH。数据仓库,是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。它是单个数据存储,出于分析性报告和决策支持目的而创建。 为需要业务智能的企业,提供指导业务流程改进、监视时间、成本、质量以及控制。

2.4.2 数据仓库设计规则相关资料

具体的可以参考数据仓库之父Bill Inmon在1991年出版的"Building the Data Warehouse",下载地址为:链接: https://pan.baidu.com/s/1I5ImKxDv0Jbx3psqTY2TzQ 提取码: gm8k

2.4.3 数据仓库设计规范参考

名词

名词简称

名词解释

Data Warehouse

DW

数据仓库主体

Operational Data Store

ODS

数据原始接入层,需要对数据频繁的增删改查,是支持对近期数据的OLTP查询,以减轻业务系统负载。

Data Warehouse Detail

DWD

数据源的细节层,有的也称为ODS层,是业务层与数据仓库的隔离层,在该层可以把业务表分的更细

Data Warehouse Base

DWB

数据仓库基础数据层,
存储的是客观数据,一般用作中间层,可以认为是大量指标的数据层

Data Warehouse Service

DWS

服务数据层,基于DWB上的基础数据,主要整合汇总最终的结果供应用层使用,一般是宽表和高度压缩表。

Data Warehouse History

DWH

该层不在数据仓库设计的范围之内,按照业务新增的数据层,主要储存历史数据

Data Warehouse Exception

DWE

该层不在数据仓库设计的范围之内,按照业务新增的数据层,主要储存异常数据

Enterprise Data Warehouse

EDW

作为企业唯一的数据仓库,EDW提供统一的数据服务,查询结果有效一致。数据设计支持跨部门,支持海量数据,并支持大量的查询请求。

Data Mart

DM

和EDW类似,但更专注于部门级别而不是公司级别的统一数据服务。提供EDW不能提供的,针对部门的特殊数据服务需求

BI/Analytic Database

BID/AD

为商业智能和分析而优化的数据处理技术。包括数据清理,ETL,数据挖掘等。生产报表,也支持adhoc查询,数据反范式设计。

Data Lake Database

DLD

该层存储非加工数据,比如日志、视频等,以后结构化数据,并且不分类,
没有为了特定程序进行设计和加工。

 

 

详细资料请参考:https://blog.csdn.net/xfg0218/article/details/85092196

2.5 常用命名规范

在数据库中常用到表,序列,过程,触发器,索引等的命名规范

2.5.1 表的命名规范

2.5.1.1 表的规范

1、表的命名应该简单明了,禁止使用关键字作为表名。

2、表明应以下划线作为作为单词的划分,增量表应该添加后缀的日期,例如:t_ent_baseinfo_20181024

3、同一模块的表使用相同的前缀,表名含义简单明了

4、表名的长度不得超过40个字符

2.5.1.2 字段的命名规范

1、字段使用英文单词的全称或简写,意思简单明了,单词之间以下划线分割,禁止使用驼峰规则。

2、各表之间的相同的字段的含义保持一致

2.5.2 索引的命名规范

索引的创建要以表明加字段名加INDEX作为组合使用,例如:t_ent_baseinfo_pripid_index

2.5.3 函数命名规范

1、函数的名字禁止超过40个字符

2、数据处理的过程采用proc加业务的名字,例如:proc_t_ent_baseinfo_sink2hdfs该名字代表把t_ent_baseinfo表中的数据加载到HDFS上

3、公共方法采用fn加业务的名字,例如:fn_t_ent_baseinfo_convert_finled表示在表t_ent_baseinfo中转换字段

2.5.4 视图命名规范

1、视图采用v加表明加加具体的业务含义,例如:v_t_ent_baseinfo_convert_finled表示在表t_ent_baseinfo中字段的转换即可。

2.6 SQL使用规范

2.6.1 SQL最基本的原则

1、代码行清晰、整齐、层次分明、结构性强,易于阅读。

2、代码中应具备必要的注释以增强代码的可读性和可维护性。

3、代码应充分考虑执行效率,保证代码的高效性。

2.6.2 避免不必要的操作

1、避免使用select * from tablename查询数据与字段信息

2、 查询记录行的个数不要使用count(*),而要制定一个有索引的字段

3、如果有分区表,尽量把分区键作为查询的第一个条件

4、删除表中的所有数据时,要使用truncate不要使用delete

5、查询语句中查询条件尽量在索引字段上,避免做大表的扫描

6、避免在索引上进行计算,例如

低效:

SELECT * FROM DEPT WHERE SAL * 12 > 25000;

高效:

SELECT * FROM DEPT WHERE SAL > 25000 / 12;

  1. 避免在索引列上使用IS NULL和IS NOT NUL,例如:

低效:(索引失效)

SELECT … FROM DEPARTMENT WHERE DEPT_CODE IS NOT NULL;

高效:(索引有效)

SELECT … FROM DEPARTMENT WHERE DEPT_CODE >=0;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Greenplum数据库是一种高性能的分布式数据库系统,它基于开源的PostgreSQL数据库,专为大规模数据分析和处理而设计。Greenplum具备横向扩展能力,可以在多个节点上分布式存储和处理数据,以提供更好的性能和可扩展性。 Greenplum数据库的特点包括: 1. 并行处理:Greenplum可以将大数据集分成多个片段,然后在多个节点上同时处理和分析,从而提高处理速度。 2. 列存储:Greenplum使用列存储技术来优化查询性能。它将每个列存储在独立的文件中,可以更快地访问和查询特定的列数据。 3. 数据压缩:Greenplum可以对数据进行压缩,以减少存储空间,并提高查询性能。 4. 数据分片:Greenplum将数据集分成多个片段,并在不同的节点上存储,以实现数据的并行处理。 5. 多维数据分析:Greenplum内置了许多用于多维数据分析的功能和工具,使得用户可以轻松地进行复杂的数据查询和分析操作。 Greenplum数据库适用于大规模数据分析和处理的场景,如数据仓库、商业智能、大数据分析等。它可以处理PB级别的数据,并且提供了强大的查询和分析能力。同时,Greenplum还提供了丰富的功能和工具,以帮助用户进行数据的导入、导出和转换,使得数据的处理变得更加简单和高效。 总之,Greenplum数据库是一种强大的分布式数据库系统,它通过并行处理、列存储等技术,提供了高性能和可扩展的数据分析和处理能力。如果您需要处理大规模数据集并进行复杂的数据分析操作,Greenplum数据库是一个值得考虑的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值