GreenPlum使用日志

1、登录
 应用程序可以使用Postgresql jdbc驱动包连接GreenPlum(GP)数据库,命令行登录GP:

 

写道
su - gpadmin
// psql -h 192.168.1.2 -d test -U user
psql -h ip -d dbname -U user

 

2、创建表
创建表模板如下,主要注意标红色的地方:
With:指定创建表时存储参数(列或行存储、是否压缩等)
Distribute:数据分布方式指定具体列(Hash或随机)
Partition:节点数据分区(按范转或列值分区)

CREATE [[GLOBAL | LOCAL] {TEMPORARY | TEMP}] TABLE table_name(
[ { column_name data_type[ DEFAULT default_expr]
[column_constraint[ ... ]
[ ENCODING ( storage_directive[,...] ) ]
]
| table_constraint
| LIKE other_table[{INCLUDING | EXCLUDING}
{DEFAULTS | CONSTRAINTS}] ...}
[, ... ] ]
)
[ INHERITS ( parent_table[, ... ] ) ]
[ WITH ( storage_parameter=value[, ... ] )
[ ON COMMIT {PRESERVE ROWS | DELETE ROWS | DROP} ]
[ TABLESPACE tablespace]
[ DISTRIBUTED BY (column, [ ... ] ) | DISTRIBUTED RANDOMLY ]
[ PARTITION BY partition_type(column)
[ SUBPARTITION BY partition_type(column) ]
[ SUBPARTITION TEMPLATE ( template_spec ) ]
[...]
( partition_spec)
| [ SUBPARTITION BY partition_type(column) ]
[...]
( partition_spec
[ ( subpartition_spec
[(...)]
) ]
)

 

/**With下的存储参数如下*/
// true=列式存储 false=行式存储
APPENDONLY={TRUE|FALSE}
// 数据块大小 
BLOCKSIZE={8192-2097152}
ORIENTATION={COLUMN|ROW}
CHECKSUM={TRUE|FALSE}
// 数据压缩类型
COMPRESSTYPE={ZLIB|QUICKLZ|RLE_TYPE|NONE}
// 数据存储压缩级别,查询时减少IO
COMPRESSLEVEL={1-9}
FILLFACTOR={10-100}
// 创建表时默认为false
OIDS[=TRUE|FALSE]

 

CREATE TABLE "public"."test" (
"user" varchar(15),
"namd" varchar(2),
"create" date,
"zt" NUMERIC(2)
)
WITH (orientation=column,appendonly=true,compresslevel=5) 
distributed randomly
partition by range(create)
(
	partition p201501 start ('2015-01-01'::date) end ('2015-02-01'::date),
	partition p201502 start ('2015-02-01'::date) end ('2015-03-01'::date)
);

 

3、数据导入
  实时数据写入慢,一般都是通过外部表、文件的方式将数据导入表。另外可能以通过Create table AS 或Insert into table query 数据非常快。
  GP索引类型支持Btree、Bitmap

 

4、函数 
  GP为Postgresql升级过来的产品,大部份Postgresql函数在GP支持分析函数与窗口函数等
日期常用函数:to_date、to_char、date_part、date_truct

    

5、百亿级数据范围查询, 分组排序窗口取值 极致优化
https://yq.aliyun.com/articles/39680

 

6、distinct xx和count(distinct xx)的变态递归优化方法 写道
https://yq.aliyun.com/articles/39689

  

7、Postgresql资料大全 写道
https://yq.aliyun.com/articles/59251?spm=5176.100240.searchblog.7.HrJbXr

 

注意项 写道
1)创建分区表后,再创建相关索引,执行统计分析或查询时不走索引?
先执行 anlysize table
2)采用ORACLE SQL预编译方法行不通(查询更慢),直接采用SQL并接查询效率更高

 

你可能感兴趣的:(GreenPlum)