01,创建分区表

  1. [PARTITION BY partition_type (column)
  2. [SUBPARTITION BY partition_type (column)]
  3. [SUBPARTITION TEMPLATE (template_spec)]
  4. [...]
  5. (partition_spec)
  6. |[SUBPARTITION BY partition_type(column)]
  7. [...]
  8. (partition_spec)
  9. [(subpartition_spec
  10. [(...)]
  11. )]
  12. ]
  13. and partition_element is:
  14.  
  15. DEFAULT PARTITION name
  16. | [PARTITION name] VALUES (list_value[,...])
  17. | [PARTITION name]
  18. START ([datatype] 'start_value') [INCLUSIVE|EXCLUSIVE]
  19. [ END ([datatype] 'end_value') [INCLUSIVE|EXCLUSIVE]
  20. [ EVERY ([datatype] [number|INTERVAL] 'interval_value')]
  21. | [PARTITION name]
  22. END ([DATATYPE] 'end_value') [INCLUSIVE|EXCLUSIVE]
  23. [ EVERY ([datatype] [number|INTERVAL] 'interval_value')]
  24. [ with (partition_storage_parameter=value [,...])]
  25. [ TABLESPACE tablespace]

Tips
通过实验得到:向主表插入数据时,数据会被自动存放至相应的分区表。
也可以直接向分区子表插入符合条件的数据,
当向分区子表插入不符合条件的额数据时,会提示:

  1. [Err] ERROR: Trying to insert row into wrong partition (seg1 hadoop3:40000 pid=6679)
  2. DETAIL: Expected partition: test_partition_range_1_prt_p20111231, provided partition: test_partition_range_1_prt_p20111230

02,按时间分区

  1. create table public.test_partition_range(
  2. id numeric,
  3. name character varying(32),
  4. dw_end_date date,
  5. ) distributed by(id)
  6. PARTITION BY range(dw_end_date)
  7. (
  8. PARTITION p20111230 START ('2011-12-30'::date) END ('2011-12-31'::date),
  9. --...
  10. );

03,使用Every分区

  1. create table test.test_partition_every(
  2. id numeric,
  3. name character varying(32),
  4. dw_end_date date
  5. ) distributed by(id)
  6. partition by range(dw_end_Date)
  7. (
  8. partition p201112 start('2011-12-1'::date) end ('2011-12-31'::date)
  9. every ('1 days'::interval)
  10. );

04,使用list分区

  1. create table test.test_partition_list(
  2. member_id numeric,
  3. city character varying(32)
  4. )distributed by (member_id)
  5. partition by list(city)
  6. (
  7. partition guangzhou values('guangzhou'),
  8. partition hangzhou values('hangzhou'),
  9. default partition other_city
  10. );

05,修改分区表

  1. ALTER DEFAULT PARTITION
  2. DROP DEFAULT PARTITION [IF EXISTS]
  3. DROP PARTITION [IF EXISTS] {
  4. partition_name
  5. | FOR (RANK(number))
  6. | FOR (value)
  7. }
  8. [CASCADE]
  9. TRUNCATE DEFAULT PARTITION
  10. TRUNCATE PARTITION {
  11. partition_name
  12. | FOR (RANK(number))
  13. | FOR (value)
  14. }
  15. RENAME DEFAULT PARTITION TO new_partition_name
  16. RENAME PARTITION {
  17. partition_name
  18. | FOR (RANK(number))
  19. | FOR (value)
  20. }
  21. TO new_partition_name
  22. ADD DEFAULT PARTITION NAME [(subpartition_spec)]
  23. ADD PARTITION [name] partition_element
  24. [(subpartition_spec)]
  25. EXCHANGE PARTITION {
  26. partition_name
  27. | FOR (RANK(number))
  28. | FOR (value)
  29. } WITH TABLE TABLE_NAME
  30. [WITH|WITHOUT VALIDATION]
  31. EXCHANGE EFAULT PARTITION WITH TABLE TABLE_NAME
  32. [WITH|WITHOUT VALIDATION]
  33. SET SUBPARTITION TEMPLATE (subpartition_spec)
  34. SPLIT DEFAULT PARTITION {
  35. AT (list_value)
  36. |START([datatype] range_value) [INCLUSIVE|EXCLUSIVE]
  37. END ([datatype]) range_value) [INCLUSIVE|EXCLUSIVE]
  38. }
  39. [INTO (PARTITION new_partition_name,
  40. PARTITION default_partition_name)]
  41. SPLIT DPARTITION {
  42. partition_name
  43. | FOR (RANK(number))
  44. | FOR (value)
  45. } AT(value)
  46. [INTO (PARTITION partition_name, PARTITION partition_name]

  06,新增分区

  1. alter table test.test_partition_every add partition p20120105_6
  2. start ('2012-01-05'::date) END ('2012-01-07'::date);

  07,drop/truncate分区

  1. alter table test.test_partition_every drop partition p20120105_6;
  2.  
  3. alter table test.test_partition_every truncate partition p20120105_6;

  08,拆分分区

  1. alter table test.test_partition_every split partition p20120105_6
  2. at(('2012-01-06'::date)) into (partition p20120105,partition p20120106);

  09,交换分区

  1. alter table test.test_partition_every exchange partition p20120102 with table test.test_on_partition;

GreenPlum 大数据平台--分区表(二)的更多相关文章

  1. GreenPlum 大数据平台--介绍

    一,GreenPlum 01,介绍: Greenplum是一种基于PostgreSQL的分布式数据库,其采用shared-nothing架构,主机.操作系统.内存.存储都是自我控制的,不存在共享. 官 ...

  2. GreenPlum 大数据平台--外部表(三)

    一,外部表介绍 Greenplum 在数据加载上有一个明显的优势,就是支持数据的并发加载,gpfdisk是并发加载的工具,数据库中对应的就是外部表 所谓外部表,就是在数据库中只有表定义.没有数据,数据 ...

  3. GreenPlum 大数据平台--监控

    数据库状态监控活动 活动 过程 纠正措施 列出当前状态为down的Segment.如果有任何行被返回,就会生成一个警告或者告警. 推荐频率:每5到10分钟 重要度: IMPORTANT 在postgr ...

  4. GreenPlum 大数据平台--运维(二)

    .如何获取查询运行时和已用时间. 例子: Select tstart, tfinish, (tfinish-tstart) as total_time, trim(query_text) from q ...

  5. GreenPlum 大数据平台--segment 失效问题恢复《二》(全部segment宕机情况下)

    01,情况描述 主Segment和它的镜像都宕掉.导致了greenplum数据库不可用状态 02,重启greenplum数据库 gpstop -r 03,恢复 gprecoverseg 04,状态检查 ...

  6. GreenPlum 大数据平台--基础使用(二)

    连接参数 连接参数 描述 环境变量 应用名称 连接到数据库的应用名称,保存在application_name连接参数中.默认值是psql. $PGAPPNAME 数据库名 用户想要连接的数据库名称.对 ...

  7. GreenPlum 大数据平台--非并行备份(六)

    一,非并行备份(pg_dump) 1) GP依然支持常规的PostgreSQL备份命令pg_dump和pg_dumpall 2) 备份将在Master主机上创建一个包含所有Segment数据的大的备份 ...

  8. GreenPlum 大数据平台--运维(三)

    一,操作命令 01,启动gpstart 参数说明 COMMAND NAME: gpstart Starts a Greenplum Database system. ***************** ...

  9. GreenPlum 大数据平台--并行备份(四)

    01,并行备份(gp_dump) 1) GP同时备份Master和所有活动的Segment实例 2) 备份消耗的时间与系统中实例的数量没有关系 3) 在Master主机上备份所有DDL文件和GP相关的 ...

随机推荐

  1. git手动解决内容冲突

    <span style="font-size:18px;">git checkout -b lab4 origin/lab4 git merge lab3</sp ...

  2. HTML、CSS、JavaScript拾遗

    1.html元素中,如果有文本存在,当元素大小不足以容纳文本时,文本会进行强制换行.比如说设置页面不出现滚动条,body的overflow为hidden时,或者scroll为no时,span在超过页面 ...

  3. Fragment生命周期及在viewpager中的生命周期

    简介 本篇博客主要从一下三个方面介绍fragement的生命周期 1.fragment的生命周期及与Activity的生命周期的比较 2.FrameLayou布局添加.替换Fragment时fragm ...

  4. C#隐式FTPS (Implicit FTPS)

    實現的方式是通過第三方程式庫實現的,當然最主要的是開源且免費,已測試過沒有問題! 目前還沒有直接取得目錄FileInfo list的方法,不過還好可以用GetDirectoryList來取得類似的結果 ...

  5. 关于对SwfUpload的改造

    Swfupload 在普通上传下,对于IE chrome firefox等有很好的兼容性. 但一旦与其他控件组合,很容易出现无法上传,帮顶事件丢失的情况. 例如Layer与Swfupload,上传一个 ...

  6. 关于MVC刷新页面会两次请求页面的原因

    遇到这个奇葩的问题刚开始关注点全放在后台了 ,以为后台哪个地方存在问题,找了半天一无所获之后才开始把问题关注点移到前端,通过不断的注释前台代码, 终于发现了问题,没想到是这个js导致的问题 因为的Vi ...

  7. DataGridView自定义行样式和行标题

    定义两个样式对象: //定义两种行样式 private DataGridViewCellStyle m_RowStyleNormal; private DataGridViewCellStyle m_ ...

  8. 微信 oauth2 两次回调

    场景: logger.Info("f: " + wx.From); logger.Info("c: " + wx.Code); logger.Info(&quo ...

  9. kali linux之拒绝服务

    Dos不是DOS(利用程序漏洞或一对一资源耗尽的denial of service拒绝服务) DDoS分布式拒绝服务(多对一的攻击汇聚资源能力,重点在于量大,属于资源耗尽型) 历史 以前:欠缺技术能力 ...

  10. loj #107. 维护全序集

    #107. 维护全序集 题目描述 这是一道模板题,其数据比「普通平衡树」更强. 如未特别说明,以下所有数据均为整数. 维护一个多重集 S SS ,初始为空,有以下几种操作: 把 x xx 加入 S S ...