更新时间:2024-09-02 GMT+08:00

支持与限制

实时数仓兼容所有列存语法,具体情况如下:

表1 支持的语法

语法

是否支持

CREATE TABLE

支持

CREATE TABLE LIKE

支持

DROP TABLE

支持

INSERT

支持

COPY

支持

SELECT

支持

TRUNCATE

支持

EXPLAIN

支持

ANALYZE

支持

VACUUM

支持

ALTER TABLE DROP PARTITION

支持

ALTER TABLE ADD PARTITION

支持

ALTER TABLE SET WITH OPTION

支持

ALTER TABLE DROP COLUMN

支持

ALTER TABLE ADD COLUMN

支持

ALTER TABLE ADD NODELIST

支持

ALTER TABLE CHANGE OWNER

支持

ALTER TABLE RENAME COLUMN

支持

ALTER TABLE TRUNCATE PARTITION

支持

CREATE INDEX

支持

DROP INDEX

支持

DELETE

支持

ALTER TABLE 其他

支持

ALTER INDEX

支持

MERGE

支持

SELECT INTO

支持

UPDATE

支持

CREATE TABLE AS

支持

约束限制

  1. 当需要使用HStore表时,需要同步修改以下几个参数的默认值,否则会导致HStore表性能严重劣化。

    推荐的参数修改配置是:autovacuum_max_workers_hstore=3,autovacuum_max_workers=6,autovacuum=true。

  2. 当前HStore与列存都不支持使用vacuum清理索引脏数据,在频繁update场景可能会导致索引膨胀,后续版本会支持。
  3. 当使用HStore异步排序功能时,有两点需要注意。
    • 异步排序期间可能会阻塞部分数据的DML操作,最大的阻塞粒度为异步排序的行数阈值,因此在反复DML的场景下不建议使用此功能。
    • 自动异步排序与列存vacuum互斥,当autovacuum流程中满足列存vacuum的条件,则直接跳过流程中的异步排序,等待下次触发(极端场景下因为反复大批量DML操作的执行,列存vacuum会不停被触发,因此异步排序总是无法被触发)。