Vertica 分区表设计(续)

时间:2022-03-07 13:21:25

在上篇Vertica 分区表设计中,已经提过了Vertica的分区表创建和分区删除,但举例上并不系统,

本篇文章将系统的对分区表设计及后续的删除分区进行讲解。

概述:Vertica分区表(天和月)创建以及删除分区

1.分区表创建

Vertica分区表可以使用预定义函数创建,有特殊需求时,也可以自定义函数创建。
我这里测试均是以业务用户test登录建表: vsql -Utest

1.1 使用预定义函数创建分区表

按天分区(doy)

--按天分区(doy)
create table t_jingyu_doy(
col1 int,
col2 varchar,
col3 timestamp not null)
PARTITION BY (date_part('doy', col3));

按月分区(month)

--按月分区(month)
create table t_jingyu_month(
col1 int,
col2 varchar,
col3 timestamp not null)
PARTITION BY (date_part('month', col3));

1.2 使用自定义函数创建分区表

按天分区

--按天分区
create table t_day(
col1 int,
col2 varchar,
col3 timestamp not null)
PARTITION BY (EXTRACT(year FROM col3)*10000
+ EXTRACT(month FROM col3)*100 +
EXTRACT(day FROM col3));

按月分区

--按月分区
create table t_month(
col1 int,
col2 varchar,
col3 timestamp not null)
PARTITION BY (EXTRACT(year FROM col3)*100 +
EXTRACT(month FROM col3));

2.查询业务表的基本信息

查询业务表的基本信息:
```
--所有表
select table_schema, owner_name, table_name,
partition_expression from tables;
--未分区的表
select table_schema, owner_name, table_name,
partition_expression from tables where partition_expression='';
--分区的表
select table_schema, owner_name, table_name,
partition_expression from tables where partition_expression '';
```

3.Vertica入库测试数据

入库须知:
• 数据库字符集utf-8
• 入库文件编码格式: utf-8无BOM格式编码
• 主机系统字符集: zh_CN.UTF-8
• CRT软件字符集: utf-8

我们这里入库2年(每天1条)的测试数据供后面讲解删除分区数据用。 col3时间列是2年中每一天的时间。

入库具体方法可以参见:Vertica 业务用户指定资源池加载数据

4.删除历史分区数据

## 4.1 删除历史分区数据(使用预定义函数创建的分区表) ##
```
--按天分区(doy),删除”2015-08-01”这一时间的分区数据
SELECT DROP_PARTITION('test.t_jingyu_doy', EXTRACT('doy' FROM '2015-08-01'::date));
test=> SELECT DROP_PARTITION('test.t_jingyu_doy', EXTRACT('doy' FROM '2015-08-01'::date));
DROP_PARTITION
-------------------
Partition dropped
(1 row)
测试结论:实际删除2天的数据, 2015和2016年的这一天数据都被删除, 而且第二年不一定就是8月1日。

--按月分区(month),删除”2015-08”这一个月的分区数据

SELECT DROP_PARTITION('test.t_jingyu_month', EXTRACT('month' FROM '2015-08-01'::date));

test=> SELECT DROP_PARTITION('test.t_jingyu_month', EXTRACT('month' FROM '2015-08-01'::date));

DROP_PARTITION

Partition dropped

测试结论:实际删除2个月的数据, 2015和2016年的8月份的数据。

## 4.2 删除历史分区数据(使用自定义函数创建的分区表) ##

--按天分区,删除2015-08-01这一时间的分区数据

SELECT DROP_PARTITION('test.t_day', 20150801);

test=> SELECT DROP_PARTITION('test.t_day', 20150801);

DROP_PARTITION

Partition dropped

(1 row)

--按月分区,删除2015-08这一个月的分区数据

SELECT DROP_PARTITION('test.t_month', 201508);

test=> SELECT DROP_PARTITION('test.t_month',201508);

DROP_PARTITION

Partition dropped


<h1 id="5">Reference</h1>
本篇内容其实之前在我给公司项目组的培训中已经提过,但未在博客中整理,现在更新到博客。
附当时培训视频和资料的云盘地址:https://pan.baidu.com/s/1c2LuZSW

Vertica 分区表设计(续)的更多相关文章

  1. Vertica 分区表设计

    Vertica数据库中的表只是一个逻辑概念. 实际存储在磁盘上的是projection. 当创建一张表,没有创建projection时,那么插入数据的时候会自动创建一个默认的projection.如果 ...

  2. 《c&num; 实现p2p文件分享与传输系统》 二、 设计 - 续(NAT穿透)

    c#实现P2P文件分享与传输系统 二.设计 - 续(NAT穿透) 首先要抱歉,因为这些日子较忙,没有写文章,这个系列拖了很久,现在开始继续.  上一篇文章介绍了p2p系统Tracker Server和 ...

  3. 电商系统中的商品模型的分析与设计&mdash&semi;续

    前言     在<电商系统中的商品模型的分析与设计>中,对电商系统商品模型有一个粗浅的描述,后来有博友对货品和商品的区别以及属性有一些疑问.我也对此做一些研究,再次简单的对商品模型做一个介 ...

  4. Vertica 数据库知识汇总篇

    Vertica 数据库知识汇总篇(更新中..) 1.Vertica 集群软件部署,各节点硬件性能测试 2.Vertica 创建数据库,创建业务用户测试 3.Vertica 数据库参数调整,资源池分配 ...

  5. Vertica集群扩容实验过程记录

    需求: 将3个节点的Vertica集群扩容,额外增加3个节点,即扩展到6个节点的Vertica集群. 实验环境: RHEL 6.5 + Vertica 7.2.2-2 步骤: 1.三节点Vertica ...

  6. The Vertica Analytic Database:C-Store 7 Years Later笔记

    1.设计目标 Vertica数据库可以说是7年之后的C-Store,在2012年发表的这样一篇论文,描述了现在基于C-Store的一部分改进,当然,Vertica借鉴了很多C-Store的思想,但并非 ...

  7. Vertica性能分析

    Vertica的特点简单的说可以总结为:列存储.MPP架构.技术比较新.列存储本身带来了数据高度压缩的便利,MPP架构使得可以用相对廉价的PC级服务器横向扩展到较大规模(PB级),05年才问世使得它在 ...

  8. MaxCompute表设计最佳实践

    MaxCompute表设计最佳实践 产生大量小文件的操作 MaxCompute表的小文件会影响存储和计算性能,因此我们先介绍下什么样的操作会产生大量小文件,从 而在做表设计的时候考虑避开此类操作. 使 ...

  9. 柯南君 :Oracle 分区技术 之 怎样支撑大数据操作?

    前段时间.看了罗女士( 资深技术顾问 - Oracle 中国 顾问咨询部)关于<大批量数据处理技术的演讲>视频.感觉受益良多,结合多年的知识积累,柯南君给大家分享一下: 交流内容: 一.O ...

随机推荐

  1. 整数中1出现的次数(从1到n整数中1出现的次数)

    题目:求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1.10.11.12.13因此共出现6次,但是对于后面问题他就没辙了.AC ...

  2. Android zxing 解析二维码,生成二维码极简demo

    zxing 官方的代码很多,看起来很费劲,此demo只抽取了有用的部分,实现了相机预览解码,解析本地二维码,生成二维码三个功能. 简化后的结构如下: 废话少说直接上代码: BaseDecodeHand ...

  3. 安装lua&lowbar;zlib让OpenResy可以接收gzip请求

    1.下载和安装lua_zlib wget https://github.com/brimworks/lua-zlib/archive/master.zip unzip master.zip cd lu ...

  4. ORA-15028&colon; ASM file &&num;39&semi;&period;&period;&&num;39&semi; not dropped&semi; currently being accessed --转载

    Couple of weeks ago we had a problem with one of our busiest databases. The FRA was filling quite ra ...

  5. CommonUtils

    package com.utils; import java.lang.reflect.Field; import java.math.BigDecimal; import java.sql.Time ...

  6. BZOJ&lowbar;4196&lowbar;&lbrack;NOI2015&rsqb;&lowbar;软件包管理器&lowbar;&lpar;树链剖分&rpar;

    描述 http://www.lydsy.com/JudgeOnline/problem.php?id=4196 给出一棵树,树上点权为0或1.u权值为1的条件是从根节点到u路径上的所有点权值都为1.u ...

  7. &period;net错误处理机制(转)

    asp.net 提供了4中错误机制:Page_Error事件>ErrorPage属性>Application_Error事件> <customErrors>配置项 ① P ...

  8. 如何实现HTTPSERVER

    Write your own http server author : Kevin Lynx Why write your own? 看这个问题的人证明你知道什么是http server,世界上有很多 ...

  9. 用Linux&sol;Unix命令把十六进制转换成十进制&lpar;转&rpar;

    那天写个脚本,需要把十六进制的数字转成十进制的打出来,发现不知道要怎么弄,搜一下,原来还是很简单的,比用C语言什么的容易多了,就一些现成的命令就解决了. 先列两种简单的方法: 1) echo 自己就能 ...

  10. Apache和PHP的优化

    调优 Apache Apache 是一种高度可配置的软件.它具有大量特性,但每一种都代价高昂.从某种程度上来说,调优 Apache 来说就是以恰当的方式分配资源,还涉及到将配置简化为仅包含必要内容. ...