
Greenplum
文章平均质量分 74
inrgihc
这个作者很懒,什么都没留下…
展开
-
两个相同结构的关系数据库表的差异比较方法
当您有两个表(或来自 SELECT 语句的结果集)要比较,并且您想查看任何列中的任何更改,以及查看 1 个表中存在哪些行而不是另一个(在任一方向)时,我发现 UNION 运算符工作得很好。基本思想是:如果我们对所有列上的两个表的并集进行 GROUP,那么如果这两个表相同,所有组将导致 COUNT(*) 为 2。但是对于在任何列上不完全匹配的任何行GROUP BY 子句,COUNT(*) 将是 1 -- 而这些就是我们想要的。我们还需要在 UNION 的每个部分添加一列来指示每行来自哪个表,否则无法区分哪原创 2021-06-15 18:48:03 · 2348 阅读 · 3 评论 -
PostgreSQL/Greenplum数据库的物化视图
一、物化视图(MATERIALIZEDVIEW)1、PG的版本PostgreSQL 9.3 版本之后开始支持物化视图。2、与普通视图的区别View 视图:虚拟,不存在实际的数据,在查询视图的时候其实是对视图内的表进行查询操作。物化视图:实际存在,将数据存成一张表,查询的时候对这个表进行操作。物化视图内的数据需要和表的数据进行同步,这就是refresh。二、实际操作1、实验环境:操作系统:CentOS 7数据库版本:PostgreSQL 10.42、初始化数据创建.原创 2021-02-04 10:30:08 · 3087 阅读 · 0 评论 -
Greenplum 的资源隔离使用
1、 问题背景Greenplum是一个MPP的数据仓库系统,最大的优点是水平扩展,并且一个QUERY就能将硬件资源的能力发挥到极致。但这也是被一些用户诟病的一点,因为一个的QUERY就可能占光所有的硬件资源,所以并发一多的话,query相互之间的资源争抢就比较严重。2、Greenplum资源隔离的手段Greenplum为了降低并发query之间的资源争抢,设计了一套基于resource queue的资源管理方法。每个resource queue定义了资源的使用或限制模式,根据用户的用途将用户指派给r转载 2020-12-23 11:37:30 · 510 阅读 · 0 评论 -
Greenplum之日常SQL记录整理(持续增加中)
1、使用generate_series函数制造测试数据CREATE TABLE "public"."cccc" ("id" int8 NOT NULL,"name" varchar(255)) DISTRIBUTED BY("id");insert into "public"."cccc" select 1, 'test' || seq::text from generate_series(1,1000000000) as g(seq);2、查看数据存储倾斜的表 SELECT curre原创 2020-12-17 18:03:36 · 570 阅读 · 0 评论 -
Greenplum数据库的碎片空间监测与回收
一、数据碎片一般来讲,PG/GP表中的数据在删除后会被标记为dead,除非进行自动的autovacuum(据数Greenplum禁用了autovacuum)或者是手动的vacuum,否则数据块不会被回收,直观的看来就是表的体积大,操作系统里表的文件臃肿不减。问题描述可参考:https://my.oschina.net/courtzjl/blog/1602713二、碎片查询通过查询pg_stat_user_tables,可以基本清除哪些表的全表扫描次数较多,表中DML哪种操作多,也可以了解垃圾数据的数原创 2020-12-10 18:09:55 · 1891 阅读 · 0 评论 -
Greenplum的备份实践知识与原理研究
Greenplum支持行存和列存,支持堆表和AO表。一、行存和列存的原理:行存,以行为形式组织存储,一行是一个tuple,存在一起。当需要读取某列时,需要将这列前面的所有列都进行deform,所以访问第一列和访问最后一列的成本实际上是不一样的。列存,以列为形式组织存储,每列对应一个或一批文件。读取任一列的成本是一样的,但是如果要读取多列,需要访问多个文件,访问的列越多,开销越大。二、堆表和AO表的原理1、堆表,实际上就是PG的堆存储,堆表的所有变更都会产生REDO,可以实现时间点恢复。原创 2020-12-10 15:10:24 · 711 阅读 · 0 评论 -
Greenplum表里的8个隐含字段
oid: 行的对象标识符(对象ID)。注意:这个字段只有在创建表的时候使用了WITH OIDS,或者是设置了配置参数default_with_oids时出现,这个字段的类型是oid(和字段同名)。OID是32位的量,是在同一个集群内通用的计数器上赋值的。对于一个大型或者长时间使用的数据库,这个计数器是有可能重叠的。因此,OID是唯一的是非常错误的想法.tableoid: 包含本行的表的OID。这个字段对那些从继承层次中选取的查询特别有用,因为如果没有它的话,我们就很难说明一行来自哪个独立.原创 2020-12-10 11:07:14 · 1339 阅读 · 0 评论 -
基于Promethues与Grafana的Greenplum分布式数据库监控的实现
一、前言Greenplum是面向数据仓库应用的分布式关系型MPP数据库,基于PostgreSQL开发,跟PostgreSQL的兼容性非常好,大部分PostgreSQL客户端工具及PostgreSQL应用都能运行在Greenplum平台上。GPCC是Greenplum数据库官方商业版的数据库监控软件,对于只能用得起开源的用户来说,只能考虑其他的监控方案了。本文里介绍一种基于Promethues与Grafana的Greenplum分布式数据库监控的实现方案。二、Promethues与Grafana简介原创 2020-09-19 22:30:42 · 3697 阅读 · 7 评论 -
Greenplum分布式数据库的一键安装方法汇总
Greenplum是面向数据仓库应用的分布式关系型MPP数据库,基于PostgreSQL开发,跟PostgreSQL的兼容性非常好,大部分PostgreSQL客户端工具及PostgreSQL应用都能运行在Greenplum平台上。对于初学者来说,如果想快速安装一个Greenplum集群来说,复杂的操作过程可能会比较麻烦,为此,本文介绍了一种在CentOS7系统下使用Docker安装Greenplum6的方法。内容大致包括如下:1、Docker环境的安装;2、Greenplum6镜像的拉取与启动;原创 2020-09-19 21:42:51 · 2627 阅读 · 10 评论 -
开源OLAP引擎 (Presto、HAWQ、ClickHouse、GreenPlum)等应用场景
SparkSQL是Hadoop中另一个著名的SQL引擎,它以Spark作为底层计算框架,Spark使用RDD作为分布式程序的工作集合,它提供一种分布式共享内存的受限形式。在分布式共享内存系统中,应用可以向全局地址空间的任意位置进行读写操作,而RDD是只读的,对其只能进行创建、转化和求值等操作。这种内存操作大大提高了计算速度。SparkSql的性能相对其他的组件要差一些,多表单表查询性能都不突出。 Impala官方宣传其计算速度是一大优点,在实际测试中我们也发现它的多表查询性能和presto差不多,但是单表转载 2020-08-09 22:00:45 · 1710 阅读 · 0 评论 -
Greenplum数据库的日常监测和维护
1、列出当前down的segment节点。检查方法:连接到postgres数据库,执行:SELECT * FROM gp_segment_configuration WHERE status <> 'u'; 判断方法:有返回,表示该segment已经down了。事件级别:warning。如果有mirror节点,不影响使用。重要程度:重要。监控频率:5-10分钟。处理方法:1、检查DOWN segment主机是否正常。2原创 2020-07-14 17:47:02 · 3230 阅读 · 0 评论 -
Greenplum数据库修改默认的最大连接数问题
一、最大连接数的查看gpconfig -s max_connections二、官方文档说明要修改最大连接数max_connections的值前,先查看官方文档的介绍: max_connections 官方参数说明:https://gpdb.docs.pivotal.io/6-8/ref_guide/config_params/guc-list.html#max_connectionsIn a Greenplum Database system, user client conne原创 2020-06-30 12:51:26 · 3950 阅读 · 1 评论 -
Oracle/MySQL/PostgreSQL数据库获取表的主键及字段信息(整理)
一、获取表的主键字段1、Oracle数据库SELECT COLUMN_NAME AS column_name FROM user_cons_columns cu, user_constraints au WHERE cu.constraint_name = au.constraint_name AND au.OWNER = 'TANG' ...原创 2020-04-30 00:26:30 · 1665 阅读 · 1 评论 -
基于Ansible的分布式MPP数据库Greenplum一键部署安装包的设计实现
一、说在前面的废话最近在工作中研究分布式MPP数据库Greenplum的一键部署安装包的制作,无意间在查看Greenplum的官网时发现了它基于ansible的相关文档,于是开始深入了解ansible及ansible-playbook的使用,并顺利实现了一个Greenplum的一键部署安装包。接下来介绍下ansible吧。二、ansible概述Ansible是一个开源配置管理工具,...原创 2020-05-28 21:28:30 · 1236 阅读 · 0 评论 -
PG/MySQL/SqlServer数据库中批量制造测试模拟数据
一、PostgreSQL/Greenplum数据库do $$begin FOR ii IN 1..10000 LOOP INSERT INTO "public"."t_tang_user_2" ( "number", "name", "sex", "card_type", "uid", "status", "pingyin", "ph...原创 2020-04-08 18:16:12 · 657 阅读 · 0 评论 -
Greenplum数据库设计与优化(总结篇)
1GP表设计1.1分布键GP作为一个MPP数据库,分布键的选择对于后期使用的性能影响非常大。即使GP运行在单机环境,GP数据也是存放在多个segment上,所以必须要选择合适的分布键,特别是从单机GPV迁移到GP上的业务,因为单机GPV不涉及分布键,所以迁移之前一定要设计好所有表的分布键。每张表必须显式指定分布键,避免使用默认分布。尽可能的避免各个节点之间的数据交互以提高性能。两表...转载 2020-04-05 22:00:17 · 1585 阅读 · 0 评论 -
使用copy命令的二进制形式向PostgreSQL/Greenplum数据库批量导入数据
Greenplum是面向数据仓库应用的关系型数据库,基于PostgreSQL开发,跟PostgreSQL的兼容性非常好。通常向PostgreSQL/Greenplum数据库中大批量写入数据,可以使用insert语句或者copy命令语句。但经实际测试经验发现,对于PostgreSQL数据库来说,insert于copy的写入速度基本差不多(参考:PG copy&insert性能对比);但对...原创 2020-05-29 22:31:26 · 5615 阅读 · 2 评论 -
基于全量比对计算同一张表前后两次全量快照数据的变化量
一、说在前面的话一些涉及数据分析处理的系统,常常需要将先将业务系统中关系数据库内的数据(离线)抽取到自己的数据库中(当前比较流行的开源MPP数据库如Greenplum)以便进行后续处理,鉴于每次进行全量数据抽取,全量分析处理代价较大,需要计算同一张表前后两次的全量数据计算变化量,这种变化量数据包括insert、update、delete等,后续分析处理只针对这些变化量数据进行,由于业务系统中变化...原创 2020-05-28 21:30:43 · 3796 阅读 · 0 评论 -
开源Greenplum数据库insert写入性能测试
一、说在前面的话 话说搞IT好久了,忙起来好久没写过文章了。这次终于在周末挤出点时间写一篇了。 近些年,大数据技术在IT界里已经是必提的话题了,甚至朋友圈里经常看到一些先前同事、项目合作公司朋友们等发的大数据相关的各种分享。 最近工作中也在做一款与数据相关的产品,不幸的是,真正遇到数据量大的时候,发现常用的MySQL等数据库真是顶不住。百度一下,当前流行的...原创 2020-06-17 15:18:44 · 6420 阅读 · 1 评论