ログのエクスポート

検索結果をオフラインで格納する場合、Oracle Log Analyticsでは、検索結果がカンマ区切り値(CSV)、JavaScript Object Notation (JSON)またはParquet形式でエクスポートされます。

トピック:

CLIを使用して問合せ結果をエクスポートするには、コマンドライン・リファレンスを参照してください。

コンソールから検索結果をエクスポートするには:

  1. ログを検索して目的の結果を取得します。
  2. 「アクション」をクリックし、「エクスポート」をクリックします。
  3. ファイル形式として、「カンマ区切り値」または「JavaScriptオブジェクト注釈」を選択します。

    また、REST APIおよびCLIを使用して、検索結果をParquet形式でエクスポートできます。例は、ログのエクスポートの例を参照してください。

  4. ファイルの名前を入力し、「エクスポート」をクリックします。

レコードおよびヒストグラムのビジュアライゼーションの場合、検索結果は、時間、元のログ・コンテンツ、および選択したすべての表示フィールドに基づいてエクスポートされます。表のビジュアライゼーションの場合、検索結果は、時間および選択した表示フィールドに基づいてエクスポートされます。その他のビジュアライゼーションの場合、選択したビジュアライゼーションに表示される問合せの結果がエクスポートされます。

エクスポート限度

エクスポート結果をストリームできる場合、データ・ソースから取得された結果の最大数は1,000,000です。ストリームされない場合、最大数は次のとおりです。

  • 500問合せにlinkコマンドが含まれている場合
  • 10,000問合せにlinkコマンドが含まれていない場合
  • 問合せにheadtailstatsなどのコマンドが含まれている場合は、10,000。

大規模なエクスポート

Oracle Log Analyticsは、ログの検索および集計用に最適化されていますが、大量のデータのエクスポートには最適化されていません。大規模なエクスポートは、システムへの影響を最小限に抑えるために制限および調整されます。

エクスポート問合せの制限および制限

  • 制限:

    • 1秒当たり最大1つのエクスポート
    • 1分当たり最大7エクスポート
    • 15分当たり最大100個のエクスポート
  • 許可されないコマンド:

    大フィールドとは、大量のデータを保持するために使用されるフィールドです。リソース使用率が高いため、ログのエクスポートに使用される問合せの大きいフィールドでは、次のコマンドを使用できません。

    extract
    jsonextract
    xmlextract
    
    eval/where
       substr
       replace
       reverse

    また、問合せの大きいフィールドではLIKEを使用しないでください。

    次に、大きなフィールドの例をいくつか示します。

    Arguments
    Call Stack Trace
    Data Received
    Data Sent
    Environment
    Error Stack Dump
    Error Text
    Exception
    Message
    Original Log Content
    Resource Limit Settings
    SQL Bind Variables
    SQL Statement
    Stack Trace
    Supplemental Detail
    URI

    大きいフィールドを一時変数に割り当てず、前述のコマンドで使用します。次のような操作から導出されたフィールドは、前述のコマンドでは使用できません。

    message
    message || a, 
    a || message, 
    concat(message, a), 
    concat(a, message), 
    upper(message), 
    lower(message), 
    trim(message), 
    ltrim(message), 
    rtrim(message)

    エクスポート問合せでワイルドカード問合せおよびextractregexなどのコマンドを使用するかわりに、拡張フィールドを定義し、このような要件にそれらのフィールドを使用します。ソースでの拡張フィールドの使用を参照してください。

  • ログ・パーティション化を使用している場合:

    テナントでログ・パーティション化を有効にしている場合は、エクスポート問合せに最大5個のログ・セットを含めることができます。

  • ストリーミング・エクスポートの問合せ:

    sortコマンドは、エクスポート問合せのストリーミングではサポートされていません。

ログのエクスポートの例

  • CSV形式の特定のフィールドを含むログのエクスポート: fields -,* 'User ID', 'Host IP Address', Status, Timeの必須フィールドのみを含めるように問合せ文字列を変更し、--output-formatパラメータを使用します。例:
    oci log-analytics query export --output-format CSV --compartment-id $compartment_id --namespace-name $namespace_name --query-string "fields -,* 'User ID', 'Host IP Address', Status, Time" --file $file
  • 多数のログ(50,000ログ・レコード)のエクスポート: --max-total-countパラメータをoci log-analytics query exportとともに使用して、出力を50,000レコードに制限します。例:
    oci log-analytics query export --compartment-id $compartment_id --namespace-name $namespace_name --query-string $query_string --max-total-count 50000 --file $file
  • 特定の日付範囲のログのエクスポート: oci log-analytics query export--time-startおよび--time-endパラメータを使用します。例:
    oci log-analytics query export --compartment-id $compartment_id --namespace-name $namespace_name --query-string $query_string --time-start 2024-12-15T20:30Z --time-end 2025-03-15T20:29Z --file $file
  • ログをparquet (pq)形式でエクスポート: API: ExportDetailsリファレンスおよびCLI: 問合せエクスポートを参照してください。
    oci log-analytics query export --output-format PARQUET --compartment-id $compartment_id --namespace-name $namespace_name --query-string $query_string --file $file

    エクスポートされたparquetファイルの読取り:

    import pandas as pd
    table = pd.read_parquet('example.parquet')

    Parquet表では、問合せ列の内部名が使用されます。列の表示名は、parquetファイル・メタデータに格納されます。

    import json
    import pyarrow.parquet as pq
    metadata = pq.read_metadata('example.parquet').metadata
    fields = json.loads(metadata[b'parquet.avro.schema'])['fields']
    table.rename(columns={ field['name'] : field['doc'] for field in fields })