第一章前言
一.1文档目的
随着Greenplum数据库的正式上线使用。为了保证Greenplum 数据仓库系统平台的平稳运行,保证系统的可靠性、稳定性、可维护性和高性能。特制定本开发规范,以规范基于Greenplum数据库平台的相关应用开发,提高开发质量。
truncate可以加条件吗一.2预期读者
Greenplum数据仓库平台应用的设计与开发人员;
Greenplum 数据仓库平台的系统管理人员和数据库管理员;
Greenplum 数据仓库平台的运行维护人员;
一.3参考资料
参考Greenplum4.3.x版本官方指引:
《GPDB43AdminGuide.pdf》
《GPDB43RefGuide.pdf》
《GPDB43UtilityGuide.pdf》
第二章设计规范
二.1数据库对象数量
数据库对象类型包括数据表、视图、函数、序列、索引等等,在Greenplum数据库中,系统元数据同时保存在Master 服务器和Segment服务器上,过多的数据库对象会造成系统元数据的膨胀,而过多的系统元数据造成系统运行逐步变慢;同时,类似数据库的备份、恢复、扩容等较大型的操作都导致效率变慢。因此,依据GreenplumDB产品的最佳时间,单个数据库的对象数量,应控制在10万以内。
GP数据库的对象包括:表、视图、索引、分区子表、外部表等。
如果数据表的数量太多,建议按应用域进行分库,尽量将单个数据库的表数量控制在10万以
内,可以在一个集中创建多个数据库。
【备注】:在Greenplum数据库中,一张分区表,在数据库中存储为一张父表、每张分区子表都是一张独立的库表;例如:一张按月进行分区的存储一年数据的表,如果含默认分区,共14张表。
二.2表创建规范
为了避免数据库表数量太多,避免单个数据表的数据量过大,给系统的运行和使用带来困难,在Greenplum数据库中需遵循如下的表创建规范:
1、GP系统表中保存的表名称都是以小写保存。通常SQL语句中表名对大小写不敏感。但不允许在建表语句中使用双引号(“”)包括表名,这样会影响系统表中存储的名称,使得表名存在大小写或特殊字符。表命名也不允许出现中文字。
2、单个数据库的数据表数量建议不要超过10万张;
3、禁止使用二级分区表,因为二级分区表会造成表对象数量的急剧膨胀;
4、由于过多的数据文件会导致操作系统对文件的操作效率降低,直接影响到数据库的管理效率。如果数据文件数量过多,建议增加多个表空间,把数据表均匀分布到不同的表空间。每个表空间目录下的数据文件数量,应控制在80万以内。文件数统计可以直接到某个Segment实例目录下指定的表空间目录下统计。
5、创建数据表(DDL)的时候(不含临时表和程序中使用的中间表),必须使用tablespace 子句指定用于存储的表空间,而不是把所有表都存储在默认表空间;例如:
Create table employee ( id int,name varchar) TABLESPACE tpc_data_01 distributed by (id); |
6、对于数据量超过1TB的大表,需从应用设计方面,考虑对大表进行优化,例如是否可划分为历史数据表和当前数据表,并分开存放;是否应采用压缩存储节省空间;是否合理分区;是否应定期清理数据等等。
二.3表结构设计
二.3.1字段命名
表字段的命名,与表名类似。在GP系统表中保存的表名称都是以小写保存。通常SQL语句中字段名称对大小写不敏感。但不允许在建表语句中使用双引号(“”)包括字段名,这样会影响系统表中存储的名称,使得表名存在大小写或特殊字符。字段命名也不允许出现中文字。
二.3.2数据类型
数据类型的定义与相关数据的加载和使用紧密相关,数据类型的定义决定了数据所占用的空间大小,因此,必须慎重设计GP数据仓库数据表的字段类型。
数据仓库的数据来自于多个异构的业务应用系统,通常情况下,业务应用系统的字段类型选择较为随意,不同的业务系统数据类型定义存在多样化,彼此之间差异较大;因此,在数据仓库中,需在参考源系统字段类型定义的情况下,结合Greenplum 数据仓库平台的特点和要求,对字段数据类型进行设计。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论