咨询:Databricks中无需Azure AD应用配置PySpark-Kusto连接器的方法
无需Azure AD应用的PySpark-Kusto连接方案
好消息是,完全可以不用Azure AD应用程序来配置PySpark与Kusto(Azure Data Explorer)的连接!我整理了几种实用的方案,你可以根据自己的场景选择:
用户身份认证(Azure AD用户凭据)
你可以直接用当前登录Databricks的Azure AD用户账号完成认证,不用单独创建应用。配置时指定AAD_USER_ID和AAD_PASSWORD参数即可,示例代码如下:df = spark.read.format("com.microsoft.kusto.spark.datasource") .option("kustoCluster", "<你的Kusto集群URL>") .option("kustoDatabase", "<目标数据库名>") .option("kustoQuery", "<查询语句>") .option("AAD_USER_ID", "<你的Azure AD邮箱>") .option("AAD_PASSWORD", dbutils.secrets.get("<secret-scope>", "<password-key>")) .load()这里建议用Databricks Secrets存储密码,避免明文暴露,适合测试或小型场景使用。
Databricks托管身份认证
如果你的Databricks工作区启用了托管身份,直接用这个身份就能访问Kusto,无需额外维护AAD应用。步骤很简单:- 先给Databricks的托管身份授予Kusto集群的对应权限(比如
Viewer用于读,Ingestor用于写) - 配置连接器时只需要指定租户ID,不用设置客户端ID和密钥:
df = spark.read.format("com.microsoft.kusto.spark.datasource") .option("kustoCluster", "<你的Kusto集群URL>") .option("kustoDatabase", "<目标数据库名>") .option("kustoQuery", "<查询语句>") .option("AAD_AUTHORITY_ID", "<你的Azure租户ID>") .load()这种方式最安全省心,完全由Azure自动管理身份凭据,非常适合生产环境。
- 先给Databricks的托管身份授予Kusto集群的对应权限(比如
设备代码交互式认证
要是你在做交互式测试,设备代码认证会很方便——不需要预先配置任何凭据,只需要通过浏览器完成身份验证:df = spark.read.format("com.microsoft.kusto.spark.datasource") .option("kustoCluster", "<你的Kusto集群URL>") .option("kustoDatabase", "<目标数据库名>") .option("kustoQuery", "<查询语句>") .option("AAD_DEVICE_CODE_AUTH", "true") .option("AAD_AUTHORITY_ID", "<你的Azure租户ID>") .load()运行代码后,控制台会输出一个设备代码和验证URL,你打开浏览器访问该URL,输入代码并用Azure AD账号登录,连接器就会自动获取认证权限了。
最后要提醒的是:不管用哪种方式,都要确保对应的身份(用户/托管身份)已经在Kusto集群中获得了必要的权限,不然会出现访问被拒绝的情况哦。
内容的提问来源于stack exchange,提问作者Jules
相关产品推荐
相关产品推荐

