Azure Event Hubs에서 데이터 가져오기
이 문서에서는 Event Hubs에서 Microsoft Fabric의 KQL 데이터베이스로 데이터를 가져오는 방법을 알아봅니다. Azure Event Hubs는 초당 수백만 개의 이벤트를 수신하고 처리할 수 있는 데이터 스트리밍 플랫폼이자 이벤트 수집 서비스입니다.
Event Hubs에서 실시간 인텔리전스로 데이터를 스트리밍하려면 두 가지 주요 단계를 수행합니다. 첫 번째 단계는 Azure Portal에서 수행됩니다. 이때 이벤트 허브 인스턴스에서 공유 액세스 정책을 정의하고 나중에 이 정책을 통해 연결하는 데 필요한 세부 정보를 캡처합니다.
두 번째 단계는 Fabric의 실시간 인텔리전스에서 수행됩니다. 이때 이벤트 허브에 KQL 데이터베이스를 연결하고 들어오는 데이터에 대한 스키마를 구성합니다. 이 단계에서는 두 개의 연결을 만듭니다. "클라우드 연결"이라고 하는 첫 번째 연결은 Microsoft Fabric을 이벤트 허브 인스턴스에 연결합니다. 두 번째 연결은 "클라우드 연결"을 KQL 데이터베이스에 연결합니다. 이벤트 데이터 및 스키마 구성을 마치면 KQL 쿼리 세트를 사용하여 스트리밍된 데이터를 쿼리할 수 있습니다.
Eventstream을 사용하여 Event Hubs에서 데이터를 가져오려면 Eventstream에 Azure Event Hubs 원본 추가를 참조하세요.
필수 구성 요소
- Azure 구독 무료 Azure 계정 만들기
- 이벤트 허브
- Microsoft Fabric 지원 용량 작업 영역
- 편집 권한이 있는 KQL 데이터베이스
Warning
이벤트 허브는 방화벽 뒤에 있을 수 없습니다.
이벤트 허브에서 공유 액세스 정책 설정
Event Hubs 데이터에 대한 연결을 만들려면 먼저 이벤트 허브에서 SAS(공유 액세스 정책)를 설정하고 나중에 연결을 설정하는 데 사용할 일부 정보를 수집해야 합니다. Event Hubs 리소스에 대한 액세스 권한 부여에 대한 자세한 내용은 공유 액세스 서명을 참조하세요.
Azure Portal에서 연결하려는 이벤트 허브 인스턴스로 이동합니다.
설정 아래에서 공유 액세스 정책을 선택합니다.
+추가를 선택하여 새 SAS 정책을 추가하거나 관리 권한이 있는 기존 정책을 선택합니다.
정책 이름을 입력합니다.
관리를 선택한 다음, 만들기를 선택합니다.
클라우드 연결에 대한 정보 수집
SAS 정책 창 내에서 다음 네 개의 필드를 기록합니다. 이후 단계에서 사용할 수 있도록 이러한 필드를 복사하고 메모장처럼 어딘가에 붙여넣습니다.
필드 준거 | 필드 | Description | 예시 |
---|---|---|---|
a | Event Hubs 인스턴스 | 이벤트 허브 인스턴스의 이름. | iotdata |
b | SAS 정책 | 이전 단계에서 만든 SAS 정책 이름 | DocsTest |
c | 기본 키 | SAS 정책과 연결된 키 | 이 예제에서는 PGGIISb009로 시작합니다. |
d | 연결 문자열-기본 키 | 이 필드에서는 연결 문자열의 일부로 찾을 수 있는 이벤트 허브 네임스페이스만 복사하려고 합니다. | eventhubpm15910.servicebus.windows.net |
Source
KQL 데이터베이스의 하단 리본에서 데이터 가져오기를 선택합니다.
데이터 가져오기 창에서 원본 탭이 선택됩니다.
사용 가능한 목록에서 데이터 원본을 선택합니다. 이 예제에서는 Event Hubs에서 데이터를 수집합니다.
구성
대상 테이블을 선택합니다. 새 테이블에 데이터를 수집하려면 + 새 테이블을 선택하고 테이블 이름을 입력합니다.
참고 항목
테이블 이름은 공백, 영숫자, 하이픈 및 밑줄을 포함하여 최대 1,024자일 수 있습니다. 특수 문자는 지원되지 않습니다.
새 연결 만들기를 선택하거나 기존 연결을 선택하고 다음 단계로 이동합니다.
새 연결 만들기
다음 표에 따라 연결 설정을 입력합니다.
설정 설명 예제 값 이벤트 허브 네임스페이스 위 표의 d 필드. eventhubpm15910.servicebus.windows.net 이벤트 허브 위 표의 a 필드. 이벤트 허브 인스턴스의 이름. iotdata Connection Fabric과 Event Hubs 간에 기존 클라우드 연결을 사용하려면 이 연결의 이름을 선택합니다. 그렇지 않으면 새 연결 만들기를 선택합니다. 새 연결 만들기 연결 이름 새 클라우드 연결의 이름. 이 이름은 자동으로 생성되지만 덮어쓸 수 있습니다. 테넌트 내에서 고유해야 합니다. Connection 인증 종류 자동으로 채워집니다. 현재 공유 액세스 키만 지원됩니다. 공유 액세스 키 공유 액세스 키 이름 위 표의 b 필드. 공유 액세스 정책에 지정한 이름. DocsTest 공유 액세스 키 위 표의 c 필드. SAS 정책의 기본 키. 저장을 선택합니다. Fabric과 Event Hubs 간에 새 클라우드 데이터 연결이 만들어집니다.
KQL 데이터베이스에 클라우드 연결의 연결
새 클라우드 연결을 생성했는지, 기존 클라우드 연결을 사용했는지 여부에 관계없이 소비자 그룹을 정의해야 합니다. 선택적으로 KQL 데이터베이스와 클라우드 연결 간의 연결 측면을 추가로 정의하는 매개 변수를 설정할 수 있습니다.
테이블에 따라 다음 필드를 채웁니다.
설정 설명 예제 값 소비자 그룹 이벤트 허브에 정의된 관련 소비자 그룹. 자세한 내용은 소비자 그룹을 참조하세요. 새 소비자 그룹을 추가한 후 드롭다운에서 이 그룹을 선택해야 합니다. NewConsumer 추가 매개 변수 압축 이벤트 허브에서 수신되는 이벤트의 데이터 압축. 옵션은 없음(기본값) 또는 Gzip 압축입니다. 없음 이벤트 시스템 속성 자세한 내용은 이벤트 허브 시스템 속성을 참조하세요. 이벤트 메시지마다 여러 레코드가 있는 경우 시스템 속성이 첫 번째 속성에 추가됩니다. 이벤트 시스템 속성을 참조하세요. 이벤트 검색 시작 날짜 데이터 연결은 이벤트 검색 시작 날짜 이후에 만들어진 기존 이벤트 허브 이벤트를 검색합니다. 보존 기간에 따라 이벤트 허브에서 보존된 이벤트만 검색할 수 있습니다. 표준 시간대는 UTC입니다. 시간을 지정하지 않으면 기본 시간은 데이터 연결이 생성된 시간입니다. 다음을 선택하여 검사 탭으로 계속 진행합니다.
이벤트 시스템 속성
시스템 속성은 이벤트를 큐에 넣을 때 Event Hub 서비스에서 설정한 속성을 저장합니다. 이벤트 허브에 대한 데이터 연결은 지정된 매핑에 따라 선택한 시스템 속성 집합을 테이블에 수집된 데이터에 포함할 수 있습니다.
속성 | 데이터 형식 | Description |
---|---|---|
x-opt-enqueued-time | 날짜/시간 | 이벤트를 큐에 넣은 UTC 시간. |
x-opt-sequence-number | long | 이벤트 허브의 파티션 스트림 내에 있는 이벤트의 논리적 시퀀스 번호. |
x-opt-offset | string | 이벤트 허브 파티션 스트림의 데이터 오프셋입니다. 오프셋 식별자는 이벤트 허브 스트림의 파티션 내에서 고유합니다. |
x-opt-publisher | string | 게시자 엔드포인트에 메시지를 보낸 경우 게시자 이름. |
x-opt-partition-key | string | 이벤트를 저장한 해당 파티션의 파티션 키. |
검사
수집 프로세스를 완료하려면 종료를 선택합니다.
필요할 경우 다음을 선택합니다.
명령 뷰어를 선택하여 입력에서 생성된 자동 명령을 보고 복사합니다.
드롭다운에서 원하는 형식을 선택하여 자동으로 유추된 데이터 형식을 변경합니다. 데이터는 EventData 개체 형식으로 이벤트 허브에서 읽습니다. 지원되는 형식은 CSV, JSON, PSV, SCsv, SOHsv TSV, TXT 및 TSVE입니다.
열을 편집합니다.
데이터 형식에 따른 고급 옵션을 탐색합니다.
미리 보기 창에 표시되는 데이터가 완전하지 않은 경우 필요한 모든 데이터 필드가 있는 테이블을 만들기 위해 더 많은 데이터가 필요할 수 있습니다. 다음 명령을 사용하여 이벤트 허브에서 새 데이터를 가져옵니다.
- 새 데이터 삭제 및 가져오기: 제공된 데이터를 삭제하고 새 이벤트를 검색합니다.
- 추가 데이터 가져오기: 이미 찾은 이벤트 외에 더 많은 이벤트를 검색합니다.
열 편집
참고 항목
- 테이블 형식(CSV, TSV, PSV)의 경우 열을 두 번 매핑할 수 없습니다. 기존 열에 매핑하려면 먼저 새 열을 삭제합니다.
- 기존 열 유형은 변경할 수 없습니다. 다른 형식의 열에 매핑하려고 하면 빈 열이 생길 수 있습니다.
테이블에서 변경할 수 있는 사항은 다음 매개 변수에 따라 다릅니다.
- 테이블 유형은 신규 또는 기존입니다.
- 매핑 유형은 신규 또는 기존입니다.
테이블 유형입니다. | 매핑 유형 | 사용 가능한 조정 |
---|---|---|
새 테이블 | 새 매핑 | 열 이름 바꾸기, 데이터 형식 변경, 데이터 원본 변경, 매핑 변환, 열 추가, 열 삭제 |
기존 테이블 | 새 매핑 | 열 추가(여기서 데이터 형식 변경, 이름 바꾸기 및 업데이트 가능) |
기존 테이블 | 기존 매핑 | 없음 |
매핑 변환
일부 데이터 형식 매핑(Parquet, JSON 및 Avro)은 간단한 수집 시간 변환을 지원합니다. 매핑 변환을 적용하려면 열 편집 창에서 열을 만들거나 업데이트합니다.
매핑 변환은 형식 문자열 또는 날짜/시간의 열에서 수행할 수 있으며 원본의 데이터 형식이 int 또는 long입니다. 지원되는 매핑 변환은 다음과 같습니다.
- DateTimeFromUnixSeconds
- DateTimeFromUnixMilliseconds
- DateTimeFromUnixMicroseconds
- DateTimeFromUnixNanoseconds
Event Hub 캡처 Avro 파일에 대한 스키마 매핑
Event Hubs 데이터를 사용하는 한 가지 방법은 Azure Data Lake Storage 또는 Azure Blob Storage의 Azure Event Hubs를 통해 이벤트를 캡처하는 것입니다. 그런 다음, Event Grid 데이터 연결을 사용하여 작성된 캡처 파일을 수집할 수 있습니다.
캡처 파일의 스키마는 Event Hub로 전송된 원래 이벤트의 스키마와 다릅니다. 이러한 차이점을 염두에 두고 대상 테이블 스키마를 디자인해야 합니다. 특히 이벤트 페이로드는 캡처 파일에 바이트 배열로 표시되며 이 배열은 Event Grid Azure Data Explorer 데이터 연결에 의해 자동으로 디코딩되지 않습니다. Event Hubs Avro 캡처 데이터의 파일 스키마에 대한 자세한 내용은 Azure Event Hubs에서 캡처된 Avro 파일 탐색을 참조하세요.
이벤트 페이로드를 올바르게 디코딩하려면 다음을 수행합니다.
- 캡처된 이벤트의
Body
필드를 대상 테이블의dynamic
형식 열에 매핑합니다. - unicode_codepoints_to_string() 함수를 사용하여 바이트 배열을 읽을 수 있는 문자열로 변환하는 업데이트 정책을 적용합니다.
데이터 형식에 따른 고급 옵션
테이블 형식(CSV, TSV, PSV):
기존 테이블에서 테이블 형식을 수집하는 경우 고급>테이블 스키마 유지를 선택할 수 있습니다. 테이블 형식 데이터에는 원본 데이터를 기존 열에 매핑하는 데 사용되는 열 이름이 반드시 포함되지는 않습니다. 이 옵션을 선택하면 매핑은 순서대로 수행되고 테이블 스키마는 동일하게 유지됩니다. 이 옵션을 선택하지 않으면 데이터 구조에 관계없이 수신 데이터에 대해 새 열이 만들어집니다.
첫 번째 행을 열 이름으로 사용하려면 고급>첫 번째 행은 열 머리글로 선택합니다.
JSON:
JSON 데이터의 열 나누기를 확인하려면 1에서 100까지의 고급>중첩 수준을 선택합니다.
고급>오류가 있는 JSON 줄 건너뛰기를 선택하면 데이터가 JSON 형식으로 수집됩니다. 이 확인란을 선택하지 않은 상태로 두면 데이터가 multijson 형식으로 수집됩니다.
요약
데이터 수집이 완료되면 데이터 준비 창에서 세 단계가 모두 녹색 확인 표시로 나타납니다. 쿼리할 카드를 선택하거나, 수집된 데이터를 삭제하거나, 수집 요약의 대시보드를 볼 수 있습니다.