Dynamic Table (DT) 提供了对数据的直接修改能力,通过DML(Data Manipulation Language)语句实现数据的插入、更新和删除操作。但出于安全考虑,这些操作默认是禁用的,以防止误操作导致数据损坏。启用DML操作若需启用DML操作,用户必须显式设置系统参数:SET cz.sql.dt.allow.dml = true;

启用后,DT将支持以下DML操作:

  • 插入操作:支持INSERTINSERT OVERWRITE语句。
  • 删除操作:支持DELETETRUNCATE语句。

注意事项

  • 全量刷新:一旦对DT进行了DML修改,下一次数据刷新将自动转为全量刷新。这是因为中间计算结果的状态将变得不可预测,为了保证数据的一致性和准确性,系统将重新计算所有数据。
  • 参数化定义的带分区的DT:对于参数化定义且带有分区的DT,如果仅修改了部分分区,未被修改的分区仍然可以维持增量刷新。

插入数据

CREATE dynamic TABLE event_gettime AS
SELECT    event,
          process,
          YEAR(event_time) event_year,
          MONTH(event_time) event_month,
          DAY(event_time) event_dayFROM event_tb;

set cz.sql.dt.allow.dml = TRUE;

INSERT    INTO event_gettime
VALUES    ('event-update', 20, 2024, 9, 19);

SELECT    *
FROM      event_gettime;

删除数据

CREATE dynamic TABLE event_gettime AS
SELECT    event,
          process,
          YEAR(event_time) event_year,
          MONTH(event_time) event_month,
          DAY(event_time) event_dayFROM event_tb;

set cz.sql.dt.allow.dml = TRUE;

DELETE
FROM      event_gettime
WHERE     event_day = 19;

SELECT    *
FROM      event_gettime;

联系我们
预约咨询
微信咨询
电话咨询