前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Vertica 分区表设计按doy分区:按月分区:创建Projection:

Vertica 分区表设计按doy分区:按月分区:创建Projection:

作者头像
Alfred Zhao
发布2019-05-24 20:42:47
1.7K0
发布2019-05-24 20:42:47
举报

Vertica数据库中的表只是一个逻辑概念。

实际存储在磁盘上的是projection。 当创建一张表,没有创建projection时,那么插入数据的时候会自动创建一个默认的projection。如果运行中发现projection不合适,可以运行dbd进行优化,得出一些建议,参考来重建projection。

如果清楚projection如何建立最优,那么建表的时候就可以在插入数据之前直接手动建立对应的projection。

代码语言:javascript
复制
Projection

Optimized collections of table columns that provide physical storage for data. A projection can contain some or all of the columns of one or more tables. A projection that contains all of the columns of a table is called a super-projection. A projection that joins one or more tables is called a pre-join projection.

导出Vertica库中原有的建表语句:

例如导出test用户下的t_jingyu表的建表语句到/tmp/t_jingyu.sql文件(需要dbadmin用户登录vsql操作): select export_objects('/tmp/t_jingyu.sql','test.t_jingyu');

vertica建分区表:

按doy分区:

代码语言:javascript
复制
create table t_jingyu(
col1 int, 
col2 varchar, 
col3 timestamp not null)
PARTITION BY (date_part('doy', t_jingyu.col3));

这样的分区表卸载时:

代码语言:javascript
复制
SELECT DROP_PARTITION('test.t_jingyu', EXTRACT('doy' FROM '2015-04-01'::date)); 

按月分区:

代码语言:javascript
复制
create table t_jingyu(
col1 int, 
col2 varchar, 
col3 timestamp not null)
partition by EXTRACT(year FROM col3)*100 + EXTRACT(month FROM col3);

插入测试数据:

代码语言:javascript
复制
insert into t_jingyu values(1,11,sysdate-1);
insert into t_jingyu values(1,11,sysdate);
insert into t_jingyu values(2,11,sysdate-33);
commit;

这样的分区表卸载时:

代码语言:javascript
复制
SELECT DROP_PARTITION('test.t_jingyu', EXTRACT('year' FROM '20150401'::date)*100 +  EXTRACT('month' FROM '20150401'::date)); 

上面就是删除201504的分区。

创建Projection:

代码语言:javascript
复制
CREATE PROJECTION t_jingyu
(
col1, 
col2, 
col3
)
AS
SELECT * FROM t_jingyu
ORDER BY col3, col1
SEGMENTED BY hash(col3) ALL NODES KSAFE 1;
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015-04-23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 导出Vertica库中原有的建表语句:
  • vertica建分区表:
    • 按doy分区:
      • 按月分区:
        • 创建Projection:
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档