【问题标题】:Ways to import data from SQL Server 2016 to Azure Data Lake Gen 2将数据从 SQL Server 2016 导入 Azure Data Lake Gen 2 的方法
【发布时间】: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


【解决方案1】:
  1. 我们可以使用jdbc驱动将数据读入一个数据帧。出于安全原因,我们可以将连接字符串信息作为机密存储在 Azure Keyvault 中,或者通过 CLI 使用数据块机密。

  2. 我们可以将它们保存为 parquet 文件并通过 jdbcDF.write.parquet('dbfs:/path',mode='overwrite') 上传到 ADL v2。

【讨论】:

    猜你喜欢
    • 2020-11-22
    • 1970-01-01
    • 2019-09-23
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 2020-01-24
    • 2022-12-01
    • 2022-11-10
    相关资源
    最近更新 更多