如何通过 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 查询语言脚本,它创建了两个表,MyTableMyTable2
.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 数据资源管理器中创建表和摄取映射的主要内容,如果未能解决你的问题,请参考以下文章

如何将对象参数作为哈希表传递给 json arm 模板?

如何通过 ARM 模板在 StorageAccount 中设置选定的网络

Azure ARM-DSC VM配置

Azure ARM - DSC VM 配置

如何从 PowerShell 脚本触发 T4 模板

使用 ARM 模板的带有静态 Header 的 WEBHOOK 类型的事件订阅