memlookup
クエリ結果を使用してインメモリマッピングテーブルを作成、照会、削除します。作成されたインメモリマッピングテーブルはlookupコマンドで照会できます。
コマンドプロパティ
| 項目 | 説明 |
|---|---|
| コマンドタイプ | ドライバクエリまたは加工クエリ |
| 必要な権限 | なし |
| ライセンス使用量 | 集計なし |
| 並列実行 | 非対応 |
| 分散実行 | 非対応 |
構文
インメモリマッピングテーブルの一覧を照会するには:
特定のインメモリマッピングテーブルのデータを照会するには:
インメモリマッピングテーブルを作成するには:
インメモリマッピングテーブルを削除するには:
オプション
op={list|build|drop}- 実行する操作。(デフォルト:
list)
list: インメモリマッピングテーブルの一覧を照会するか、nameが指定されている場合はそのマッピングテーブルのデータを照会します。build: 前の段階から渡された入力レコードを使用してインメモリマッピングテーブルを作成します。drop: 指定したインメモリマッピングテーブルを削除します。
name=STR- インメモリマッピングテーブルの名前。
buildおよびdrop操作では必須です。 key=STR- マッピングテーブルのキーフィールドの名前。
build操作では必須です。
対象
[FIELD, ...]build操作でマッピングテーブルに保存するフィールドのリスト。カンマ(,)で区切って複数のフィールドを指定できます。
出力フィールド
op=listでnameを指定しない場合:
| フィールド | タイプ | 説明 |
|---|---|---|
| name | 文字列 | インメモリマッピングテーブルの名前 |
| key | 文字列 | マッピングテーブルのキーフィールドの名前 |
| size | 32ビット整数 | マッピングテーブルに保存されたレコード数 |
op=listでnameを指定した場合は、そのマッピングテーブルに保存されたすべてのフィールドを出力します。
エラーコード
パースエラー
| エラーコード | メッセージ | 説明 |
|---|---|---|
| 22000 | unsupported-memlookup-op | opオプションにlist、build、drop以外の値を指定した場合 |
| 22001 | マッピングテーブル名を入力してください。 | build操作でnameが指定されていない場合 |
| 22002 | マッピングテーブルのキーがありません。 | build操作でkeyが指定されていない場合 |
| 22003 | マッピングテーブル名を入力してください。 | drop操作でnameが指定されていない場合 |
| 22004 | [name]は無効なマッピングテーブルです。 | list操作で存在しないインメモリマッピングテーブルを指定した場合 |
ランタイムエラー
| エラーコード | メッセージ | 説明 | 後処理動作 |
|---|---|---|---|
| 22005 | [name]は無効なマッピングテーブルです。 | list操作で存在しないインメモリマッピングテーブルを照会した場合 | クエリを中断します。 |
説明
memlookupコマンドは、クエリ結果を使用してインメモリマッピングテーブルを作成・管理します。作成されたマッピングテーブルはlookupコマンドで通常のマッピングテーブルと同様に使用できます。
op=listでnameを指定しない場合はドライバクエリとして動作し、すべてのインメモリマッピングテーブルのメタデータを出力します。nameを指定した場合はそのマッピングテーブルの全データを出力します。
op=buildの場合は加工クエリとして動作します。前の段階から渡された入力レコードのkeyフィールド値を基準にマッピングテーブルを構成します。キーフィールド値がnullのレコードは無視します。同じキーが複数回登場した場合は最初に現れたレコードのみを保存します。マッピングテーブルに保存できる最大レコード数は100,000件です。クエリがキャンセルされるとマッピングテーブルは登録されません。同じ名前のインメモリマッピングテーブルがすでに存在する場合は上書きします。
op=dropの場合はクエリ開始時に指定したインメモリマッピングテーブルを削除します。削除対象が存在しないか、インメモリマッピングテーブルでない場合は無視します。
使用例
-
インメモリマッピングテーブルの一覧照会
memlookup登録されたすべてのインメモリマッピングテーブルの名前、キーフィールド、レコード数を出力します。
-
インメモリマッピングテーブルの作成
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, zoneipフィールドをキーとしてhostnameとzoneフィールドを含むip_hostsインメモリマッピングテーブルを作成します。 -
インメモリマッピングテーブルのデータ照会
memlookup op=list name=ip_hostsip_hostsインメモリマッピングテーブルに保存されたすべてのレコードを出力します。 -
インメモリマッピングテーブルを使用したlookup照会
json "[{'src_ip': '192.0.2.1'}, {'src_ip': '192.0.2.2'}]" | lookup ip_hosts src_ip as ip output hostnamememlookupで作成したip_hostsマッピングテーブルをlookupコマンドで照会します。 -
インメモリマッピングテーブルの削除
memlookup op=drop name=ip_hostsip_hostsインメモリマッピングテーブルを削除します。