• EnglishEspañol日本語한국어Português
  • 로그인지금 시작하기

이 한글 문서는 사용자의 편의를 위해 기계 번역되었습니다.

영문본과 번역본이 일치하지 않는 경우 영문본이 우선합니다. 보다 자세한 내용은 이 페이지를 방문하시기 바랍니다.

문제 신고

NerdGraph 튜토리얼: NRQL 쿼리를 비동기적으로 실행

NerdGraph를 사용하여 NRQL 쿼리를 실행할 수 있습니다. 또한 NerdGraph를 사용하여 비동기 NRQL 쿼리를 실행할 수도 있습니다. 비동기 쿼리는 백그라운드에서 실행되며 쿼리 결과 또는 쿼리 상태를 검색하기 위해 후속 요청을 할 수 있습니다. 이 유형의 쿼리는 브라우저 시간 초과 또는 HTTP 연결 시간 초과와 같은 문제로 인해 쿼리가 중단되는 것을 방지합니다. 완료하는 데 시간이 오래 걸릴 수 있는 쿼리를 실행할 때 특히 유용합니다.

요구 사항

Data Plus 가 있는 경우 NerdGraph 또는 쿼리 빌더 UI를 사용하여 최대 10분 동안 비동기 쿼리를 실행할 수 있습니다.

쿼리 제한에 대한 자세한 내용은 쿼리 제한을 참조하세요.

비동기 쿼리 예제

다음은 비동기 쿼리 NerdGraph 호출의 예입니다. async: true 은 쿼리를 비동기식으로 만드는 것입니다. 이 쿼리는 기본 제한 시간인 5초 이내에 완료되면 결과를 반환합니다. 그렇지 않으면 nrqlQueryProgress 필드에 대한 후속 쿼리에 사용할 queryProgress 데이터를 반환합니다.

{
actor {
account(id: YOUR_ACCOUNT_ID) {
nrql(query: "SELECT * FROM Transaction", async: true) {
results
queryProgress {
queryId
completed
retryAfter
retryDeadline
resultExpiration
}
}
}
}
}

비동기 쿼리의 결과 또는 상태 가져오기

쿼리가 기본 시간 초과를 초과하면 쿼리 ID가 반환됩니다. 해당 ID를 사용하고 두 번째 쿼리를 실행하여 쿼리 결과(완료된 경우) 또는 해당 쿼리의 상태를 얻을 수 있습니다.

{
actor {
account(id: YOUR_ACCOUNT_ID) {
nrqlQueryProgress(queryId: "YOUR_QUERY_ID") {
results
queryProgress {
queryId
completed
retryAfter
retryDeadline
resultExpiration
}
}
}
}
}

이 쿼리에 대한 몇 가지 중요한 세부정보:

  • queryId 은 원래 비동기 쿼리에서 반환된 queryProgress 데이터에서 가져옵니다.
  • account 인수는 원래 쿼리의 account 인수와 일치해야 합니다.
  • 이 쿼리는 비동기 실행이 완료된 경우 결과를 반환합니다. 그렇지 않으면 queryProgress 데이터를 반환합니다.
  • 쿼리는 결과나 오류가 반환될 때까지 그대로 반복될 수 있습니다.
Copyright © 2024 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.