目前,我正在设置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()
答案 0 :(得分:1)
提取到登台表,然后使用NOT NOTISTS子句将CTAS提取到事实表,以消除重复项。
答案 1 :(得分:0)
我不太确定在INSERT异常期间为您提供的选项,但是如果您想直接加载到维度模型中,则可能希望使用UNIQUE约束保护维度表。