gpt4 book ai didi

python - 如何使用azure-kusto-python进行跨集群、跨数据库查询?

转载 作者:行者123 更新时间:2023-12-03 03:35:09 47 4
gpt4 key购买 nike

目前我可以使用azure-kusto-python查询单个集群和单个数据库:

KQL 查询:

StormEventInfo
| take 10
| where environment contains "templ"
| where userType == "user" or isempty(userType)

Python代码如下:

client = KustoClient(
KustoConnectionStringBuilder.with_aad_application_key_authentication(
KUSTO_CLUSTER,
CLIENT_ID,
CLIENT_SECRET,
AAD_TENANT_ID
)
)
response = client.execute(MY_DB_ID, query)

但是如果KQL查询如下(它是跨集群和数据库的,这是一个聚合查询),我应该如何使用这个sdk在python中进行编码?

let Cluster = entity_group [
cluster('https://b1.abc.net/').database('2f43e3ae086a0'), cluster('https://b2.abc.net').database('6a009979fa88')
];
macro-expand Cluster as X (
X.StormEventInfo
| take 10
| where environment contains "templ"
| where userType == "user" or isempty(userType)

感谢各位的帮助!

最佳答案

在跨集群或跨数据库查询中,对远程集群/数据库的引用包含在查询文本中(例如 cluster("other_cluster)"database("other_database"))。

您无需在调用代码中进行任何特殊配置。

例如,如果您有:

  1. clusterAdatabaseA 中的 tableA
  2. clusterBdatabaseB 中的 tableB

并且您想要合并 12 的内容,那么您可以执行以下任一操作:

  • 将以下查询发送到 clusterA/databaseA:

    表A | union cluster("clusterB").database("databaseB").table("tableB")

  • 将以下查询发送到 clusterB/databaseB:

    表B | union cluster("clusterA").database("databaseA").table("tableA")

无论如何,您确实需要确保用于身份验证的主体身份对请求发送到的集群/数据库以及查询文本中引用的其他集群/数据库都具有读取权限。

关于python - 如何使用azure-kusto-python进行跨集群、跨数据库查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73623115/

47 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com