Log Analytics と Excel を統合する

M クエリと Log Analytics API を使用して、Azure Monitor Log Analytics と Microsoft Excel を統合できます。 この統合により、特定の数のレコードと MB のデータを送信できるようになります。 これらの制限は、Azure portal のセクションにある Azure Monitor Log Analytics ワークスペースの制限に関するページに記載されています。

注意

Excel はローカル クライアント アプリケーションであるため、大量のデータ セットを処理する際のパフォーマンスと機能は、ローカルのハードウェアとソフトウェアの制限に影響されます。

前提条件

Log Analytics と Excel を統合するには、次のものが必要です。

必要なアクセス許可

クエリを実行する Log Analytics ワークスペースに対し、Microsoft.OperationalInsights/workspaces/query/*/read アクセス許可が必要です。これは、たとえば、Log Analytics 閲覧者組み込みロールによって提供されます。

Log Analytics で M クエリを作成する

  1. 通常どおり、Log Analytics でクエリを作成して実行します。 ユーザー インターフェイスでレコードの制限数に達しても心配はいりません。 ‘ago’ 関数や UI タイム ピッカーなどの相対日付を使用することをお勧めします。これにより、Excel で適切なデータ セットが更新されます。

  2. クエリをエクスポートします。クエリとその結果に問題がなければ、Log Analytics の [エクスポート] メニューの下にある [Power BI へエクスポート (M Query)] メニュー選択を使用して M にクエリをエクスポートします。

    Screenshot of Log Analytics query with the data and export option.

このオプションを選択すると、Excel で使用できる M コードを含む .txt ファイルがダウンロードされます。

上のクエリは、次の M コードをエクスポートします。 この例のクエリでエクスポートされた M コードの例をこちらに示します。

/*
The exported Power Query Formula Language (M Language ) can be used with Power Query in Excel
and Power BI Desktop.
For Power BI Desktop follow the instructions below: 
1) Download Power BI Desktop from https://powerbi.microsoft.com/desktop/
2) In Power BI Desktop select: 'Get Data' -> 'Blank Query'->'Advanced Query Editor'
3) Paste the M Language script into the Advanced Query Editor and select 'Done'
*/

let AnalyticsQuery =
let Source = Json.Document(Web.Contents("https://api.loganalytics.io/v1/workspaces/ddcfc599-cae0-48ee-9026-fffffffffffff/query", 
[Query=[#"query"="

Heartbeat 
| summarize dcount(ComputerIP) by bin(TimeGenerated, 1h)    
| render timechart
",#"x-ms-app"="OmsAnalyticsPBI",#"timespan"="P1D",#"prefer"="ai.response-thinning=true"],Timeout=#duration(0,0,4,0)])),
TypeMap = #table(
{ "AnalyticsTypes", "Type" }, 
{ 
{ "string",   Text.Type },
{ "int",      Int32.Type },
{ "long",     Int64.Type },
{ "real",     Double.Type },
{ "timespan", Duration.Type },
{ "datetime", DateTimeZone.Type },
{ "bool",     Logical.Type },
{ "guid",     Text.Type },
{ "dynamic",  Text.Type }
}),
DataTable = Source[tables]{0},
Columns = Table.FromRecords(DataTable[columns]),
ColumnsWithType = Table.Join(Columns, {"type"}, TypeMap , {"AnalyticsTypes"}),
Rows = Table.FromRows(DataTable[rows], Columns[name]), 
Table = Table.TransformColumnTypes(Rows, Table.ToList(ColumnsWithType, (c) => { c{0}, c{3}}))
in
Table
in AnalyticsQuery

クエリを Excel に接続する

クエリをインポートするには、次のようにします。

  1. Microsoft Excel を開きます。

  2. リボンで、 [データ] メニューに移動します。 [データの取得] を選択します。 [その他のソース] から [空のクエリ] を選択します。

    Import from blank in Excel option

  3. Power Query ウィンドウで、 [詳細エディター] を選択します。

    Excel Advanced query editor

  4. 詳細エディターのテキストを Log Analytics からエクスポートしたクエリに置き換えます。

    Creating a blank query

  5. [完了] を選択し、次に [Load and close]\(ロードして閉じる\) を選択します。 Excel で、Log analytics API を使用してクエリが実行され、結果セットが表示されます。

    Query results in Excel

Note

レコード数が予想より少ない場合、結果の量は 61 MiB の制限を超える可能性があります。 クエリで project または project-away を使用して、列を必要なものに制限してみてください。

データの更新中

Excel から直接データを更新できます。 Excel リボンの [データ] メニュー グループで、 [更新] ボタンを選択します。

次のステップ

Excel と外部データ ソースの統合について詳しくは、「外部データ ソースからデータをインポートする (Power Query)」を参照してください。