Real-Time インテリジェンス チュートリアル パート 3: KQL データベース内のデータを変換する
手記
このチュートリアルはシリーズの一部です。 前のセクションについては、「Real-Time Intelligence チュートリアル パート 2: Real-Time ハブでデータを取得する」を参照してください。
チュートリアルのこの部分では、更新ポリシーを使用して、Real-Time インテリジェンスの KQL データベース内のデータを変換する方法について説明します。 更新ポリシーは、新しいデータがテーブルに書き込まれるときにトリガーされる自動化メカニズムです。 取り込まれたデータを変換し、結果を変換先テーブルに保存するクエリを実行することで、特別なオーケストレーションが不要になります。 1 つのテーブルに複数の更新ポリシーを定義できるため、異なる変換を行い、データを複数のテーブルに同時に保存できます。 ターゲット テーブルには、ソース テーブルとは異なるスキーマ、アイテム保持ポリシー、およびその他のポリシーを含めることができます。
生データ テーブルをブロンズ フォルダーに移動する
この手順では、生データ テーブルを Bronze フォルダーに移動して、KQL データベース内のデータを整理します。
前の手順で作成した KQL データベース (Tutorial) を参照します。
オブジェクト ツリーの KQL データベース名で、Tutorial_querysetという名前のクエリ ワークスペースを選択します。
次のコマンドをコピー/貼り付けしてテーブルを変更し、テーブルを 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")
ターゲット テーブルを作成する
この手順では、更新ポリシーで変換されたデータを格納するために使用するターゲット テーブルを作成します。
次のコマンドをコピーして貼り付け、指定したスキーマを持つ 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")
コマンドを実行してテーブルを作成します。 これで、オブジェクト ツリーの
Tables ノードの下に、TransformedDataと呼ばれる別テーブルが表示されます。
変換ロジックを使用して関数を作成する
この手順では、更新ポリシーで使用する変換ロジックを保持するストアド関数を作成します。 この関数は、BikepointID 列を解析し、2 つの新しい計算列を追加します。
メニューリボンから、[データベース] を選択します。
[+新規]>[関数] を選択します。
次のコードと一致するように関数を編集するか、次のコマンドをコピーしてクエリ エディターに貼り付けます。
.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") }
コマンドを実行して関数を作成します。 これで、オブジェクト ツリーの
Functions ノードの下に、TransformRawData関数が表示されます。
更新ポリシーを適用する
この手順では、ターゲット テーブルに更新ポリシーを適用してデータを変換します。 更新ポリシーでは、TransformRawData()
メニュー リボンで、[データベース ] を選択します。
+ 新しい>テーブル更新ポリシーを選択します。
次のコードと一致するようにポリシーを編集するか、次のコマンドをコピーしてクエリ エディターに貼り付けます。
.alter table TransformedData policy update ```[{ "IsEnabled": true, "Source": "RawData", "Query": "TransformRawData()", "IsTransactional": false, "PropagateIngestionProperties": false }]```
コマンドを実行して、更新ポリシーを作成します。
変換の確認
この手順では、ソース テーブルとターゲット テーブルからの出力を比較することで、変換が成功したことを確認します。
手記
変換されたテーブルにデータが表示されるまでに数秒かかる場合があります。
次のクエリをコピーしてクエリ エディターに貼り付けて、ソース テーブル内の 10 個の任意のレコードを表示します。 クエリを実行します。
RawData | take 10
次のクエリをコピーしてクエリ エディターに貼り付けて、ターゲット テーブル内の 10 個の任意のレコードを表示します。 クエリを実行します。
TransformedData | take 10
ターゲットテーブルの BikepointID 列には、もはやプレフィックス "BikePoints_" が含まれていないことに注意してください。
関連コンテンツ
このチュートリアルで実行されるタスクの詳細については、以下を参照してください。
次の手順
Real-Time インテリジェンスチュートリアル パート 4: KQL を使用してストリーミング データにクエリを実行する