我已经使用增量实时表管道创建了一个物化视图表,由于某种原因它每天都会覆盖数据,我希望它将数据附加到表中而不是进行完全刷新 假设我的表中有 800 万条记录,如果我运行管道,它将删除以前的记录并只放入新记录。我希望它附加到所有现有数据中 我尝试过使用 @dlt.table(mergeMode="append") 它会抛出意外的关键字参数错误
我尝试使用@dlt.table(mergeMode =“append”)它会抛出意外的keyworfd参数错误
您可以使用
@append_flow
装饰器,该装饰器处于公共预览状态,允许您从多个流源写入流表。
您可以使用下面的代码将值附加到物化视图表:
from deltatables import Dlt
@Dlt.table
def my_materialized_view():
# Your query here (e.g., SELECT * FROM my_source_data)
pass
@Dlt.append_flow
def my_streaming_pipeline():
# Your streaming logic here
pass
@table
装饰器定义物化视图和流表。欲了解更多信息,您可以参考@Kaniz的this。
根据物化资产文件:
ALTER TABLE table_name SET TBLPROPERTIES (delta.enableRowTracking = true);
小心:请阅读有关以这种方式更改表格的警告和问题。
您始终可以在启用它的情况下从头开始重建基础表:
CREATE TABLE table_name
TBLPROPERTIES (delta.enableRowTracking = true)
AS SELECT * FROM source_table;
LEFT JOIN
EXECTATIONS
CURRENT_TIMESTAMP
或任何在给定输入的情况下不给出完全相同输出的函数)满足这两个条件后,应启用增量刷新并用作默认刷新。
您可以通过此处的文档检查使用了哪种刷新方法。