CSV 형식의 룩업테이블을 업로드할 때 lookup()
함수를 사용하여 NRQL 쿼리의 해당 데이터에 액세스할 수 있습니다. 룩업테이블을 사용하면 텔레메트리 데이터를 구문 분석하고 데이터 그룹화를 사용자 정의하는 데 도움이 됩니다.
기본 쿼리 구문
다음 조회 쿼리는 storeNames
이라는 테이블을 사용하고 해당 테이블에서 모든 데이터를 선택하는 이 함수의 기본 구문을 보여줍니다.
이 쿼리는 동일한 테이블에서 특정 속성을 선택합니다.
SELECT store_ID, store_name, description
쿼리 제한
룩업 테이블은 다른 NRQL 데이터 유형보다 쿼리 시 더 높은 LIMIT
를 지원합니다. 쿼리, 하위 쿼리, 중첩 집계 내에서 룩업 테이블을 사용할 때 LIMIT
을 최대 20,000까지 설정할 수 있습니다.
팁
하위 쿼리 내에서 조회 테이블을 사용하는 경우 외부 쿼리 LIMIT
은 조회 테이블도 사용하지 않는 한 표준 최대값으로 제한됩니다.
기술적 한계
NRQL 공지 조건에서는 조회 데이터를 사용할 수 없습니다.
조회 테이블을 업로드한 계정 에서만 조회 테이블을 쿼리할 수 있습니다.
다음 NRQL 절은 조회 쿼리에서 지원되지 않습니다.
조회 예
룩업 테이블을 사용하면 엑셀에 저장된 텔메트리 데이터와 데이터를 결합하는 쿼리를 사용할 수 있습니다.
다음은 몇 가지 쿼리 예입니다.
이 쿼리는 조회 테이블에 포함된 호스트 이름을 쿼리하여 긴 호스트 목록을 하드코딩하는 것을 방지합니다.
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
다음은 몇 가지 예시 결과입니다.