- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
目 录
TOC \o 1-3 \h \z \u 第一章 序言 2
1.1 文档目标 2
1.2 预期读者 2
1.3 参考资料 2
第二章 设计规范 3
2.1 数据库对象数量 3
2.2 表创建规范 3
2.3 表结构设计 4
2.3.1 字段命名 4
2.3.2 数据类型 4
2.3.3 数据分布 5
2.3.4 分区 7
2.3.5 压缩存放 8
2.3.6 索引设计 9
2.4 其它数据库对象设计 10
2.4.1 schema 10
2.4.2 视图 11
2.4.3 临时表和中间表 11
第三章 SQL开发规范 12
3.1 基础要求 12
3.2 WHERE条件 12
3.3 分区字段使用 13
3.4 表关联 13
3.5 排序语句 16
3.6 嵌套子查询 16
3.7 UNION / UNION ALL 16
3.8 高效SQL写法提议 18
序言
文档目标
伴随Greenplum数据库正式上线使用。为了确保Greenplum 数据仓库系统平台平稳运行,确保系统可靠性、稳定性、可维护性和高性能。特制订本开发规范,以规范基于Greenplum数据库平台相关应用开发,提升开发质量。
预期读者
Greenplum数据仓库平台应用设计和开发人员;
Greenplum 数据仓库平台系统管理人员和数据库管理员;
Greenplum 数据仓库平台运行维护人员;
参考资料
参考Greenplum4.3.x版本官方指导:
《GPDB43AdminGuide.pdf》
《GPDB43RefGuide.pdf》
《GPDB43UtilityGuide.pdf》
设计规范
数据库对象数量
数据库对象类型包含数据表、视图、函数、序列、索引等等,在Greenplum数据库中,系统元数据同时保留在Master 服务器和Segment服务器上,过多数据库对象会造成系统元数据膨胀,而过多系统元数据造成系统运行逐步变慢;同时,类似数据库备份、恢复、扩容等较大型操作全部造成效率变慢。所以,依据GreenplumDB产品最好时间,单个数据库对象数量,应控制在10万以内。
GP数据库对象包含:表、视图、索引、分区子表、外部表等。
假如数据表数量太多,提议按应用域进行分库,尽可能将单个数据库表数量控制在10万以内,能够在一个集群中创建多个数据库。
【备注】:在Greenplum数据库中,一张分区表,在数据库中存放为一张父表、每张分区子表全部是一张独立库表;比如:一张按月进行分区存放一年数据表,假如含默认分区,共14张表。
表创建规范
为了避免数据库表数量太多,避免单个数据表数据量过大,给系统运行和使用带来困难,在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大表,需从应用设计方面,考虑对大表进行优化,比如是否可划分为历史数据表和目前数据表,并分开存放;是否应采取压缩存放节省空间;是否合理分区;是否应定时清理数据等等。
表结构设计
字段命名
表字段命名,和表名类似。在GP系统表中保留表名称全部是以小写保留。通常SQL语句中字段名称对大小写不敏感。但不许可在建表语句中使用双引号(“”)包含字段名,这么会影响系统表中存放名称,使得表名存在大小写或特殊字符。字段命名也不许可出现汉字字。
数据类型
数据类型定义和相关数据加载和使用紧密相关,数据类型定义决定了数据所占用空间大小,所以,必需慎重设计GP数据仓库数据表字段类型。
数据仓库数据来
原创力文档


文档评论(0)