memlookup

クエリ結果を使用してインメモリマッピングテーブルを作成、照会、削除します。作成されたインメモリマッピングテーブルはlookupコマンドで照会できます。

コマンドプロパティ

項目説明
コマンドタイプドライバクエリまたは加工クエリ
必要な権限なし
ライセンス使用量集計なし
並列実行非対応
分散実行非対応

構文

インメモリマッピングテーブルの一覧を照会するには:

memlookup [op=list]

特定のインメモリマッピングテーブルのデータを照会するには:

memlookup [op=list] name=STR

インメモリマッピングテーブルを作成するには:

memlookup op=build name=STR key=STR FIELD, ...

インメモリマッピングテーブルを削除するには:

memlookup op=drop name=STR

オプション

op={list|build|drop}
実行する操作。(デフォルト:list
  • list: インメモリマッピングテーブルの一覧を照会するか、nameが指定されている場合はそのマッピングテーブルのデータを照会します。
  • build: 前の段階から渡された入力レコードを使用してインメモリマッピングテーブルを作成します。
  • drop: 指定したインメモリマッピングテーブルを削除します。
name=STR
インメモリマッピングテーブルの名前。buildおよびdrop操作では必須です。
key=STR
マッピングテーブルのキーフィールドの名前。build操作では必須です。

対象

[FIELD, ...]
build操作でマッピングテーブルに保存するフィールドのリスト。カンマ(,)で区切って複数のフィールドを指定できます。

出力フィールド

op=listnameを指定しない場合:

フィールドタイプ説明
name文字列インメモリマッピングテーブルの名前
key文字列マッピングテーブルのキーフィールドの名前
size32ビット整数マッピングテーブルに保存されたレコード数

op=listnameを指定した場合は、そのマッピングテーブルに保存されたすべてのフィールドを出力します。

エラーコード

パースエラー
エラーコードメッセージ説明
22000unsupported-memlookup-opopオプションにlistbuilddrop以外の値を指定した場合
22001マッピングテーブル名を入力してください。build操作でnameが指定されていない場合
22002マッピングテーブルのキーがありません。build操作でkeyが指定されていない場合
22003マッピングテーブル名を入力してください。drop操作でnameが指定されていない場合
22004[name]は無効なマッピングテーブルです。list操作で存在しないインメモリマッピングテーブルを指定した場合
ランタイムエラー
エラーコードメッセージ説明後処理動作
22005[name]は無効なマッピングテーブルです。list操作で存在しないインメモリマッピングテーブルを照会した場合クエリを中断します。

説明

memlookupコマンドは、クエリ結果を使用してインメモリマッピングテーブルを作成・管理します。作成されたマッピングテーブルはlookupコマンドで通常のマッピングテーブルと同様に使用できます。

op=listnameを指定しない場合はドライバクエリとして動作し、すべてのインメモリマッピングテーブルのメタデータを出力します。nameを指定した場合はそのマッピングテーブルの全データを出力します。

op=buildの場合は加工クエリとして動作します。前の段階から渡された入力レコードのkeyフィールド値を基準にマッピングテーブルを構成します。キーフィールド値がnullのレコードは無視します。同じキーが複数回登場した場合は最初に現れたレコードのみを保存します。マッピングテーブルに保存できる最大レコード数は100,000件です。クエリがキャンセルされるとマッピングテーブルは登録されません。同じ名前のインメモリマッピングテーブルがすでに存在する場合は上書きします。

op=dropの場合はクエリ開始時に指定したインメモリマッピングテーブルを削除します。削除対象が存在しないか、インメモリマッピングテーブルでない場合は無視します。

使用例

  1. インメモリマッピングテーブルの一覧照会

    memlookup
    

    登録されたすべてのインメモリマッピングテーブルの名前、キーフィールド、レコード数を出力します。

  2. インメモリマッピングテーブルの作成

    json "[{'ip': '192.0.2.1', 'hostname': 'web-01', 'zone': 'dmz'}, {'ip': '192.0.2.2', 'hostname': 'db-01', 'zone': 'internal'}]"
    | memlookup op=build name=ip_hosts key=ip hostname, zone
    

    ipフィールドをキーとしてhostnamezoneフィールドを含むip_hostsインメモリマッピングテーブルを作成します。

  3. インメモリマッピングテーブルのデータ照会

    memlookup op=list name=ip_hosts
    

    ip_hostsインメモリマッピングテーブルに保存されたすべてのレコードを出力します。

  4. インメモリマッピングテーブルを使用したlookup照会

    json "[{'src_ip': '192.0.2.1'}, {'src_ip': '192.0.2.2'}]"
    | lookup ip_hosts src_ip as ip output hostname
    

    memlookupで作成したip_hostsマッピングテーブルをlookupコマンドで照会します。

  5. インメモリマッピングテーブルの削除

    memlookup op=drop name=ip_hosts
    

    ip_hostsインメモリマッピングテーブルを削除します。