다음을 통해 공유


Azure Data Explorer에 대한 Event Grid 데이터 연결 만들기

이 문서에서는 Event Grid 데이터 연결을 사용하여 스토리지 계정의 Blob을 Azure Data Explorer로 수집하는 방법을 알아봅니다. Azure Event Grid 구독을 설정하는 Event Grid 데이터 연결을 만듭니다. Event Grid 구독은 Azure Event Hubs를 통해 스토리지 계정에서 Azure Data Explorer로 이벤트를 라우팅합니다.

참고 항목

수집 가능한 최대 파일 크기는 6GB입니다. 100MB에서 1GB 사이의 파일을 수집하는 것이 좋습니다.

Kusto SDK를 사용하여 연결을 만드는 방법을 알아보려면 SDK를 사용하여 Event Grid 데이터 연결 만들기를 참조 하세요.

Event Grid에서 Azure Data Explorer에 수집하는 방법에 대한 일반적인 내용은 Event Grid에 연결을 참조하세요.

참고 항목

Event Grid 연결을 사용하여 최상의 성능을 얻으려면 Blob 메타데이터를 rawSizeBytes 통해 수집 속성을 설정합니다. 자세한 내용은 수집 속성을 참조 하세요.

필수 구성 요소

Event Grid 데이터 연결 만들기

이 섹션에서는 Event Grid와 Azure Data Explorer 테이블 간에 연결을 설정합니다.

  1. Azure Portal에서 Azure Data Explorer 클러스터로 이동합니다.

  2. 데이터에서 Databases TestDatabase를>선택합니다.

    포함된 데이터베이스 목록을 보여 주는 클러스터의 데이터베이스 섹션 스크린샷

  3. 설정에서 데이터 연결을 선택한 다음, 데이터 연결>추가 Event Grid(Blob Storage)를 선택합니다.

    데이터 연결 페이지의 스크린샷. 데이터 연결을 추가하는 옵션이 강조 표시됩니다.

  4. 다음 정보를 사용하여 Event Grid 데이터 연결 양식을 작성합니다.

    데이터 연결에 대한 세부 정보를 보여 주는 Event Grid 창의 스크린샷

    설정 제안 값 필드 설명
    데이터 연결 이름 test-grid-connection Azure Data Explorer에서 만들 연결의 이름입니다. 데이터 연결 이름은 영숫자, 대시 및 점 문자만 포함할 수 있으며 길이는 최대 40자입니다.
    스토리지 계정 구독 구독 ID 스토리지 계정이 있는 구독 ID입니다.
    이벤트 유형 Blob이 만들어짐 또는 Blob 이름이 바뀜 수집을 트리거하는 이벤트 유형입니다. Blob 이름이 바뀜은 ADLSv2 스토리지에만 지원됩니다. Blob의 이름을 바꾸려면 Azure Portal에서 Blob으로 이동하고 Blob을 마우스 오른쪽 단추로 클릭하고 이름 바꾸기를 선택합니다. 지원되는 유형은 Microsoft.Storage.BlobCreated 또는 Microsoft.Storage.BlobRenamed입니다.
    스토리지 계정 gridteststorage1 이전에 만든 스토리지 계정의 이름입니다.
    리소스 만들기 자동 자동 리소스 생성을 켜면 Azure Data Explorer에서 Event Grid 구독, Event Hubs 네임스페이스 및 Event Hubs를 만듭니다. 그렇지 않으면 데이터 연결을 만들기 위해 이러한 리소스를 수동으로 만들어야 합니다. Event Grid 수집을 위한 수동으로 리소스 만들기 참조
    1. 필요에 따라 특정 Event Grid 주체를 추적할 수 있습니다. 알림에 대한 필터를 다음과 같이 설정합니다.

      • 접두사 필드는 제목의 리터럴 접두사입니다. 적용된 패턴이 시작되면 여러 컨테이너, 폴더 또는 Blob에 걸쳐 확장할 수 있습니다. 와일드카드는 허용되지 않습니다.
        • Blob 컨테이너에서 필터를 정의하려면 필드를 반드시 다음과 같이 설정해야 합니다. /blobServices/default/containers/[container prefix].
        • Blob 접두사(또는 Azure Data Lake Gen2의 폴더)에 대한 필터를 정의하려면 필드를 반드시 다음과 같이 설정해야 합니다. /blobServices/default/containers/[container name]/blobs/[folder/blob prefix].
      • 접미사 필드는 Blob의 리터럴 접미사입니다. 와일드카드는 허용되지 않습니다.
      • 대/소문자 구분 필드는 접두사 및 접미사 필터가 대/소문자를 구분하는지 여부를 나타냅니다.

      이벤트 필터링에 대한 자세한 내용은 Blob Storage 이벤트를 참조 하세요.

    2. 필요에 따라 다음 정보에 따라 데이터 라우팅 설정을 지정할 수 있습니다. 모든 데이터 라우팅 설정을 지정할 필요는 없습니다. 부분 설정도 허용됩니다.

      설정 제안 값 필드 설명
      다른 데이터베이스로 데이터 라우팅 허용(다중 데이터베이스 데이터 연결) 허용 안 함 데이터 연결과 연결된 기본 대상 데이터베이스를 재정의하려면 이 옵션을 설정/해제합니다. 데이터베이스 라우팅에 대한 자세한 내용은 이벤트 라우팅을 참조하세요.
      테이블 이름 TestTable TestDatabase에 만든 테이블입니다.
      데이터 형식 JSON 지원되는 형식은 APACHEAVRO, Avro, CSV, JSON, ORC, PARQUET, PSV, RAW, SCSV, SOHSV, TSV, TSVE, TXT 및 W3CLOG입니다. 지원되는 압축 옵션은 zip 및 gzip입니다.
      매핑 이름 TestTable_mapping 들어오는 데이터를TestTable의 열 이름 및 데이터 형식에 매핑하는 TestDatabase에서 만든 매핑입니다. 지정 하지 않으면 테이블의 스키마에서 파생된 ID 데이터 매핑 이 자동으로 생성됩니다.
      형식 오류 무시 무시 JSON 데이터 형식에 대한 형식 오류를 무시하려면 이 옵션을 전환합니다.

      참고 항목

      테이블 및 매핑 이름은 대/소문자를 구분합니다.

    3. 필요에 따라 고급 설정에서 데이터 연결에서 사용되는 관리 ID 유형을 지정할 수 있습니다. 기본적으로 시스템 할당 이 선택됩니다.

      사용자 할당을 선택하는 경우 관리 ID를 수동으로 할당해야 합니다. 클러스터에 아직 할당되지 않은 사용자를 선택하면 자동으로 할당됩니다. 자세한 내용은 Azure Data Explorer 클러스터에 대한 관리 ID 구성을 참조하세요.

      없음을 선택하면 스토리지 계정 및 이벤트 허브가 연결 문자열 통해 인증됩니다. 이 메서드는 권장되지 않습니다.

      데이터 연결에 사용할 수 있는 관리 ID 형식을 보여 주는 고급 설정 섹션의 스크린샷

  5. 만들기를 선택합니다.

Event Grid 데이터 연결 사용

이 섹션에서는 Blob 만들기 또는 Blob 이름 바꾸기 후 Azure Blob Storage 또는 Azure Data Lake Gen 2에서 클러스터로 수집을 트리거하는 방법을 보여 줍니다.

Blob을 업로드하는 데 사용되는 스토리지 SDK 유형에 따라 관련 탭을 선택합니다.

다음 코드 샘플에서는 Azure Blob Storage SDK를 사용하여 Azure Blob Storage에 파일을 업로드합니다. 업로드는 Event Grid 데이터 연결을 트리거하여 데이터를 Azure Data Explorer로 수집합니다.

var azureStorageAccountConnectionString = <storage_account_connection_string>;
var containerName = <container_name>;
var blobName = <blob_name>;
var localFileName = <file_to_upload>;
var uncompressedSizeInBytes = <uncompressed_size_in_bytes>;
var mapping = <mapping_reference>;
// Create a new container if it not already exists.
var azureStorageAccount = new BlobServiceClient(azureStorageAccountConnectionString);
var container = azureStorageAccount.GetBlobContainerClient(containerName);
container.CreateIfNotExists();
// Define blob metadata and uploading options.
IDictionary<String, String> metadata = new Dictionary<string, string>();
metadata.Add("rawSizeBytes", uncompressedSizeInBytes);
metadata.Add("kustoIngestionMappingReference", mapping);
var uploadOptions = new BlobUploadOptions
{
    Metadata = metadata,
};
// Upload the file.
var blob = container.GetBlobClient(blobName);
blob.Upload(localFileName, uploadOptions);

참고 항목

Azure Data Explorer는 수집 후 Blob을 삭제하지 않습니다. Azure Blob Storage 수명 주기를 통해 Blob 삭제를 관리하여 3~5일 동안 Blob을 보관합니다.

참고 항목

작업 후 CopyBlob 수집 트리거는 계층 구조 네임스페이스 기능을 사용하도록 설정된 스토리지 계정에 대해서는 지원되지 않습니다.

Important

사용자 지정 코드에서 스토리지 이벤트를 생성하고 Event Hubs로 보내는 것은 매우 권장되지 않습니다. 이렇게 하려면 생성된 이벤트가 적절한 스토리지 이벤트 스키마 및 JSON 형식 사양을 엄격하게 준수하는지 확인합니다.

Event Grid 데이터 연결 제거

Azure Portal에서 Event Grid 연결을 제거하려면 다음 단계를 수행합니다.

  1. 클러스터로 이동합니다. 왼쪽 메뉴에서 데이터베이스를 선택합니다. 그런 다음 대상 테이블이 포함된 데이터베이스를 선택합니다.
  2. 왼쪽 메뉴에서 데이터 연결을 선택합니다. 그런 다음 관련 Event Grid 데이터 연결 옆에 있는 확인란을 선택합니다.
  3. 위쪽 메뉴 모음에서 삭제를 선택합니다.