【发布时间】:2023-03-07 18:04:01
【问题描述】:
我们正在使用 Databricks 及其 SQL DW 连接器将数据加载到 Synapse 中。我有一个包含 10 000 行和 40 列的数据集。需要 7 分钟!
使用带有 Polybase 和暂存选项的数据工厂加载相同的数据集需要 27 秒。与批量复制相同。
可能出了什么问题?我错过了一些配置吗?还是照常营业?
连接配置:
df_insert.write .format("com.databricks.spark.sqldw") .option("url", sqlDwUrlSmall) .option("dbtable", t_insert) .option( "forward_spark_azure_storage_credentials","True") .option("tempdir", tempDir) .option("maxStrLength", maxStrLength) .mode("append") .save()
【问题讨论】:
-
您使用的是什么 DWU?什么资源类与执行加载的用户相关联?
-
我们使用的是最小的 DWU,DW100c。 Databricks 用户在 largec 资源类中,Data Factory 用户在默认 smallrc 中。我刚刚从文档中注意到,在我们的 DWU 级别上,这些资源类之间没有区别。两者都获得 25%。另外一点,使用 Databricks 从 Synapse 读取非常快。
-
100 是最低的 DWU,并不适合太多。尝试更高的,400、1000,看看你是否得到不同的结果。如果没有,请回来。
-
我想指出,在相同的数据库级别下,我得到完全不同的性能结果,具体取决于我使用的是数据工厂还是 Databricks。所以调整数据库级别不是我要找的答案。
-
@tero:我面临着完全相同的问题...如果您找到了解决方案,请将其发布为答案
标签: databricks azure-sql-data-warehouse azure-synapse