チュートリアル: Azure portal を使って Azure Cosmos DB ワークスペース データの変換を追加する
このチュートリアルでは、Azure portal を使って、サンプルの変換をワークスペース データ収集ルール (DCR) に構成する手順について説明します。
Note
Log Analytics を有効にする際のコストを改善するために、Log Analytics リソースにデータ収集規則と変換を追加して列を除外する機能、返される結果数を減らす機能、データが宛先に送信される前に新しい列を作成する機能をサポートしました。
ワークスペース変換は、そのワークスペース用の 1 つの DCR (ワークスペース DCR と呼ばれます) にまとめて格納されます。 各変換は、特定のテーブルに関連付けられます。 変換は、DCR を使わないすべてのワークフローからこのテーブルに送信されるすべてのデータに適用されます。
Note
このチュートリアルでは、Azure portal を使って、ワークスペース変換を構成します。 Azure Resource Manager テンプレートと REST API を使用した同じチュートリアルについては、「チュートリアル: Resource Manager テンプレートを使ってワークスペース データ収集ルールの変換を Azure Monitor に追加する」を参照してください。
このチュートリアルでは、以下の内容を学習します。
- Log Analytics ワークスペースのテーブルに対してワークスペース変換を構成する。
- ワークスペース変換用のログ クエリを作成する。
前提条件
このチュートリアルを完了するには、次のものが必要です。
- 少なくとも共同作成者権限がある Log Analytics ワークスペース。
- ワークスペースでDCR オブジェクトを作成するためのアクセス許可。
- データが既にあるテーブル。
- テーブルをワークスペース変換 DCR にリンクすることはできません。
チュートリアルの概要
このチュートリアルでは、特定のレコードをフィルターすることで、CDBDataPlaneRequests
テーブルのストレージ要件を削減します。 また、列データを解析してカスタム列にデータを格納するときに、列の内容を削除します。 CDBDataPlaneRequests テーブルは、ワークスペースのログ分析を有効にすると作成されます。
このチュートリアルでは、Azure portal を使用して、インジェスト時間変換を作成するプロセスの手順を説明するウィザードを提供します。 手順を完了すると、ウィザードが次のように表示されます。
- クエリから他の列を使用してテーブル スキーマを更新します。
WorkspaceTransformation
DCR を作成し、既定の DCR がまだワークスペースにリンクされていない場合は、それをワークスペースにリンクします。- インジェスト時間変換を作成し、DCR に追加します。
クエリ監査ログを有効にする
使う CDBDataPlaneRequests
テーブルが作成するには、ワークスペースのログ分析を有効にする必要があります。 このステップは、すべてのインジェスト時間変換には必要ありません。 使うサンプル データを生成するだけです。
変換をテーブルに追加する
テーブルが作成されたので、それに対して変換を作成できます。
Azure portal の [Log Analytics ワークスペース] メニューで、[テーブル]を選択します。
CDBDataPlaneRequests
テーブルを見つけて、[変換の作成] を選択します。これはワークスペースの最初の変換であるため、ワークスペース変換の DCR を作成する必要があります。 同じワークスペースで他のテーブルの変換を作成すると、それらはこの同じ DCR に格納されます。 [新しいデータ収集ルールの作成] を選択します。 [サブスクリプション] と [リソース グループ] には、ワークスペースの値が既に設定されています。 DCR の名前を入力し、[完了] を選択します。
[次へ] を選択して、テーブルからサンプル データを表示します。 変換を定義すると、結果がサンプル データに適用されます。 このため、実際のデータに適用する前に結果を評価できます。 変換を定義するには、[変換エディター] を選択します。
変換エディターでは、データがテーブルにインジェストされる前にデータに適用される変換を確認できます。
source
という仮想テーブルは受信データを表します。変換先テーブル自体と列のセットは同じです。 変換には、最初は変更なしでsource
テーブルを返す単純なクエリが含まれています。次の例のようにクエリを修正します。
source | where StatusCode != 200 // searching for requests that are not successful | project-away Type, TenantId
この修正により、次の変更が行われます。
- これらのログ エントリは役に立たないため、スペースを節約するために
CDBDataPlaneRequests
テーブル自体のクエリに関連する行が削除されます。 TenantId
とType
の列のデータは、領域を節約するために削除されました。- 変換は、クエリで
extend
演算子を使った列の追加もサポートしています。
注意
Azure portal を使用すると、変換の出力により、必要に応じてテーブルスキーマへの変更が開始されます。 列がまだ存在しない場合は、変換出力に一致するように列が追加されます。 テーブルに追加しない列が出力に含まれていないことを確認してください。 テーブルに既に存在する列が出力に含まれていない場合、それらの列は削除されませんが、データは追加されません。
組み込みテーブルに追加されたカスタム列の末尾は、
_CF
にする必要があります。 カスタム テーブルに追加された列には、このサフィックスが含まれている必要はありません。 カスタム テーブルの名前は_CL
で終わります。- これらのログ エントリは役に立たないため、スペースを節約するために
クエリを変換エディターにコピーし、[実行] を選択してサンプル データの結果を表示します。 新しい
Workspace_CF
列がクエリに含まれていることを確認できます。[適用] を選択して変換を保存し、[次へ] を選択して構成を確認します。 [作成] を選択して、新しい変換で DCR を更新します。
変換をテストする
変換が有効になるまで約 30 分待ってから、テーブルに対してクエリを実行してテストします。 この変換は、変換が適用された後にテーブルに送信されるデータのみに影響します。
このチュートリアルでは、いくつかのサンプル クエリを実行して、CDBDataPlaneRequests
テーブルにデータを送信します。 変換によってこれらのレコードがフィルター処理されることを確認できるように、CDBDataPlaneRequests
に対するクエリをいくつか含めます。
トラブルシューティング
このセクションでは、発生する可能性があるさまざまなエラー状態とその修正方法について説明します。
Log Analytics の IntelliSense でテーブルの新しい列が認識されない
IntelliSense を動作させるキャッシュは、更新に最大 24 時間かかる場合があります。
動的列の変換が機能していません
既知の問題は現在、動的列に影響を与えます。 一時的な回避策は、動的列データに対して操作を実行する前に、parse_json()
を使用して明示的に解析することです。