Data Plus를 통해 제공되는 스트리밍 내보내기 기능을 사용하면, 내보낼 데이터를 지정하는 NRQL을 사용하여 사용자 지정 규칙을 생성함으로써 AWS Kinesis Firehose, Azure 이벤트 허브 또는 GCP Pub/Sub로 데이터를 전송할 수 있습니다. 이 가이드에서는 NerdGraph를 사용하여 스트리밍 규칙을 생성 및 업데이트하고 기존 규칙을 확인하는 방법을 설명합니다. NerdGraph 탐색기를 사용하여 이러한 호출을 수행할 수 있습니다. 또한 내보내기 압축 기능을 사용하여 내보내기 전에 데이터를 압축할 수도 있습니다.
스트리밍 내보내기 기능을 사용하는 방법의 몇 가지 예는 다음과 같습니다:
데이터 레이크를 채우려면
AI/ML 교육 강화
규정 준수, 법률 또는 보안상의 이유로 장기 보존을 보장하십시오.
언제든지 스트리밍 내보내기 규칙을 활성화하거나 비활성화할 수 있습니다. 그러나 스트리밍 내보내기는 현재 수집된 데이터만 처리한다는 점에 유의하십시오. 기능을 비활성화했다가 나중에 다시 활성화하면, 꺼져 있는 동안 수집된 데이터는 내보내지지 않습니다. 과거 데이터를 내보내려면 이력 데이터 내보내기 기능을 사용해야 합니다.
요구 사항 및 제한 사항
스트리밍 데이터 제한: 한 달에 스트리밍할 수 있는 데이터의 양은 한 달에 수집된 총 데이터 에 의해 제한됩니다. 스트리밍 데이터 양이 수집된 데이터 양을 초과하는 경우 스트리밍 내보내기에 대한 액세스 및 사용을 일시 중지할 수 있습니다.
응답: 규칙 ID 및 상태가 포함된 응답을 받습니다. 상태는 처음에 CREATION_IN_PROGRESS 이며, 규칙 생성을 완료하는 데 최대 6분이 걸릴 수 있습니다. 참고 사항: 규칙이 등록을 완료하기 전에는 생성 프로세스를 위해 규칙이 잠겨 있으므로 다른 변경 작업(Enable, Disable 또는 Update 등)을 시작할 수 없습니다. 규칙이 등록 프로세스를 완료하기 전에 다른 변경 작업을 시도하면 "The export rule is currently being updated by another request, please wait and try again later."와 같은 메시지가 표시됩니다.
언제든지 Delete 을(를) 사용할 수 있습니다.
규칙 생성에 필요한 대략 6분 이내에 생성을 완료하고 언제든지 상태를 변경할 수 있습니다. 상태가 ENABLED , DISABLED 또는 CREATION_FAILED 로 변경됩니다.
값에 대한 다음 세부정보를 참조하세요.
ENABLED 규칙이 성공적으로 생성되고 데이터 스트리밍이 시작되었음을 의미합니다.
CREATION_FAILED 생성 시 규칙이 실패했음을 의미합니다. 이는 여러 가지 이유로 발생할 수 있지만 종종 AWS 정책 또는 Azure SAS 유효성 검사 실패로 인해 발생합니다.
DISABLED 규칙이 생성되었지만 필터 스트림 제한에 도달했거나 필터 스트림 규칙 생성 실패와 같은 이유로 아직 활성화되지 않았음을 의미합니다. 6분 후에도 상태가 계속 CREATION_IN_PROGRESS 으로 유지되면 서비스의 시스템 오류로 인해 규칙 생성이 실패했음을 의미합니다. 규칙을 삭제하고 새 규칙을 다시 만들 수 있습니다.
이 API를 사용하면 계정 ID와 관련된 모든 스트림 규칙의 포괄적인 목록을 검색할 수 있습니다.
샘플 요청
{
actor{
account(id:YOUR_NR_ACCOUNT_ID){
streamingExport{
streamingRules{
aws{
awsAccountId
region
deliveryStreamName
role
}
createdAt
description
id
message
name
nrql
status
updatedAt
payloadCompression
}
}
}
}
}
이 API를 사용하면 계정 ID와 규칙 ID를 제공하여 특정 스트림 규칙에 대한 정보를 쿼리할 수 있습니다.
샘플 요청
{
actor{
account(id:YOUR_NR_ACCOUNT_ID){
streamingExport{
streamingRule(id:"RULE_ID"){
aws{
awsAccountId
deliveryStreamName
region
role
}
createdAt
description
id
message
name
nrql
status
updatedAt
payloadCompression
}
}
}
}
}
이 API를 사용하면 기존 스트리밍 내보내기 규칙을 수정할 수 있습니다.
입력스피커, 변수
매개변수
데이터 형식
꼭 필요한가요?
설명
id
ID
네
업데이트할 스트리밍 규칙의 ID입니다.
ruleParameters.description
문자열
아니요
규칙에 대한 간단한 설명입니다. 이를 사용하여 내보내기 규칙에 대한 추가 정보나 컨텍스트를 제공하십시오.
응답: 규칙 ID 및 상태가 포함된 응답을 받습니다. 참고 사항: 업데이트할 때 메시지 필드에 다음과 같은 메시지가 표시됩니다. “내보내기 규칙이 업데이트 중이며 프로세스를 완료하는 데 몇 분 정도 걸릴 수 있습니다. 나중에 다시 확인해 주십시오.” 완전히 업데이트되는 데 최대 6분이 걸릴 수 있습니다.
규칙을 검색하기 위해 streamingRule을 호출하여 규칙이 업데이트되었는지 확인할 수 있습니다. 규칙이 업데이트되는 동안에는 규칙이 잠기며, 다른 변경 작업을 규칙에 수행할 수 없습니다. 동일한 규칙에 대해 다른 변경 작업을 수행하려고 하면 “내보내기 규칙이 현재 다른 요청에 의해 업데이트 중입니다. 잠시 기다린 후 나중에 다시 시도해 주십시오.”라는 메시지가 표시됩니다. 사용자는 삭제된 규칙을 제외한 모든 상태의 규칙을 업데이트할 수 있습니다.
이 API를 사용하면 기존 스트리밍 규칙을 활성화하여 실시간 처리 및 다른 서비스와의 통합을 위해 데이터를 지속적으로 내보낼 수 있습니다.
입력스피커, 변수
매개변수
데이터 형식
꼭 필요한가요?
설명
id
ID
네
활성화할 스트리밍 규칙의 ID입니다.
샘플 요청
mutation{
streamingExportEnableRule(id:RULE_ID){
id
status
message
}
}
응답: 다른 상태에 있는 규칙을 활성화하려고 하면 "상태가 허용되지 않아 내보내기 규칙을 활성화하거나 비활성화할 수 없습니다."와 같은 오류 메시지를 반환합니다. 다른 변경 작업이 수행되어 규칙이 잠긴 경우 규칙을 활성화할 수 없습니다.
중요
규칙의 상태가 DISABLED인 경우에만 활성화할 수 있습니다.
이 API를 사용하면 기존 스트리밍 규칙을 비활성화하여 데이터의 지속적인 내보내기를 중지할 수 있습니다.
입력스피커, 변수
매개변수
데이터 형식
꼭 필요한가요?
설명
id
ID
네
비활성화할 스트리밍 규칙의 ID입니다.
샘플 요청
mutation{
streamingExportDisableRule(id:RULE_ID){
id
status
message
}
}
응답: 다른 상태에 있는 규칙을 비활성화하려고 하면 "상태가 허용되지 않아 내보내기 규칙을 활성화하거나 비활성화할 수 없습니다."와 같은 오류 메시지가 반환됩니다. 다른 변경 작업이 수행되어 규칙이 잠긴 경우 규칙을 비활성화할 수 없습니다.
중요
규칙의 상태가 ENABLED인 경우에만 규칙을 비활성화할 수 있습니다.
이 API를 사용하면 스트리밍 규칙을 삭제하고 해당 규칙과 관련된 모든 데이터 내보내기를 중지할 수 있습니다.
입력스피커, 변수
매개변수
데이터 형식
꼭 필요한가요?
설명
id
ID
네
삭제할 스트리밍 규칙의 ID입니다.
샘플 요청
mutation{
streamingExportDeleteRule(id:RULE_ID){
id
}
}
중요
이미 삭제된 경우가 아니라면 모든 상태의 규칙에 대해 삭제를 수행할 수 있습니다. 규칙이 삭제되면 다시 활성화할 수 없습니다. 삭제 후 처음 24시간 이내에는 규칙 ID와 함께 steamingRule API를 호출하여 규칙을 계속 볼 수 있습니다. 24시간 후에는 NerdGraph를 통해 더 이상 규칙을 검색할 수 없습니다.
Azure 이벤트 허브 설정
Azure로 스트리밍 데이터 내보내기를 설정하려면 먼저 이벤트 허브를 설정해야 합니다. 다음 단계를 따릅니다:
이 파라미터는 Google Cloud Platform(GCP) 프로젝트의 고유 식별자를 나타냅니다. 예:
google-project-id
gcpParameters.pubsubTopicId
문자열
네
이 파라미터는 cloud 애플리케이션 내에서 메시지를 보내고 받는 데 사용되는 Google Cloud Pub/Sub의 주제를 지정합니다. 예:
pub-sub-topic-id.
샘플 요청
mutation{
streamingExportUpdateRule(
id:RULE_ID
ruleParameters:{
description:"ADD_RULE_DESCRIPTION"
name:"PROVIDE_RULE_NAME"
nrql:"YOUR_NRQL_QUERY"
payloadCompression:DISABLED
}
gcpParameters:{
gcpProjectId:"project-id"
pubsubTopicId:"pub-sub-topic-id"
}
){
id
status
}
}
응답: 규칙 ID 및 상태가 포함된 응답을 받습니다.
기존 스트리밍 규칙을 활성화하여 실시간 처리 및 다른 서비스와의 통합을 위해 데이터를 지속적으로 내보내려면 여기를 참조하십시오.
기존 스트리밍 규칙을 비활성화하여 데이터의 지속적인 내보내기를 중지하려면 여기를 참조하십시오.
스트리밍 규칙을 삭제하고 해당 규칙과 관련된 모든 데이터 내보내기를 중지하려면 여기를 참조하십시오.
수출 압축 이해
데이터를 내보내기 전에 압축하도록 선택할 수 있습니다. 이 기능은 기본적으로 꺼져 있습니다. 압축은 데이터 한도 초과를 방지하고 아웃바운드 데이터 비용을 낮추는 데 도움이 될 수 있습니다.
ruleParameters 아래의 payloadCompression 필드를 사용하여 압축을 활성화할 수 있습니다. 이 필드는 다음 값 중 하나일 수 있습니다.
DISABLED: 페이로드는 내보내기 전에 압축되지 않습니다. 지정하지 않으면 payloadCompression 이 값을 기본값으로 사용합니다.
GZIP: 내보내기 전에 GZIP 형식으로 페이로드를 압축합니다.
GZIP은 현재 사용할 수 있는 유일한 압축 형식이지만 앞으로 더 많은 형식을 사용할 수 있도록 선택할 수도 있습니다.
기존 AWS 내보내기 규칙에서 압축이 활성화되면 Kinesis Firehose의 다음 메시지에 압축된 데이터와 압축되지 않은 데이터가 모두 포함될 수 있습니다. 이는 Kinesis Firehose 내의 버퍼링 때문입니다. 이를 방지하려면 압축을 활성화하기 전에 내보내기 규칙을 일시적으로 비활성화하거나 압축된 데이터만 흐르도록 새 Kinesis Firehose 스트림을 생성할 수 있습니다.
이 문제가 발생하고 S3 또는 다른 파일 스토리지 시스템으로 내보내는 경우 다음 단계에 따라 데이터의 압축된 부분을 볼 수 있습니다.
개체를 수동으로 다운로드합니다.
압축된 데이터를 새 파일에 복사하여 개체를 두 개의 개별 파일로 분리합니다.
새로운 압축 전용 데이터 파일의 압축을 풉니다.
압축된 데이터가 있으면 이를 S3(또는 사용 중인 다른 서비스)에 다시 업로드하고 이전 파일을 삭제할 수 있습니다.
S3 또는 다른 파일 스토리지 시스템에서는 객체가 연속적으로 추가되는 여러 GZIP 인코딩 페이로드로 구성될 수 있다는 점에 유의하세요. 따라서 압축 해제 라이브러리에는 이러한 연결된 GZIP 페이로드를 처리할 수 있는 기능이 있어야 합니다.
AWS의 자동 압축 해제
데이터가 AWS에 도착하면 자동으로 압축을 풀 수 있는 옵션이 필요할 수 있습니다. 해당 데이터를 S3 버킷으로 스트리밍하는 경우 자동 압축 풀기를 활성화하는 두 가지 방법이 있습니다.
액세스 포인트는 S3 버킷의 객체에 액세스하고 다운로드할 수 있는 별도의 방법으로 작동합니다. AWS는 액세스 포인트를 통해 액세스되는 각 S3 객체에 대해 Lambda 기능을 수행하는 객체 Lambda 액세스 포인트 라는 기능을 제공합니다. 이러한 액세스 포인트를 활성화하려면 다음 단계를 따르십시오.