CSV 形式のルックアップテーブルをアップロードすると、 lookup()
関数を使用して NRQL クエリでそのデータにアクセスできます。 ルックアップテーブルを使用すると、テレメトリーデータの解析やデータのグループ化のカスタマイズに役立ちます。
基本的なクエリ構文
次の検索クエリは、 storeNames
という名前のテーブルを使用し、そのテーブルからすべてのデータを選択するこの関数の基本的な構文を示しています。
このクエリは、同じテーブルから特定の属性を選択します。
SELECT store_ID, store_name, description
クエリの制限
ルックアップテーブルは、クエリ時に他の NRQL データ型よりも高いLIMIT
をサポートします。 クエリ、サブクエリ、およびネストされた集計内でルックアップテーブルを使用する場合、 LIMIT
を最大 20,000 に設定できます。
ヒント
サブクエリ内でルックアップ テーブルを使用する場合、ルックアップ テーブルも使用しない限り、外側のクエリLIMIT
は標準の最大値によって制限されます。
技術的な制限
NRQL アラート条件ではルックアップ データを使用できません。
ルックアップ テーブルをアップロードしたアカウントからのみルックアップ テーブルにクエリを実行できます。
次の NRQL 句はルックアップ クエリではサポートされていません。
検索の例
ルックアップテーブルを使用すると、New Relic に保存されているテレメトリーデータとデータを組み合わせるクエリを使用できます。
次は、クエリの例です。
このクエリは、ルックアップ テーブルに含まれるホスト名をクエリすることで、ホストの長いリストのハードコーディングを回避します。
WHERE hostname IN (FROM lookup(myHosts) SELECT uniques(myHost))
JOIN
クエリを使用すると、データを理解しやすくなります。 たとえば、カスタムイベント タイプのこのクエリは、 storeNames
テーブルを使用して、店舗名と総売上高を表示します。
JOIN (FROM lookup(storeNames) SELECT store_ID as storeId, storeName AS name LIMIT 10000) ON shopId = storeId
SELECT shopId, storeName, totalSales
クエリ制限のセクションで説明したように、ルックアップテーブルは他の NRQL データ型よりも高い制限をサポートしているため、これにより 10,000 という制限が可能になります。
このクエリは、ルックアップ テーブル データのJOIN
句を使用して、 shopId
値をより広範なstoreCategory
値にマップします。これにより、これらのより広範なカテゴリに基づいてStoreEvent
レコードに対して集計を実行し、データから新しい分析情報を抽出できるようになります。
JOIN (FROM lookup(storeCategories) SELECT store_ID as storeId, storeCategory) ON shopId = storeId
SELECT sum(totalSales) FACET storeCategory
以下は、ステータス コードを読み取り可能なステータスの概要に変換するクエリです。
JOIN (FROM lookup(statusCodeTable) SELECT status_code, status_summary, status_definition)
ON http.statusCode=status_code
SELECT count(*) FACET status_summary
結果の例をいくつか示します。
このクエリは、複数の NRQL 機能が連携してログ データのクエリからビジネス情報を取得する方法を示しています。以下のクエリ:
aparse()
を使用してログ メッセージからアイテムに関する情報を抽出します。
ルックアップ テーブル データでJOIN
を使用して、わかりやすい項目名を取得します
アイテム名とアイテムの格納数のテーブルを出力します
WITH aparse(message, 'POST to carts: * body: {"itemId":"*","unitPrice":*}%') AS (URL, ItemID, Price)
JOIN (FROM lookup(itemNames) SELECT ItemID, itemName) ON ItemID
SELECT count(*) FACET itemName
WHERE message LIKE 'POST to carts%'
結果の例をいくつか示します。
このクエリはルックアップと GeoIP を 組み合わせて、最も失敗したステータスを持つ場所を見つけます。
JOIN (FROM lookup(statusCodeTable) SELECT status_code, status_summary, status_definition)
ON CacheResponseStatus=status_code
SELECT count(*) WHERE ClientIP.countryName IS NOT NULL AND status_summary != 'Success'
FACET ClientIP.countryName, status_summary, CacheResponseStatus
SINCE 1 day ago LIMIT MAX
結果の例をいくつか示します。