greenplum数据库最佳实践

greenplum数据库最佳实践

ID:33708368

大小:68.65 KB

页数:47页

时间:2019-02-28

greenplum数据库最佳实践_第1页
greenplum数据库最佳实践_第2页
greenplum数据库最佳实践_第3页
greenplum数据库最佳实践_第4页
greenplum数据库最佳实践_第5页
资源描述:

《greenplum数据库最佳实践》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、❖介绍本文介绍PivotalGreenplumDatabase数据库(以下简称:Greenplum数据库,或GPDB)的最佳实践。最佳实践是指能持续产生比其他方法更好结杲的方法或者技术,它来自于实战经验,并被证实了遵循这些方法可以获得可靠的预期结果。本最佳实践旨在通过利用所有可能的知识和技术为正确使用GPDB提供有效参考。本文不是在教您如何使用Greenplum数据库的功能,而是帮助您在设计、实现和使用Greenplum数据库时了解盂要遵循哪些最佳实践。关于如何使用和实现具体的Greenplum数据库特性,请参考http://gpdb.docs.pivotal.

2、io上的Greenplum数据库帮助文档以及http://greenplum.org上的Sandbox和实践指南。本文目的不是要涵盖整个产品或者产品特性,而是概述GPDB实践中最重要的因素。本文不涉及依赖于GPDB具体特性的边缘用例,后者需要精通数据库特性和您的环境,包括SQL访问、查询执行、并发、负载和其他因素。通过掌握这些最佳实践知识,会增加GPDB集群在维护、支持、性能和可扩展性等方面的成功率。第一章最佳实践概述本部分概述了Greenplum数据库最佳实践所涉及的概念与要点。数据模型堆存储和追加优化存储(Append-Optimized,下称A0)若表和分

3、区表需要进行迭代式的批处理或者频繁执行单个UPDATE.DELETE或INSERT操作,使用堆存储。若表和分区表需要并发执行UPDATE、DELETE或INSERT操作,使用堆存储。若表和分区表在数据初始加载后更新不频繁,且仅以批处理方式插入数据,则使用A0存储。不要对A0表执行单个INSERT、UPDATE或DELETE操作。不要对A0表执行并发批量UPDATE或DELETE操作,但可以并发执行批量INSERT操作。详见堆存储和A0存储(后续章节)行存储和列存储若数据需要经常更新或者插入,则使用行存储。若需要同时访问一个表的很多字段,则使用行存储。对于通用或者

4、混合型业务,建议使用行存储。若查询访问的字段数目较少,或者仅在少量字段上进行聚合操作,则使用列存储。若仅常常修改表的某一字段而不修改其他字段,则使用列存储。详见行存储和列存储(后续章节)压缩对于大A0表和分区表使用压缩,以提高系统I/O。在字段级別配置压缩。考虑压缩比和压缩性能之间的平衡。详见压缩(后续章节)分布为所有表定义分布策略:要么定义分布键,要么使用随机分布。不要使用缺省分布方式。优先选择可均匀分布数据的单个字段做分布键。不要选择经常用于WHERE子句的字段做分布键。不要使用口期或时I'可字段做分布键。分布键和分区键不要使用同一字段。対经常执行JOIN操

5、作的大表,优先考虑使用关联字段做分布键,尽量做到本地关联,以提高性能。数据初始加载后或者每次增量加载后,检查数据分布是否均匀。尽可能避免数据倾斜。详见分布(后续章节)内存管理设置vm.overcommit_memory为2不要为操作系统的页设置过大的值使用gp_vmem_protect_limit设置单个节点数据库(SegmentDatabase)可以为所有査询分配的最大内存量。不要设置过高的gp_vmem_protect_limit值,也不要大于系统的物理内存。gp_vmem_protect_limit的建议值计算公式为:(SWAP+(RAMvm.overco

6、mmit_ratio))0.9/number_Segments_per_server使用statement_mem控制节点数据库为单个查询分配的内存量。使用资源队列设置队列允许的当前最大查询数(ACTIVE_STATEMENTS)和允许使用的内存大小(MEMORYLIMIT)。不要使用默认的资源队列,为所有用户都分配资源队列。根据负载和时间段,设置和队列实际需求相匹配的优先级(PRIORITY)。保证资源队列的内存配额不超过gp_vmem_protect_limito动态更新资源队列配置以适应tl常工作需要。详见内存和负载管理(后续章节)分区只为大表设置分区,不

7、要为小表设置分区。仅在根据查询条件可以实现分区裁剪时使用分区表。建议优先使用范围(Range)分区,否则使用列表(List)分区。根据查询特点合理设置分区。不要使用相同的字段即做分区键又做分布键。不要使用默认分区。避免使用多级分区;尽量创建少量的分区,每个分区的数据更多些。通过查询计划的EXPLAIN结果来验证查询对分区表执行的是选择性扫描(分区裁剪)。对于列存储的表,不要创建过多的分区,否则会造成物理文件过多:Physicalfiles=SegmentsColumnsPartitions。详见分区(后续章节)索引一般來说GPDB中索引不是必需的。对于高基数的列

8、存储表,如果需要遍历且查

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。