CALENDAR_HIERARCHY_DAY

指定将 DATE 分区键分成年、月和日的层次结构。Vertica Tuple Mover 会定期根据当前日期评估分区键,并根据需要将分区合并到相应的年份和月份分区组中。

这是元函数。您必须在顶级 SELECT 语句中调用元函数。

行为类型

易变

语法

CALENDAR_HIERARCHY_DAY( partition‑expression[, active‑months[, active‑years] ] )

参数

partition‑expression
用于对分区键分组的 DATE 表达式,必须与表的 PARTITION BY 表达式相同。
active‑months
一个 ≥ 0 的整数,指定将 MONTH(CURRENT_DATE) 前多少个月的唯一分区键存储在单独的分区中。

如果指定为 1,则只将当月的分区键存储在单独的分区中。

如果指定为 0,则将当月的所有分区键合并到该月的分区组中。

有关详细信息,请参阅分层分区

默认值: 2

active‑years
一个 ≥ 0 的整数,指定将 YEAR(CURRENT_DATE) 前多少年的分区键按月份分组到单独的分区中。

如果指定为 1,则只将当年的分区键存储在月份分区组中。

如果指定为 0,则将当前和以前年份的所有分区键合并到年份分区组中。

有关详细信息,请参阅分层分区

默认值: 2

使用

在表分区子句中指定此函数,作为其 GROUP BY 表达式:

PARTITION BY partition‑expression
  GROUP BY CALENDAR_HIERARCHY_DAY(
     group‑expression
      [, active‑months[, active‑years] ] )

例如:

=> CREATE TABLE public.store_orders
(
    order_no int,
    order_date timestamp NOT NULL,
    shipper varchar(20),
    ship_date date
);
...
=> ALTER TABLE public.store_orders
      PARTITION BY order_date::DATE
      GROUP BY CALENDAR_HIERARCHY_DAY(order_date::DATE, 3, 2) REORGANIZE;

有关用法的详细信息,请参阅分层分区

另请参阅

分层分区