【问题标题】:Multi-column partitioning in GreenplumGreenplum 中的多列分区
【发布时间】:2015-03-26 19:59:53
【问题描述】:

我正在尝试使用 PostgreSQL 在 Greenplum 数据库中进行多列分区。但是我不断收到错误 -

错误:分区键有 2 列,但在 VALUES 中指定了 1 列 第 15 行:值('10001','2014-03-11'), ^ ********** 错误**********

错误:分区键有 2 列,但在 VALUES 中指定了 1 列 子句 SQL 状态:42P16 字符:341

这是我使用的查询:

CREATE TABLE EMP_TABLE
(
  EMP_ID CHARACTER VARYING(9) NOT NULL,
  JOB_ID CHARACTER VARYING(10) NOT NULL,
  DT_OF_JOIN DATE NOT NULL,
  SALARY NUMERIC(20,8) NOT NULL
--  CONSTRAINT ENTITY_MODEL_SCORE_PKEY PRIMARY KEY (ENTITY_ID, MODEL_ID, MODEL_RUN_DT)
)
WITH (
  OIDS=FALSE
)
DISTRIBUTED BY (EMP_ID)
PARTITION BY LIST(EMP_ID,DT_OF_JOIN)
(
VALUES ('10001','2014-03-11'),
VALUES ('10002','2014-03-12')
)

我不确定我错过了什么。有人可以帮助我使用正确的语法在 Greenplum 中使用 PostgreSQL 进行多列分区吗?

【问题讨论】:

    标签: postgresql database-partitioning greenplum multiple-columns


    【解决方案1】:

    您可以使用子分区尝试它

    CREATE TABLE sandbox.EMP_TABLE
    (
      EMP_ID CHARACTER VARYING(9) NOT NULL,
      JOB_ID CHARACTER VARYING(10) NOT NULL,
      DT_OF_JOIN date NOT NULL,
      SALARY NUMERIC(20,8) NOT NULL
    --  CONSTRAINT ENTITY_MODEL_SCORE_PKEY PRIMARY KEY (ENTITY_ID, MODEL_ID, MODEL_RUN_DT)
    )
    WITH (
      OIDS=FALSE
    )
    DISTRIBUTED BY (JOB_ID)
    PARTITION BY LIST(EMP_ID)
        SUBPARTITION BY LIST(DT_OF_JOIN) 
        SUBPARTITION TEMPLATE
       (
          SUBPARTITION year1 VALUES ('2014-03-11'),
          SUBPARTITION year2 VALUES ('2014-03-12')
       )
    (
        values ('1001'),
        values('10002')
    )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-18
      • 2023-03-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多