如何通过 PowerShell 或 ARM 模板在 Azure 数据资源管理器中创建表和摄取映射
Posted
技术标签:
【中文标题】如何通过 PowerShell 或 ARM 模板在 Azure 数据资源管理器中创建表和摄取映射【英文标题】:How to create Table and Ingestion Mapping in Azure Data Explorer via PowerShell or ARM Template 【发布时间】:2021-08-16 14:46:34 【问题描述】:我们希望自动创建和设置 Azure 数据资源管理器集群。
通过 ARM 模板配置集群和创建数据库没有问题。
创建数据连接以通过事件中心摄取数据流也可以通过 New-AzKustoDataConnection PowerShell 命令进行。
但是,此命令要求数据库中存在表和摄取映射。
如何在环境设置脚本中创建一个表以及摄取映射? 这是否可以通过 PowerShell 或 ARM 模板实现?【问题讨论】:
【参考方案1】:最近,Kusto management PowerShell API 以及其他语言 SDK(例如 C#)中添加了在数据库上下文中运行包含 KQL 命令的custom script 的功能。您可以使用它来创建表和表的映射。
【讨论】:
【参考方案2】:您可以在 ARM 模板部署期间运行 Kusto 查询语言脚本来配置您的数据库。 Kusto 查询语言脚本是一个或多个控制命令的列表,每个命令都由一个换行符分隔,并创建为将使用 ARM 模板访问的资源。该脚本只能运行以下动词开头的控制命令:
.create
.create-or-alter
.create-merge
.alter
.alter-merge
整体流程如下:
-
创建包含控制命令的脚本。例如,下面的代码是一个 Kusto 查询语言脚本,它创建了两个表,
MyTable
和 MyTable2
:
.create table MyTable (Level:string, Timestamp:datetime, UserId:string, TraceId:string, Message:string, ProcessId:int32)
.create table MyTable2 (Level:string, Timestamp:datetime, UserId:string, TraceId:string, Message:string, ProcessId:int32)
将您的 Kusto 查询语言脚本上传到 Azure 存储帐户。
使用共享访问签名 (SaS) 提供对此文件的访问权限。您可以使用 PowerShell、CLI 或 .NET 执行此操作。
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": ... ,
"variables": ,
"resources": [
"type": "Microsoft.Kusto/Clusters/Databases/Scripts",
"apiVersion": "2021-01-01",
"name": "[concat(concat(parameters('clusterName'), '/'), concat(parameters('databaseName'), '/'), parameters('scriptName'))]",
"properties":
"scriptUrl": "[parameters('scriptUrl')]",
"scriptUrlSasToken": "[parameters('scriptUrlSasToken')]",
"continueOnErrors": "[parameters('continueOnErrors')]",
"forceUpdateTag": "[parameters('forceUpdateTag')]"
]
更多信息可以在the documentation找到。
【讨论】:
以上是关于如何通过 PowerShell 或 ARM 模板在 Azure 数据资源管理器中创建表和摄取映射的主要内容,如果未能解决你的问题,请参考以下文章