Greenplum
魂醉
这个作者很懒,什么都没留下…
展开
-
Greenplum多级分区表添加分区报错ERROR: no partitions specified at depth 2
一般来说,我们二级分区表都会使用模版,如果没有使用模版特性,那么就会报ERROR: no partitions specified at depth 2类似的错误。因为没有模版,必须要显式指定分区。建表的时候,最好添加二级分区以后的模版,模版也可以后面变更,如果不加模版,添加分区的时候,必须指定子分区,所以分区级别越多,越复杂。当然我们在建表的时候,如果没有指定,那么后面也可以通过alter table 语句进行添加。下面我们通过一个例子看一下。原创 2023-08-18 14:18:48 · 1072 阅读 · 0 评论 -
Greenplum gpcopy 安装使用介绍
首先这款工具是两个greenplum集群之间迁移数据的时候使用的,可以迁移完整的数据库,或者是表,可以跨版本迁移,兼容Greenplum Database 4.3.26 以上版本, 以及5.9 以上, 6.x版本。效率上面要比之前的gptransfer要高,因为是segment之间可以实现并行对拷,但是我这里不会做比对。目前最新版本为2.2版本。下载地址:https://network.pivotal.io/products/gpdb-data-copy安装步骤:1.解压安装包tar xzvf原创 2020-07-01 17:52:10 · 2000 阅读 · 4 评论 -
Greenplum6.0.1 c函数报错ERROR:Old style C function (API version 0) are no longer supported by Greenplum
事件背景:之前的GP是4.30.0版本的,pg的版本是8.2.15,现在新的版本是6.0.1,pg的版本是9.4.24编译之前的加密解密函数,报错ERROR: Old style C function (API version 0) are no longer supported by Greenplum,无法使用,这里告知我们不支持version0的调用方式了。大版本是9.4版本,所以根...原创 2019-12-18 16:29:13 · 589 阅读 · 0 评论 -
Datax 数据抽取同步
介绍一款开源的ETL工具https://github.com/alibaba/DataX下载软件包:wget http://datax-opensource.oss-cn-hangzhou.aliyuncs.com/datax.tar.gz解压并赋予权限:tar -zxvf datax.tar.gzchmod 755 datax同步实例:创建表han原创 2017-12-04 14:30:55 · 6805 阅读 · 0 评论 -
Greenplum copy ... from stdin无法终止session
Greenplum数据同步任务失败,导致一直等待stdin的输入,数据库内pg_terminate_backend无效,如下:gpadmin=# select datname,procpid,sess_id,current_query from pg_stat_activity ;warehouse | 43828 | 343292 | copy hank from stdi原创 2017-12-18 17:19:08 · 1305 阅读 · 0 评论 -
Greenplum多级分区表
现实生产环境中,一些大表免不了需要进行拆分,那么这里我们介绍一下Greenplum对大表的处理方法一般我们表都是堆表,按行存储的,Greenplum支持列存储,并且支持数据压缩如果当你的表大到一个度,那么就需要进行逻辑上的拆分,将一张大表拆分为多张小表,这样可以提升相关表操作的效率,一般我们的行存储在返回多列的效率上比较高,所以一般OLTP都是使用行存储,列存储更适合用于统计的相关原创 2018-04-18 17:21:37 · 3331 阅读 · 3 评论 -
Greenplum分区表维护
添加分区 CREATE TABLE sales (trans_id int, date date, amount decimal(9,2), region text) DISTRIBUTED BY (trans_id) PARTITION BY RANGE (date) SUBPARTITION BY LIST (region) SUBPARTITION TEMPLA...原创 2018-04-20 09:41:40 · 3603 阅读 · 1 评论 -
Greenplum如何选择表的存储方式---heap table or append optimized table?
Greenplum在创建表的时候可以选择表存储方式,比如是行存储,还是列存储,是普通的heap表,还是append optimized表。下面分别介绍以下行存储是行为单位存储数据,一行中越是靠后的列,那么查询需要的cost相对越大,这个以前oracle做过相应比较,都是一样的道理,行存储更适合OLTP的系统列存储是以列为单位存储数据,物理上一列会对应一个或者多个数据文件,而且列存储的压缩比比较高,...原创 2018-04-20 17:27:09 · 4289 阅读 · 0 评论 -
Greenplum upgrade from 4.3.4.1 to 4.3.30.0 准备工作
2015年升级后,最近几年没有进行升级,最近查看官网看到已经升级到了4.3.30.0版本,对一些工具都打了补丁,具体可见链接https://gpdb.docs.pivotal.io/43300/relnotes/GPDB_43300_README.html升级前的准备工作1.保证升级可以回滚2.按官方文档提示的升级相关视图,修改相关参数第一步首先保证greenplum 4.3.4....原创 2018-11-06 16:31:22 · 351 阅读 · 0 评论 -
Greenplum upgrade from 4.3.4.1 to 4.3.30.0
这一篇主要介绍升级,升级步骤1.切换至gpadmin用户,关闭仓库2.在主节点运行4.3.30.0的bin文件3.升级使用的是软连接,所以只要建立相关目录的软连接即可4.在所有segment节点安装软件5.检查C语言库文件6.启动仓库1.关闭仓库su - gpadmingpstop -M fast2.解压并在master节点安装新版本的greenplumunz...原创 2018-11-06 17:04:07 · 452 阅读 · 0 评论 -
greenplum4.3.30.0安装pgcrypto加密插件
由于要和现网进行加密解密对接,需要用到改插件,这里只介绍安装,使用和pg一样,但是由于4.3.30是基于8.2.15的postgresql的,所以decrypt相关函数解码出来的是bytea类型没有convert_from函数来转换,如果是通过encode将bytea转化为ascii-only text string的,可以使用decode,如果是中文,因为ascii的原因,所以不能转换为中文,这...原创 2018-12-21 09:46:50 · 1167 阅读 · 0 评论 -
greenplum和postgresql编译c函数
由于业务需求,GP版本的加密软件无法达到预期效果,所以自己开始自己写c函数实现了同样的原理,这里只介绍下如何在GP和PG下使用GP安装,版本4.3.30.0在master节点编译c代码,然后将.so文件复制到对应目录,并且要在所有segment节点都复制到对应目录下gcc -m64 -O3 -funroll-loops -fargument-noalias-global -g -fin...原创 2018-12-27 14:07:12 · 563 阅读 · 0 评论 -
Greenplum监控项
硬件层面可以使用snmp协议,也可以使用第三方监控软件,比如zabbix,ganlia,nagios等等下面主要列一下GP内部的监控项可以通过以下自带的命令检查GP的状态信息gpstate需要更加详细一些的信息,加上-sgpstate -sgpstate -mgpstate -cgpstate -f检查磁盘空间使用,GP里面就可以查看到对应分区的使用情况warehouse...原创 2019-04-26 10:22:09 · 1407 阅读 · 0 评论 -
CentOS7系统下安装Greenplum4.3.30.4
安装步骤概览:1.系统相关配置修改2.Greenplum安装OS版本:CentOS Linux release 7.6.18101.系统相关配置修改节点分布规划:192.168.173.58 master192.168.173.87 standby192.168.173.95 segment192.168.175.74 segment192.168.173.234 s...原创 2019-04-24 14:50:47 · 426 阅读 · 0 评论 -
gpperfmon-cc-web安装监控greenplum
1.创建gpperfmon数据库并且验证gpperfmon_install --enable --password gpadmin --port 1921gpstop -rpsqlps -ef | grep gpmmongpadmin 23576 23567 0 15:40 ? 00:00:02 /usr/local/greenplum-db-4.3.30.4/bi...原创 2019-04-24 17:27:40 · 657 阅读 · 0 评论 -
Greenplum 分区表介绍
Greenplum 分区表Greenplum分区表的原理和postgresql的原理相同,都是把一张大表进行按照适合的维度进行分割,通过表的继承,规则,约束实现的。在Greenplum中,一个表是否分区表保存在pg_partition中.GP在建表的时候会有一个DISTRIBUTED BY选项,这个是表进行物理拆分,理解一下分区和分布:1.分区,按照字段逻辑进行逻辑划分的区原创 2017-10-16 15:02:07 · 8448 阅读 · 0 评论 -
Greenplum template0 年龄冻结
template0数据库默认是不允许连接的,可以查看pg_database看对应字段,如下:datallowconn字段为f,不允许连接gpadmin=# select * from pg_database where datname='template0';-[ RECORD 1 ]-+---------------------------------datname原创 2017-09-01 11:15:57 · 1751 阅读 · 0 评论 -
Greenplum segment 锁处理
最近遇到truncate表,无法清理的情况,在master节点查看加锁情况,并未加锁这种情况极有可能是segment节点相关表加了锁,所以遇到这种情况除了排查master节点的锁,所有的segment也要查看锁的持有情况,然后根据情况,进行处理。查看segment锁情况select gp_execution_dbid(), pid, relation::regclass, lo原创 2017-09-07 10:48:09 · 2168 阅读 · 0 评论 -
Greenplum add segments
接前面的环境新增两台服务器192.168.100.34192.168.100.142两台服务器分别配置系统参数,建立相关数据目录,root执行以下命令useradd gpadminmkdir -p /data01/gpadmin/gpdata/primary_hankmkdir -p /data01/gpadmin/gpdata/mirror_hankmkdir -...原创 2017-03-23 11:03:04 · 659 阅读 · 0 评论 -
Greenplum gpfdist使用
192.168.101.116gpfdist -d /data02/files/ -p 8081 -l /data02/files/gpfdist.log -m 102400000 &需要读取的文件:cat /data02/files/test.txt 1,apple2,banana3,pumk4,plantegg5,orange6,water原创 2017-03-31 15:16:18 · 9069 阅读 · 0 评论 -
Greenplum 字符串行列转换函数
Greenplum 字符串行列转换函数hank=> create table test (id bigint,str text) DISTRIBUTED BY (id);CREATE TABLEhank=> insert into test values(1,'dazuiba');INSERT 0 1hank=> insert into test values(1,'appl原创 2017-03-31 15:17:51 · 4363 阅读 · 0 评论 -
Greenplum 参数级别
GP的master和segment节点都有自己的postgresql.conf如果要全局改变,那么可以通过以下命令配置:gpconfig -c gp_vmem_protect_limit -v 4096gpconfig -c max_connections -v 100 -m 10 -v表示修改segment节点参数,-m表示master节点gpconfig -r xxxxx 重原创 2017-03-31 15:18:51 · 1242 阅读 · 0 评论 -
Greenplum 增加standby以及master-standby切换
master:db-192-168-101-115pg_ctl stop -D /data01/gpadmin/gpdata/master/gpseg-1/ //模拟故障standby:db-192-168-101-116gpactivatestandby -d /data01/gpadmin/gpdata/master/gpseg-1 //激活standby原创 2017-03-31 15:20:25 · 1677 阅读 · 0 评论 -
Greenplum recover failed segment
在做segment恢复之前,先看下如何检查segment状态:通过命令查看:gpstate -e20170329:09:43:16:019934 gpstate:db-192-168-101-115:gpadmin-[INFO]:-Starting gpstate with args: -e20170329:09:43:16:019934 gpstate:db-192-168-10原创 2017-03-31 15:21:57 · 902 阅读 · 0 评论 -
Greenplum full backup
GP由于有多个segment,自带了gpcrondump备份工具,gpcrondump是gp_dump的封装.新版本gp_dump已经不推荐使用,建议大家使用gpcrondumpgpcrondump默认都会产生一个子目录db_dumps,通过-u指定目录,如果不指定,默认在MASTER_DATA_DIRECTORY环境变量下面下图是gpcrondump示意图,看见是并行备份,mast...原创 2017-03-31 15:23:29 · 820 阅读 · 0 评论 -
Greenplum install
架构:master主要建立与客户端的连接,收集segment的执行结果,不存放业务数据,可以一主一备segment业务数据存放处,执行master分发的SQL,一台机器可以配置多个segment,segment分primary和mirror四台服务器搭建测试环境192.168.101.115 master192.168.101.116 segment+standby...原创 2017-03-16 15:13:24 · 591 阅读 · 0 评论 -
Greenplum gpdbrestore 全量恢复
参数介绍:-a (do not prompt) -B 并发数-d master目录设置,一般master都会设置这个环境变量-e 恢复之前是否删除数据库-G [include|only] 如果是only只恢复global对象-l 指定日志目录-m 只恢复元数据-R : 如果备份文件不在默认路径下,可以使用-R指定恢复的路径-s 指定数据库名--trun原创 2017-04-17 14:56:26 · 1517 阅读 · 0 评论 -
greenplum segment down 实例
由于数据分析师语句问题,导致segment好几个节点down那么需要恢复segmentgpstop -r -M fast此处省略一万字20170629:14:38:30:041991 gpstop:192-168-102-67:gpadmin-[INFO]:-Stopping master standby host 192.168.102.68 mode=fast2017062原创 2017-06-29 16:10:06 · 1117 阅读 · 0 评论 -
Greenplum定期vacuum系统表以及定期删除日志
1.系统表定期vacuum,重建索引建议定期vacuum系统表并重建索引,以下脚本可以定期执行#!/bin/bashDBNAME=""SYSTABLES="' pg_catalog.' || relname || ';' from pg_class a, pg_namespace b where a.relnamespace=b.oid and b.nspname='pg_ca原创 2017-08-18 15:55:53 · 6267 阅读 · 0 评论 -
Greenplum:ARNING: database "xxxx" must be vacuumed within xxxx transactions,HINT: To avoid a databas
Greenplum告警错误检查master数据库年龄gpadmin=# SELECT datname, datfrozenxid ,age(datfrozenxid) FROM pg_database ORDER BY 1 DESC ;检查segment数据库年龄gpadmin=# SELECT gp_segment_id,datname, age(datfrozenxid) FROM gp_di原创 2017-08-14 10:45:01 · 6821 阅读 · 0 评论 -
Greenplum 临时表年龄问题
目前在使用的greenplum是基于postgresql 8.2.*版本的之前写过一篇文章,可以使用vacuum freeze来冻结年龄但是正常情况下,Greenplum是用作OLAP来使用的,所以数据量会比较大,手工做全库的freeze明显是不现实的目前实际情况是大批的临时表存在,而且年龄很高,这个估计是8.2版本的bug,因为临时表都是随着session结束而消失的。但原创 2017-08-14 15:44:23 · 2819 阅读 · 0 评论 -
Greenplum Resource Queue (资源队列)
在4.x版本后,加入了资源队列的概念,资源队列是为了限制资源的消耗,更加合理的分配资源主要可以限制的资源如下:1.MEMORY_LIMIT 内存限制2.ACTIVE_STATEMENTS 最多并发运行的SQL3.PRIORITY 优先级,和CPU相关4.MAX_COST 执行计划中SQL语句可以达到最大的COST5.MIN_COST 低于这个值则绕过队列限制,原创 2017-08-15 14:23:24 · 4636 阅读 · 0 评论 -
Greenplum tablespace与filespace的关系
GP里面和PG不同的是,多了个filespace概念,在GP里面tablespace必须建立在filespace上面,所以建立表空间之前,先要有指定的filespacefilespace可以认为是多个文件目录的集合,可以对应一个或者多个tablespace下面介绍一下创建filespace的实例:1. su - gpadmin2. 创建新的目录赋予权限1原创 2017-03-17 17:38:40 · 1837 阅读 · 0 评论