次の方法で共有


Real-Time インテリジェンス チュートリアル パート 3: KQL データベース内のデータを変換する

手記

このチュートリアルはシリーズの一部です。 前のセクションについては、「Real-Time Intelligence チュートリアル パート 2: Real-Time ハブでデータを取得する」を参照してください。

チュートリアルのこの部分では、更新ポリシーを使用して、Real-Time インテリジェンスの KQL データベース内のデータを変換する方法について説明します。 更新ポリシーは、新しいデータがテーブルに書き込まれるときにトリガーされる自動化メカニズムです。 取り込まれたデータを変換し、結果を変換先テーブルに保存するクエリを実行することで、特別なオーケストレーションが不要になります。 1 つのテーブルに複数の更新ポリシーを定義できるため、異なる変換を行い、データを複数のテーブルに同時に保存できます。 ターゲット テーブルには、ソース テーブルとは異なるスキーマ、アイテム保持ポリシー、およびその他のポリシーを含めることができます。

生データ テーブルをブロンズ フォルダーに移動する

この手順では、生データ テーブルを Bronze フォルダーに移動して、KQL データベース内のデータを整理します。

  1. 前の手順で作成した KQL データベース (Tutorial) を参照します。

  2. オブジェクト ツリーの KQL データベース名で、Tutorial_querysetという名前のクエリ ワークスペースを選択します。

  3. 次のコマンドをコピー/貼り付けしてテーブルを変更し、テーブルを Bronze フォルダーに移動します。

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

ターゲット テーブルを作成する

この手順では、更新ポリシーで変換されたデータを格納するために使用するターゲット テーブルを作成します。

  1. 次のコマンドをコピーして貼り付け、指定したスキーマを持つ TransformedData という名前の新しいテーブルを作成します。

    .create table TransformedData (BikepointID: int, Street: string, Neighbourhood: string, Latitude: dynamic, Longitude: dynamic, No_Bikes: long, No_Empty_Docks: long, Timestamp: datetime, BikesToBeFilled: long, Action: string) with (folder="Silver")
    
  2. コマンドを実行してテーブルを作成します。 これで、オブジェクト ツリーの Tables ノードの下に、TransformedDataと呼ばれる別 テーブルが表示されます。

変換ロジックを使用して関数を作成する

この手順では、更新ポリシーで使用する変換ロジックを保持するストアド関数を作成します。 この関数は、BikepointID 列を解析し、2 つの新しい計算列を追加します。

  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 ノードの下に、TransformRawData 関数が表示されます。

更新ポリシーを適用する

この手順では、ターゲット テーブルに更新ポリシーを適用してデータを変換します。 更新ポリシーでは、TransformRawData() 格納された関数を使用して、BikepointID 列を解析し、2 つの新しい計算列を追加します。

  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_" が含まれていないことに注意してください。

このチュートリアルで実行されるタスクの詳細については、以下を参照してください。

次の手順

Real-Time インテリジェンスチュートリアル パート 4: KQL を使用してストリーミング データにクエリを実行する