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

时间:2018-12-12 07:27:28

标签: azure duplicates etl business-intelligence sql-data-warehouse

目前,我正在设置Azure SQL数据仓库。我正在将Databricks与来自Azure Blob存储的JSON文件一起用于ETL流程。

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

这可能因事实而发生,例如如果在加载过程中出现异常。对于尺寸,如果我不检查,哪些数据已经存在,也可能发生这种情况。 我正在使用以下代码将数据导入到数据仓库中,但没有找到仅导入不存在的数据的“模式”:

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()

2 个答案:

答案 0 :(得分:1)

提取到登台表,然后使用NOT NOTISTS子句将CTAS提取到事实表,以消除重复项。

答案 1 :(得分:0)

我不太确定在INSERT异常期间为您提供的选项,但是如果您想直接加载到维度模型中,则可能希望使用UNIQUE约束保护维度表。