注
このチュートリアルはシリーズの一部です。 前のセクションについては、「 Real-Time Intelligence チュートリアル パート 3: eventstream にアラートを設定する」を参照してください。
チュートリアルのこの部分では、更新ポリシーを使用して KQL データベース内のデータを変換し、新しいデータがテーブルに書き込まれるときに自動化されたメカニズムをトリガーします。 このポリシーでは、取り込まれたデータを変換し、結果を宛先テーブルに保存するクエリを実行することで、特別なオーケストレーションが不要になります。
1 つのテーブルに複数の更新ポリシーを定義できるため、さまざまな変換が可能になり、データを複数のテーブルに同時に保存できます。 ターゲット テーブルには、ソース テーブルとは異なるスキーマ、アイテム保持ポリシー、およびその他のポリシーを含めることができます。
生データ テーブルを Bronze フォルダーに移動する
この手順では、生データ テーブルを Bronze フォルダーに移動して、KQL データベース内のデータを整理します。
リソースを作成したワークスペースに移動します。
前に作成した チュートリアル KQL データベースを選択します。
オブジェクト ツリーの KQL データベース名で、Tutorial_querysetという名前のクエリ ワークスペース を選択します。
次のコマンドをコピーしてクエリ エディターに貼り付けて、 RawData テーブルを Bronze フォルダーに移動します。 メニュー リボンの [実行 ] ボタンを選択するか、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")オブジェクト ツリーの Tables ノードの下に RawData というテーブルが含まれる 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")コマンドを実行してテーブルを作成します。
オブジェクト ツリーの [テーブル] ノードの下に TransformedData というテーブルが含まれる Silver という名前の新しいフォルダーが表示されます。
変換ロジックを使用して関数を作成する
この手順では、更新ポリシーで使用する変換ロジックを保持するストアド関数を作成します。 この関数は 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() を使用して BikepointID 列を解析し、2 つの新しい計算列を追加します。
メニュー リボンから[ データベース]を選択します。
[ + 新規>テーブル更新ポリシー] を選択します。
次のコードと一致するようにポリシーを編集するか、次のコマンドをコピーしてクエリ エディターに貼り付けます。
.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_" がもう含まれていないことに注意してください。
関連コンテンツ
このチュートリアルのタスクの詳細については、以下を参照してください。