Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Doc]Update create_partitioned_materialized_view.md #50602

Merged
merged 2 commits into from
Sep 3, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -238,7 +238,7 @@ AS
- `date_column`:用于分区的列的名称。形如 `PARTITION BY dt`,表示按照 `dt` 列进行分区。
- `date_trunc` 函数:形如 `PARTITION BY date_trunc("MONTH", dt)`,表示将 `dt` 列截断至以月为单位进行分区。date_trunc 函数支持截断的单位包括 `YEAR`、`MONTH`、`DAY`、`HOUR` 以及 `MINUTE`。
- `str2date` 函数:用于将基表的 STRING 类型分区键转化为物化视图的分区键所需的日期类型。`PARTITION BY str2date(dt, "%Y%m%d")` 表示 `dt` 列是一个 STRING 类型日期,其日期格式为 `"%Y%m%d"`。`str2date` 函数支持多种日期格式。更多信息,参考[str2date](../../sql-functions/date-time-functions/str2date.md)。自 v3.1.4 起支持。
- `time_slice` 或 `date_slice` 函数:从 v3.1 开始,您可以进一步使用 time_slice 或 date_slice 函数根据指定的时间粒度周期,将给定的时间转化到其所在的时间粒度周期的起始或结束时刻,例如 `PARTITION BY date_trunc("MONTH", time_slice(dt, INTERVAL 7 DAY))`,其中 time_slice 或 date_slice 的时间粒度必须比 `date_trunc` 的时间粒度更细。你可以使用它们来指定一个比分区键更细时间粒度的 GROUP BY 列,例如,`GROUP BY time_slice(dt, INTERVAL 1 MINUTE) PARTITION BY date_trunc('DAY', ts)`。
- `time_slice` 函数:从 v3.1 开始,您可以进一步使用 time_slice 函数根据指定的时间粒度周期,将给定的时间转化到其所在的时间粒度周期的起始或结束时刻,例如 `PARTITION BY date_trunc("MONTH", time_slice(dt, INTERVAL 7 DAY))`,其中 time_slice 的时间粒度必须比 `date_trunc` 的时间粒度更细。你可以使用它们来指定一个比分区键更细时间粒度的 GROUP BY 列,例如,`GROUP BY time_slice(dt, INTERVAL 1 MINUTE) PARTITION BY date_trunc('DAY', ts)`。

如不指定该参数,则默认物化视图为无分区。

Expand Down
10 changes: 5 additions & 5 deletions docs/zh/using_starrocks/create_partitioned_materialized_view.md
Original file line number Diff line number Diff line change
Expand Up @@ -197,17 +197,17 @@ DISTRIBUTED BY HASH(k1);

### 自定义时间粒度对齐分区

上述的分区上卷方法只允许根据特定的时间粒度对物化视图进行分区,不允许自定义分区时间范围。如果您的业务场景需要使用自定义的时间粒度进行分区,您可以创建一个物化视图,并使用 [time_slice](../sql-reference/sql-functions/date-time-functions/time_slice.md) 或 [date_slice](../sql-reference/sql-functions/date-time-functions/date_slice.md) 函数定义其分区的时间粒度。以上两种函数可以根据指定的时间粒度周期,将给定的时间转化到其所在的时间粒度周期的起始或结束时刻。
上述的分区上卷方法只允许根据特定的时间粒度对物化视图进行分区,不允许自定义分区时间范围。如果您的业务场景需要使用自定义的时间粒度进行分区,您可以创建一个物化视图,并使用 [time_slice](../sql-reference/sql-functions/date-time-functions/time_slice.md) 函数定义其分区的时间粒度。以上两种函数可以根据指定的时间粒度周期,将给定的时间转化到其所在的时间粒度周期的起始或结束时刻。

您需要在 SELECT List 中使用 time_slice 或 date_slice 函数在基表的分区键上定义新的时间粒度,为其设置别名,然后结合 date_trunc 函数指定物化视图的分区键,从而创建一个自定义分区时间粒度的物化视图。
您需要在 SELECT List 中使用 time_slice 函数在基表的分区键上定义新的时间粒度,为其设置别名,然后结合 date_trunc 函数指定物化视图的分区键,从而创建一个自定义分区时间粒度的物化视图。

```SQL
PARTITION BY
date_trunc(<format>, <mv_partitioning_column>)
AS
SELECT
-- 您可以使用 time_slice 或 date_slice 函数。
date_slice(<base_table_partitioning_column>, <interval>) AS <mv_partitioning_column>
-- 您可以使用 time_slice 函数。
time_slice(<base_table_partitioning_column>, <interval>) AS <mv_partitioning_column>
```

示例:
Expand All @@ -220,7 +220,7 @@ AS
SELECT
k1,
sum(v1) AS SUM,
date_slice(datekey, INTERVAL 5 HOUR) AS mv_datekey
time_slice(datekey, INTERVAL 5 HOUR) AS mv_datekey
FROM par_tbl1
GROUP BY datekey, k1;
```
Expand Down
Loading