Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Greenplum常见创建表方式与说明

Greenplum常见创建表方式与说明

原创
作者头像
小徐
修改于 2018-09-28 01:50:21
修改于 2018-09-28 01:50:21
5.1K0
举报
文章被收录于专栏:GreenplumGreenplum

1 创建Heap表

drop table if exists test_head; create table test_head(id int primary key) distributed by (id);

distributed by 表示制定分布键,便于segment储存数据

2 创建AO表

2.1 AO表不压缩

drop table if exists test_ao; create table test_ao(id int) with (appendonly=true) distributed by (id);

appendonly=true是表示AO(Append-optimized)存储表的表示,参数为true和false,例如appendonly=true或appendonly=false

2.2 AO表压缩

drop table if exists test_ao; create table test_ao(id int) with (appendonly=true, compresslevel=5) distributed by (id);

compresslevel是压缩率,取值为1~9,一般选择5就足够了,值越高压缩率越高

2.3 AO表列存压缩 与上表的压缩方式不同

drop table if exists test_ao; create table test_ao(id int) with (appendonly=true,compresslevel=5, orientation=column) distributed by (id);

orientation是对列进行压缩,写法只有orientation=column

2.3.1 对orientation参数进行测试

2.3.1.1 创建表语句

创建不对列压缩的表

CREATE TABLE **********_20180810( ******** ) WITH (appendonly=true, compresstype=zlib, compresslevel=5) DISTRIBUTED BY (pripid);

创建对列压缩的表

CREATE TABLE ********_20180812( ********* ) WITH (appendonly=true, compresstype=zlib, compresslevel=5,orientation=column) DISTRIBUTED BY (pripid);

一共15个字段

2.3.1.2 查看数据的大小

$ du -sh *******_20180922.csv 48G ********_20180922.csv

2.3.1.3 使用COPY命令导入数据

$ time psql -d stagging -h 192.****.11 -p 5432 -U gpadmin -c "\COPY *******_20180810 FROM '/data/oracle-export-data/DATA20180922/*******_20180922.csv' WITH csv DELIMITER E'\001' LOG ERRORS SEGMENT REJECT LIMIT 3000 ROWS" Password for user gpadmin:

real 11m49.978s user 1m17.379s sys 0m43.668s

time psql -d stagging -h 192.****.11 -p 5432 -U gpadmin -c "\COPY *******_20180812 FROM '/data/oracle-export-data/DATA20180922/*******_20180922.csv' WITH csv DELIMITER E'\001' LOG ERRORS SEGMENT REJECT LIMIT 3000 ROWS" Password for user gpadmin:

real 12m11.227s user 1m27.575s sys 0m50.548s

在以上结果中可以看出不对列压缩用时11m49.978s,而对列压缩的用时12m11.227s,相差23S

2.3.1.4 查看在数据库中占用的大小

select pg_size_pretty(pg_relation_size('*******_20180810')); -- 14 GB

select pg_size_pretty(pg_relation_size('*******_20180812')); -- 11 GB

使用列压缩竟然缩小了3G的空间,好恐怖,23S节省3G空间,值得拥有。

2.3.1.5 查看表的行数

select count(*) from *******_20180810; -- 156784862

select count(*) from *******_20180812; -- 156784862

3 创建HDFS外表实例

3.1 创建外部表实例

CREATE EXTERNAL TABLE  *******_20180812( ****************

) LOCATION ('gphdfs://nameservice1/tmp/******_20180812/******/*') format 'text' (delimiter E'\u0001' FILL MISSING FIELDS) LOG ERRORS SEGMENT REJECT LIMIT 3000 ROWS;

EXTERNAL外表需要添加关键字

nameservice1是HDFS的HA的地址,需要先配置好

tmp/******_20180812/*******/是HDFS上的路径

delimiter分隔符是 E'\u0001',也就是隐藏符SOH

LOG ERRORS SEGMENT REJECT说明吧错误数据放到GP默认的gp_read_error_log中

LIMIT 3000 ROWS 表示允许错误的最大的错误数,可以调大也可以调小,最小为1

3.2 查看错误数据的实例

SELECT gp_read_error_log('tableName');

错误表字段解释:

Column | Type | Modifiers ----------+--------------------------+----------- cmdtime | timestamp with time zone | --操作时间 relname | text | --表名 filename | text | --文件名 linenum | integer | --错误行号 bytenum | integer | errmsg | text | --错误信息 rawdata | text | --整行数据 rawbytes | bytea | --行大小 Distributed randomly

4 快速复制表

CREATE TABLE ********_20180814 WITH ( appendonly = TRUE, compresstype = zlib, compresslevel = 5, orientation = column ) AS SELECT * FROM **********_20180812 Distributed BY (pripid)

查看执行的执行的时间

**************

FROM ********_20180812 Distributed BY (pripid)

时间: 69.977s

受影响的行: 1,5678,4862

可以看出用时 69.977s导入1,5678,4862行的数据

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Greenplum数据库使用总结(干货满满)--常见创建TABLE方式
create table test_head(id int primary key) distributed by (id);
小徐
2019/08/05
3.1K0
Greenplum数据库使用总结(干货满满)--常见创建TABLE方式
Greenplum高级使用
stagging=#  select gp_segment_id,count(1) from  tablename  group by 1;
小徐
2019/01/28
1.6K1
Greenplum高级使用
Greenplum数据库使用总结(干货满满)--高级使用
stagging=# select gp_segment_id,count(1) from tablename group by 1;
小徐
2019/08/05
3.9K0
Greenplum gpload命令使用
Runs a load job as defined in a YAML formatted control file.
小徐
2018/12/20
2.9K0
Greenplum  gpload命令使用
Greenplum性能优化之路 --(二)存储格式
Greenplum(以下简称GP)有2种存储格式,Heap表和AO表(AORO表,AOCO表)。
lambgong
2019/02/20
17.8K3
Greenplum性能优化之路 --(二)存储格式
HAWQ技术解析(七) —— 存储分布
        在HAWQ中创建一个表时,应该预先对数据如何分布、表的存储选项、数据导入导出方式和其它HAWQ特性做出选择,这些都将对数据库性能有极大影响。理解有效选项 的含义以及如何在数据库中使用它
用户1148526
2018/01/03
2.2K0
HAWQ技术解析(七) —— 存储分布
Snova运维篇(九):gp数据库中数据的基本操作-1
一个表空间可以让多个数据库使用;而一个数据库可以使用多个表空间。属于"多对多"的关系。
snova-最佳实践
2019/12/30
2.4K0
Snova运维篇(九):gp数据库中数据的基本操作-1
Greenplum系统参数对性能的影响
数据库中表储存的模式对性能的影响 HEAP表 行存 不压缩 行存 AO表 (orientation=row) 可压缩 (appendonly=true) 列存 (compresstype=zlib,COMPRESSLEVEL=5) (orientation=column) 类型 创建说明 特点 堆表(heap) 默认或appendonly=false 表中数据不能压缩,堆表只能是行存表,适合数据经常更新,删除,的oltp类型的负载,通常表中的数据量不大,适合用作维度表 追加优化表 appendon
小徐
2021/04/22
1.5K0
Greenplum系统参数对性能的影响
greenplum链接kafka写入与导出数据
15 Greenplum 外接工具 15.1 安装kafka 15.1.1 安装kafka 安装教程请查看:https://www.jianshu.com/p/9d48a5bd1669 15.1.2 准备kafka的环境 创建topic # bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic topic_for_gpkafka 查看topic 集合 $
小徐
2019/10/17
1.2K0
greenplum链接kafka写入与导出数据
14.1 greenplum与kafka连接
Kafak作为数据流是比较常用的,接下来就用greenplum对接一下kafka,参考官方资料:
小徐
2019/08/05
1.9K0
14.1 greenplum与kafka连接
Greenplum数据库快速调优
为进程分配内存的百分比,默认是50,vm.overcommit_memory = 2 的情况下生效
小徐
2021/01/27
2.8K0
Greenplum数据库快速调优
GreenPlum分布式数据库存储及查询处理
Greenplum是一个分布式数据库系统,因此其所有的业务数据都是物理存放在集群的所有Segment实例数据库上;在Greenplum数据库中所有表都是分布式的,所以每一张表都会被切片,每个Segment实例数据库都会存放相应的数据片段。在下图中sale、customer、vendor、product四张表的数据都会切片存放在所有的Segment上,所有Segment实例同时工作,由于每个Segment只需要计算一部分数据,所以计算效率会大大提升。
AiDBA宝典
2023/11/16
1.3K0
GreenPlum分布式数据库存储及查询处理
GreenPlum中的数据库对象
greenplum Schema 是 Database中逻辑组织object和data。 在同一Database中,不同schema的对象可以使用相同的名称。
AiDBA宝典
2023/11/01
1.1K0
GreenPlum中的数据库对象
Greenplum转换DATE数据类型问题
在工作中使用Greenplum外表时发现date类型中有null或空值,外表不识别类型,问题解答思路,先使用varchar类型把外表的数据加载到Greenplum,在使用数据类型转化转化为date即可。
小徐
2019/08/05
1.1K0
Greenplum转换DATE数据类型问题
mxgate是gpcopy同步速度的2倍
1、检查greenplum和matrix的版本信息时候一致,因为gpcopy会校验版本
小徐
2021/10/27
8700
mxgate是gpcopy同步速度的2倍
GP使用
为进程分配内存的百分比,默认是50,vm.overcommit_memory = 2 的情况下生效
用户9810185
2022/06/08
1.7K0
Greenplum转换DATE数据类型问题
在工作中使用Greenplum外表时发现date类型中有null或空值,外表不识别类型,问题解答思路,先使用varchar类型把外表的数据加载到Greenplum,在使用数据类型转化转化为date即可。
小徐
2018/10/16
2.4K0
Greenplum转换DATE数据类型问题
Greenplum 列存表(AO表)的膨胀和垃圾检查与空间收缩
Greenplum支持行储存(HEAP储存)与列(append-only)储存,对于AO存储,虽然是appendonly,但实际上GP是支持DELETE和UPDATE的,被删除或更新的行,通过visimap来标记记录的可见性和是否已删除。AO存储是块级组织,当一个块内的数据大部分都被删除或更新掉时,扫描它浪费的成本实际上是很高的。而PostgreSQL是通过HOT技术以及autovacuum来避免或减少垃圾的。但是Greenplum没有自动回收的worker进程,所以需要人为的触发。接下来就分析AO表与HEAP表的问题以及如何解答,执行空间的释放有3中方法分别是:
小徐
2020/10/26
2.7K0
Greenplum 列存表(AO表)的膨胀和垃圾检查与空间收缩
Greenplum支持行储存(HEAP储存)与列(append-only)储存,对于AO存储,虽然是appendonly,但实际上GP是支持DELETE和UPDATE的,被删除或更新的行,通过BITMAP来标记删除与修改。AO存储是块级组织,当一个块内的数据大部分都被删除或更新掉时,扫描它浪费的成本实际上是很高的。而PostgreSQL是通过HOT技术以及autovacuum来避免或减少垃圾的。但是Greenplum没有自动回收的worker进程,所以需要人为的触发。接下来就分析AO表与HEAP表的问题以及如何解答,执行空间的释放有3中方法分别是:
小徐
2018/10/12
4.3K2
Greenplum 列存表(AO表)的膨胀和垃圾检查与空间收缩
Greenplum链接kafka导入与导出数据
15 Greenplum 外接工具 1 15.1 安装kafka 1 15.1.1 安装kafka 1 15.1.2 准备kafka的环境 1 15.2 greenplum外表加载kafka数据 2 15.2.1 准备测试数据 2 15.2.2 编写加载kafka文件 2 15.2.3 创建数据库表 3 15.2.4 使用gpkafka命令插入数据 4 15.2.5 查看数据库保存的偏移量 5 15.2.6 测试复杂数据量的性能 5 15.2.6.1 测试数据 5 152.6.2 查看数据库数据 7 15.
小徐
2019/10/22
1.5K0
Greenplum链接kafka导入与导出数据
相关推荐
Greenplum数据库使用总结(干货满满)--常见创建TABLE方式
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档