Real-Time 智能教程第 4 部分:转换 KQL 数据库中的数据

注释

本教程是系列教程的一部分。 有关上一部分,请参阅: Real-Time 智能教程第 3 部分:在事件流上设置警报

本教程的这一部分介绍如何使用更新策略在 Real-Time Intelligence 中转换 KQL 数据库中的数据。 更新策略是在将新数据写入表时触发的自动化机制。 它们通过运行查询来转换引入的数据并将结果保存到目标表,从而消除了对特殊业务流程的需求。 可以在单个表上定义多个更新策略,从而允许不同的转换并将数据同时保存到多个表。 目标表可以具有与源表不同的架构、保留策略和其他策略。

将原始数据表移动到青铜文件夹

在此步骤中,将原始数据表移动到青铜文件夹中以组织 KQL 数据库中的数据。

  1. 导航到您的工作区。

  2. 选择在上一步中创建的 KQL 数据库,名为 Tutorial

    从数据库项树中选择教程查询集的屏幕截图。

  3. 在对象树中,在 KQL 数据库名称下,选择名为 “Tutorial_queryset”的查询工作区。

  4. 在查询编辑器中复制/粘贴并运行以下命令,将表移动到铜牌文件夹中。 可以通过从菜单功能区中选择 “运行 ”按钮或按 Shift + Enter 来运行查询。

    .alter table RawData (BikepointID:string,Street:string,Neighbourhood:string,Latitude:real,Longitude:real,No_Bikes:long,No_Empty_Docks:long,Timestamp:datetime) with (folder="Bronze")
    

创建目标表

在此步骤中,你将创建一个目标表,用于存储使用更新策略转换的数据。

  1. 在新行中,游标与最后一个查询之间至少有一行,复制/粘贴以下命令,以创建具有指定架构的新表 TransformedData

    .create table TransformedData (BikepointID: int, Street: string, Neighbourhood: string, Latitude: real, Longitude: real, No_Bikes: long, No_Empty_Docks: long, Timestamp: datetime, BikesToBeFilled: long, Action: string) with (folder="Silver")
    
  2. 运行命令以创建表。 现在,应在名为 TransformedData 的对象树中的“表”节点下看到另一个表。

使用转换逻辑创建函数

在此步骤中,将创建一个存储函数,用于保存要用于更新策略的转换逻辑。 该函数分析 BikepointID 列并添加两个新的计算列。

  1. 在菜单功能区中,选择“ 数据库”。

  2. 选择 “+新建>函数”。

  3. 编辑函数,使其与以下代码匹配,或将以下命令复制/粘贴到查询编辑器中。

    .create-or-alter function TransformRawData() {
    RawData
    | parse BikepointID with * "BikePoints_" BikepointID:int
    | extend BikesToBeFilled = No_Empty_Docks - No_Bikes
    | extend Action = iff(BikesToBeFilled > 0, tostring(BikesToBeFilled), "NA")
     }
    
  4. 运行命令以创建函数。 现在,应在对象树的 Functions 节点下看到 FunctionTransformRawData

应用更新策略

在此步骤中,将更新策略应用于目标表以转换数据。 更新策略使用存储的函数 TransformRawData() 分析 BikepointID 列并添加两个新的计算列。

  1. 在菜单功能区中,选择“ 数据库”。

  2. 选择+ 新建>表更新策略

  3. 编辑策略,使其与以下代码匹配,或将以下命令复制/粘贴到查询编辑器中。

    .alter table TransformedData policy update
    ```[{
        "IsEnabled": true,
        "Source": "RawData",
        "Query": "TransformRawData()",
        "IsTransactional": false,
        "PropagateIngestionProperties": false
    }]```
    
  4. 运行命令以创建更新策略。

验证转换

在此步骤中,通过比较源表和目标表的输出来验证转换是否成功。

注释

查看转换后的表中的数据可能需要几秒钟时间。

  1. 将以下查询复制/粘贴到查询编辑器中,以查看源表中的 10 条任意记录。 运行查询。

    RawData
    | take 10
    
  2. 将以下查询复制/粘贴到查询编辑器中,以查看目标表中的 10 条任意记录。 运行查询。

    TransformedData
    | take 10
    

请注意,目标表中的 BikepointID 列不再包含前缀“BikePoints_”。

有关本教程中执行的任务的详细信息,请参阅:

后续步骤