如何为Kusto Spark Connector添加x-ms-app请求头标识ADX集群查询
Kusto Spark Connector 添加x-ms-app请求头实现方法
你可以直接通过Connector内置的自定义HTTP头配置项实现x-ms-app标识注入,不需要修改Connector源码,具体操作如下:
核心配置说明
Kusto Spark Connector 2.4.0及以上版本提供了kusto.http.headers配置入口,支持传入自定义键值对格式的HTTP请求头,所有Connector向ADX集群发起的查询、写入请求都会自动携带配置的头信息。
配置格式要求:
- 单个头格式为
头名:头值 - 多个头之间用英文逗号分隔
不同场景的配置示例
DataFrame API 配置(PySpark/Scala/Java通用)
在读写ADX的option参数中追加对应配置即可:
PySpark示例:
# 读取ADX数据 source_df = spark.read \ .format("com.microsoft.kusto.spark.datasource") \ .option("kusto.cluster", "你的ADX集群地址,无需带https前缀") \ .option("kusto.database", "目标数据库名") \ .option("kusto.query", "自定义KQL查询语句") \ .option("kusto.http.headers", "x-ms-app:你的自定义应用标识,比如Spark_UserPortrait_ETL_v2") \ .load() # 写入ADX表 source_df.write \ .format("com.microsoft.kusto.spark.datasource") \ .option("kusto.cluster", "你的ADX集群地址") \ .option("kusto.database", "目标数据库名") \ .option("kusto.table", "目标表名") \ .option("kusto.http.headers", "x-ms-app:你的自定义应用标识") \ .mode("append") \ .save()
Scala示例:
val df = spark.read .format("com.microsoft.kusto.spark.datasource") .option("kusto.cluster", "你的ADX集群地址") .option("kusto.database", "目标数据库名") .option("kusto.query", "自定义KQL查询语句") .option("kusto.http.headers", "x-ms-app:你的自定义应用标识") .load()
Spark SQL 配置
如果通过Spark SQL创建临时表关联ADX数据源,在表属性中添加对应配置即可:
CREATE TEMPORARY VIEW adx_order_view USING com.microsoft.kusto.spark.datasource TBLPROPERTIES ( 'kusto.cluster' = '你的ADX集群地址', 'kusto.database' = '目标数据库名', 'kusto.table' = 'OrderFact', 'kusto.http.headers' = 'x-ms-app:Spark_SQL_Adhoc_Query_Analyst' );
配置校验
配置完成后,在ADX侧执行如下KQL即可核查查询记录中的x-ms-app标识是否正确填充:
.show queries | where StartedOn > ago(1h) | project StartedOn, Database, User, AppName = tostring(Properties.ClientRequestProperties["x-ms-app"])
版本注意:如果当前使用的Connector版本低于2.4.0,需要先升级到2.4.0及以上稳定版本,低版本未开放自定义HTTP头的配置入口,无法通过配置方式注入x-ms-app头。
内容的提问来源于stack exchange,提问作者Fernando Messas
相关产品推荐
相关产品推荐

