Azure Databricks에서 Azure Synapse에 연결하는 방법
11846 단어 databaseazuredatascience
배경
Azure Databricks를 사용하면 대용량 데이터를 병렬로 쉽게 변환하고 변환된 데이터를 다른 Azure 서비스에 저장할 수 있습니다. 그 중 하나는 Azure Synapse(이전의 SQL DW)입니다. Azure Databricks에는 Azure Synapse에서 쉽게 데이터를 읽고 쓸 수 있는 기본 제공 커넥터가 있습니다.
전제 조건
단계
노트북 세션에서 스토리지 키 구성
이렇게 하면 노트북 세션에서 스토리지 자격 증명이 구성되며 이를 사용하여 해당 스토리지에 연결합니다. 이 스토리지는 Azure Synapse에서 데이터를 읽고 쓸 때 스테이징 스토리지 역할을 합니다. 현재 Azure Blob Storage 및 Azure Data Lake Gen 2만 지원되며 구성이 약간 다릅니다. 다음은 두 스토리지 유형에 대한 세션 구성입니다.
스테이징 스토리지로서의 Azure Blob Storage
# Python
spark.conf.set(fs.azure.account.key.<<your-storage-account-name>>.blob.core.windows.net, ”<<your-storage-account-access-key>>”)
스테이징 저장소로서의 Azure Data Lake Gen 2
# Python
spark.conf.set(fs.azure.account.key.<<your-storage-account-name>>. dfs.core.windows.net, ”<<your-storage-account-access-key>>”)
Azure Synapse 연결 구성
다음으로 아래 변수를 정의합니다.
# Python
# Azure Synapse Connection Configuration
dwDatabase = <<your-database-name>>
dwServer = <<your-sql-sever-name>>
dwUser = <<your-database-account>>
dwPass = <<your-database-account-password>>
dwJdbcPort = "1433"
dwJdbcExtraOptions = "encrypt=true;trustServerCertificate=true;hostNameInCertificate=*.database.windows.net;loginTimeout=30;"
sqlDwUrl = f"jdbc:sqlserver://{dwServer}:{dwJdbcPort};database={dwDatabase};user={dwUser};password={dwPass};${dwJdbcExtraOptions}"
# Staging Storage Configuration
# Azure Blob Storage
# tempDir = "wasbs://<<container>>@<<your-storage-account-name>>.blob.core.windows.net/<<folder-for-temporary-data>>"
# Azure Data Lake Gen 2
tempDir = "abfss://<<container >>@<<your-storage-account-name>>.dfs.core.windows.net/<<folder-for-temporary-data>>"
# Azure Synapse Table
tableName = <<your-azure-synapse-table-to-read-or-write>>
Azure Synapse에서 데이터 읽기
그런 다음 Azure Synapse에서 데이터 읽기를 시도합니다.
# Python
df = spark.read \
.format("com.databricks.spark.sqldw") \
.option("url", sqlDwUrl) \
.option("tempDir", tempDir) \
.option("forwardSparkAzureStorageCredentials", "true") \
.option("dbTable", tableName) \
.load()
Azure Synapse에 데이터 쓰기
마지막으로 Azure Synapse에 데이터 쓰기를 시도합니다.
# Python
df.write \
.mode('append') \ # Append Data
.format("com.databricks.spark.sqldw") \
.option("url", sqlDwUrl) \
.option("tempDir", tempDir) \
.option("forwardSparkAzureStorageCredentials", "true") \
.option("dbTable", tableName) \
.save()
보너스: 스테이징 스토리지가 필요한 이유
위에서 언급했듯이 Azure Synapse에서 데이터를 읽고 쓸 때마다 일부 임시 데이터를 저장하기 위해 staging 폴더가 필요합니다. 데이터를 읽고 쓸 때마다 실제로 활용PolyBase하여 데이터를 이동하며, 스테이징 스토리지는 고성능을 달성하는 데 사용됩니다.
또 다른 보너스: Azure Databricks의 비밀 관리
위의 코드는 우리의 비밀을 담고 있습니다. 사용자 자격 증명, 통증 텍스트의 스토리지 키. 사실, 우리는 그것들을 공책에 숨겨야 합니다. 자세한 내용은 이것을 참조할 수 있습니다.
원본 게시물: https://joeho.xyz/blog-posts/how-to-connect-to-azure-synapse-in-azure-databricks/
Reference
이 문제에 관하여(Azure Databricks에서 Azure Synapse에 연결하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/joeho888/how-to-connect-to-azure-synapse-in-azure-databricks-335k텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)