防止 Azure SQL 数据仓库中重复数据的策略

Strategies to prevent duplicate data in Azure SQL Data Warehouse

目前我正在设置 Azure SQL 数据仓库。我将 Databricks 用于 ETL 过程,其中包含来自 Azure Blob 存储的 JSON 文件。

确保不将重复维度或事实导入 Azure SQL 数据仓库的最佳做法是什么?

这可能发生在事实中,例如在加载过程中发生异常的情况下。对于尺寸,如果我不检查哪些数据已经存在,这也可能发生。 我正在使用以下代码将数据导入数据仓库,但我发现没有 "mode" 只会导入尚不存在的数据:

spark.conf.set(
   "spark.sql.parquet.writeLegacyFormat",
   "true")

 renamedColumnsDf.write
     .format("com.databricks.spark.sqldw")
     .option("url", sqlDwUrlSmall)
     .option("dbtable", "SampleTable")
     .option( "forward_spark_azure_storage_credentials","True")
     .option("tempdir", tempDir)
     .mode("overwrite")
     .save()

收录到暂存 table,然后 CTAS 到您的事实 table 并使用 NOT EXISTS 子句消除重复项。