[英]Azure Databricks secret keys name into jdbc property
我剛剛創建了一個 Azure 密鑰庫支持的秘密 scope。 我的以下機密名稱(作為機密存儲在 Key Vault 中)連接到 Azure SQL 數據庫:
之后,我在數據塊中創建了秘密 scope。 這個秘密 scope 的名稱是 secretscopeadbr
In my notebook i have the following code: This code has the JDBC connection based my Azure SQL database and write data from a dataframe to a single table in my azure sql database.
from pyspark.sql import *
import pandas as pd
#Read the parquet file#
outerjoindfparquet = spark.read.format('parquet').load('dbfs:/newjouterjoindfparquet.parquet')
display (outerjoindfparquet)
#Write Parquet file to Azure SQL Database#
mountdatabricksjdbcHostname = "sql-ja-dev.database.windows.net"
jdbcPort = "1433"
jdbcDatabase = "sqldb-ja-dev"
properties = {
"user": "jdbcusername",
"password": "jdbcpassword"
}
url = "jdbc:sqlserver://{0}:{1};database={2}".format(mountdatabricksjdbcHostname, jdbcPort, jdbcDatabase)
filedf = sqlContext.read.parquet("dbfs:/newjouterjoindfparquet.parquet", header=True)
filedf1 = DataFrameWriter(filedf)
filedf1.jdbc(url=url, table="Fact_SalesOrder", mode="overwrite", properties=properties)
問題:無法識別屬性中插入的秘密值。
錯誤消息:com.microsoft.sqlserver.jdbc.SQLServerException:用戶“jdbcUsername”登錄失敗
有什么建議么? 非常感謝!
那是因為您在引號內留下了 jdbcusername 和 jdbcpassword。
嘗試這個。
properties = {
"user": jdbcusername,
"password": jdbcpassword
}
我找到了解決方法:
我添加了兩個名為 JdbcUserName 和 JdbcPassword 的新變量。 這指向 dbutils.secrets.get
JdbcUserName= dbutils.secrets.get(scope = "myscope", key = "sqljadevadminloginname")
JdbcPassword= dbutils.secrets.get(scope = "myscope", key = "sqljadevpassword")
properties = {
"user": JdbcUserName,
"password": JdbcPassword
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.