【发布时间】:2020-12-16 08:46:18
【问题描述】:
我正在寻找将多个维度表和事实表从 SQL Server 导入 Azure Data Lake Gen 2 的最安全方法。这是我发现的:
选项 1:Azure 数据工厂 这涉及成本,因此目前对我来说不是优选的解决方案。
选项 2:来自 Azure Databricks 的 Python
2a) Apache Spark 连接器
jdbcDF = spark.read \
.format("com.microsoft.sqlserver.jdbc.spark") \
.option("url", url) \
.option("dbtable", table_name) \
.option("user", username) \
.option("password", password).load()
2b) 内置 JDBC Spark SQL 连接器
2c) ODBC 驱动程序和 pyodbc 包
2d) pymssql 包
2e) JayDeBeApi
选项 3:SSIS 包
我不确定我应该使用哪一个。上述方法的优缺点是什么?
使用上述方法之一将数据读入数据帧后,如何将它们保存到 Data Lake Gen2 存储?
【问题讨论】:
-
使用内置的jdbc驱动,你用的是databricks吗?
-
是的,我正在使用 Azure Databricks
-
使用jdbc驱动,你需要传入正确的参数来连接sql db,通常最好将这些作为秘密存储在keyvault中或者通过CLI使用databricks秘密。通过 JDBC 驱动程序读入它们后,您可以将它们保存为镶木地板文件
jdbcDF.write.parquet('dbfs:/path',mode='overwrite')this guide 就在现场。 -
正如 Manakin 所说,这是一个很好的解决方案。我可以将其发布为关闭此问题的答案吗?
标签: python azure-data-lake azure-databricks azure-data-lake-gen2