【问题标题】:Is it possible to load data from ADLS to SQL DW in DBX?是否可以将数据从 ADLS 加载到 DBX 中的 SQL DW?
【发布时间】:2021-12-08 15:57:01
【问题描述】:

是否可以使用数据块将数据从 ADLS gen2 加载到 SQL DW? 我在 ADLS Gen2 中保存了表,我想将表从那里传输到 SQL DW。 如果可以,我该怎么做?

谢谢

【问题讨论】:

  • SQL DW 是指 Synapse 吗?是的。但使用 Azure 数据工厂可能会更容易。我认为您可以挂载 ADLS 并将文件作为数据框打开吗?如果没有,请先这样做。然后您可以使用此示例将数据帧写入 SQL Server docs.microsoft.com/en-us/sql/connect/spark/…

标签: sql azure databricks azure-data-lake-gen2


【解决方案1】:

首先在数据块上安装 ADLS。为此,请遵循以下代码 sn-p

configs = {"fs.azure.account.auth.type": "OAuth",
          "fs.azure.account.oauth.provider.type": "org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider",
          "fs.azure.account.oauth2.client.id": "<application-id>",
          "fs.azure.account.oauth2.client.secret": dbutils.secrets.get(scope="<scope-name>",key="<service-credential-key-name>"),
          "fs.azure.account.oauth2.client.endpoint": "https://login.microsoftonline.com/<directory-id>/oauth2/token"}

# Optionally, you can add <directory-name> to the source URI of your mount point.
dbutils.fs.mount(
  source = "abfss://<container-name>@<storage-account-name>.dfs.core.windows.net/",
  mount_point = "/mnt/<mount-name>",
  extra_configs = configs)

你可以关注这个link

现在将存储在 ADLS 中的表转换为数据框。在这里您可以使用数据进行转换。

最后一步是将dataframe中的数据存储到SQL DW。

使用以下代码建立连接。

jdbcHostname = "xxxxxxxxxxxx.database.windows.net"
jdbcPort = "1433"
jdbcDatabase = "xxxxxxxxdb"
properties = {
"user" : "xxxxxxxx",
"password" : "******" }

下面我展示了如何将数据加载到 sql。

from pyspark.sql import *
import pandas as pd
df = DataFrameWriter(mydf)
df.jdbc(url=url, table= "Table_Name", mode ="overwrite", properties = properties)

有关更多信息,您可以参考 Gauri Mahajan 的 article

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-29
    • 2013-04-20
    • 2021-01-30
    • 2020-06-12
    • 2021-12-16
    • 1970-01-01
    • 2015-10-20
    相关资源
    最近更新 更多