Microsoft Fabric의 Eventstream으로 실시간 데이터 수집
Eventstream은 실시간 이벤트를 캡처, 변환 및 다양한 대상으로 라우팅하는 Microsoft Fabric의 기능입니다. 이벤트 데이터 원본, 대상 및 변환을 Eventstream에 추가할 수 있습니다.
이 연습에서는 사람들이 도시 내에서 자전거를 대여할 수 있는 자전거 공유 시스템에서 자전거 수거 지점의 관찰과 관련하여 이벤트의 스트림을 내보내기 하는 샘플 데이터 원본에서 데이터를 수집합니다.
이 랩을 완료하는 데 약 30분이 소요됩니다.
참고: 이 연습을 완료하려면 Microsoft Fabric 테넌트가 필요합니다.
작업 영역 만들기
Fabric에서 데이터로 작업하기 전에, Fabric 용량을 사용하도록 설정된 테넌트에서 작업 영역을 만들어야 합니다.
- Microsoft Fabric 홈페이지(
https://app.fabric.microsoft.com/home?experience=fabric
)에서 실시간 인텔리전스를 선택합니다. - 왼쪽 메뉴 모음에서 작업 영역을 선택합니다(아이콘은 와 유사함).
- Fabric 용량이 포함된 라이선스 모드(평가판, 프리미엄 또는 Fabric)를 선택하여 원하는 이름으로 새 작업 영역을 만듭니다.
-
새 작업 영역이 열리면 비어 있어야 합니다.
Eventhouse 만들기
이제 작업 영역이 있으므로 실시간 인텔리전스 솔루션에 필요한 Fabric 항목 만들기를 시작할 수 있습니다. 먼저 Eventhouse를 만들어 보겠습니다.
- 왼쪽 메뉴 모음에서 홈을 선택한 다음 실시간 인텔리전스 홈 페이지에서 새 Eventhouse를 만들어, 원하는 고유한 이름을 지정합니다.
-
빈 Eventhouse가 새로 표시될 때까지 표시되는 팁이나 프롬프트를 닫습니다.
- 왼쪽 창의 Eventhouse에는 Eventhouse와 이름이 같은 KQL 데이터베이스가 포함되어 있습니다.
-
KQL 데이터베이스를 선택하여 확인합니다.
현재 데이터베이스에는 테이블이 없습니다. 이 연습의 나머지 부분에서는 Eventstream을 사용하여 실시간 원본에서 테이블로 데이터를 로드합니다.
Eventstream 만들기
- KQL 데이터베이스의 기본 페이지에서 데이터 가져오기를 선택합니다.
-
데이터 원본에 대해 Eventstream > 새 Eventstream을 선택합니다. Eventstream 이름을 지정합니다
Bicycle-data
.작업 영역에서 새 이벤트 스트림 만들기는 몇 분 안에 완료됩니다. 일단 설정되면 자동으로 기본 편집기로 리디렉션되어 원본을 이벤트 스트림에 통합할 준비가 됩니다.
원본 추가
- Eventstream 캔버스에서 샘플 데이터 사용을 선택합니다.
-
원본에 이름을 지정하고
Bicycles
자전거 샘플 데이터를 선택합니다.스트림이 매핑되고 eventstream 캔버스에 자동으로 표시됩니다.
대상 추가
- Bicycle-data 노드 오른쪽에 있는 + 아이콘을 사용하여 새 Eventhouse 노드를 추가합니다.
- 새 Eventhouse 노드에서 연필 아이콘을 사용하여 편집합니다.
- Eventhouse 창에서 다음 설정 옵션을 구성합니다.
- 데이터 수집 모드:: 수집 전 이벤트 처리
- 대상 이름:
bikes-table
- 작업 영역:이 연습의 시작 부분에서 만든 작업 영역 선택
- Eventhouse: eventhouse 선택
- KQL 데이터베이스:KQL 데이터베이스 선택
- 대상 테이블: 이름이 지정된 새 테이블 만들기
bikes
- 입력 데이터 형식: JSON
- Eventhouse 창에서 저장을 선택합니다.
- 도구 모음에서 게시를 선택합니다.
-
데이터 대상이 활성화될 때까지 잠시 1분 정도 기다립니다. 그런 다음, 디자인 캔버스에서 bikes-table 노드를 선택하고 아래의 데이터 미리 보기 창을 확인하여 수집된 최신 데이터를 확인합니다.
- 몇 분 기다린 다음 새로 고침 버튼을 사용하여 데이터 미리 보기 창을 새로 고칩니다. 스트림이 영구적으로 실행되므로 새 데이터가 테이블에 추가되었을 수 있습니다.
- Eventstream 디자인 캔버스 아래 데이터 인사이트 탭에서 캡처된 데이터 이벤트의 세부 정보를 확인할 수 있습니다.
캡처된 데이터 쿼리
만든 eventstream은 자전거 데이터의 샘플 원본에서 데이터를 가져와서 eventhouse의 데이터베이스에 로드합니다. 데이터베이스의 테이블을 쿼리하여 캡처된 데이터를 분석할 수 있습니다.
- 왼쪽 메뉴 모음에서 KQL 데이터베이스를 선택합니다.
-
데이터베이스 탭의 KQL 데이터베이스 도구 모음에서 새로 고침 버튼을 사용하여 데이터베이스 아래에 bikes 테이블이 표시될 때까지 보기를 새로 고칩니다. 그런 다음 bikes 테이블을 선택합니다.
- bikes 테이블에 대한 … 메뉴에서 지난 24시간 동안 수집된쿼리 테이블 > 레코드를 선택합니다.
-
쿼리 창에서 다음 쿼리가 생성 및 실행되었으며 그 결과가 아래에 표시되어 있음을 확인합니다.
// See the most recent data - records ingested in the last 24 hours. bikes | where ingestion_time() between (now(-1d) .. now())
-
쿼리 코드를 선택하고 실행하여 테이블에서 100개의 데이터 행을 확인합니다.
이벤트 데이터 변환
캡처한 데이터는 원본에서 변경되지 않습니다. 많은 시나리오에서 이벤트 스트림의 데이터를 대상으로 로드하기 전에 변환해야 할 수 있습니다.
- 왼쪽 메뉴 모음에서 자전거-데이터 eventstream을 선택합니다.
- 도구 모음에서 편집을 선택하여 eventstream을 편집합니다.
- 이벤트 변환 메뉴에서 그룹 기준을 선택하여 eventstream에 노드별로 새 그룹 기준을 추가합니다.
-
자전거-데이터 노드의 출력에서 노드별 새 그룹 기준 입력으로 연결을 끌어온 다음 노드별로 그룹 기준에서 연필아이콘을 사용하여 편집합니다.
- 그룹 기준 설정 섹션의 속성을 구성합니다.
- 작업 이름: GroupByStreet
- 집계 형식: SUM 선택
- 필드: No_Bikes 선택 그런 다음 추가를 선택하여 No_Bikes의 SUM 함수를 만듭니다.
- 그룹 집계 기준(선택 사항): Street
- 시간 창: 연속
- 기간: 5초
- 오프셋: 0초
참고: 이 구성에 따라 eventstream은 5초마다 각 거리의 총 자전거 수를 계산합니다.
-
구성을 저장하고 Eventstream 캔버스로 돌아가면 오류가 표시됩니다(변환을 통해 출력을 어딘가에 저장해야 하기 때문에 그렇습니다).
- GroupByStreet 노드 오른쪽에 있는 + 아이콘을 사용하여 새 Eventhouse 노드를 추가합니다.
- 다음 옵션을 사용하여 새 eventhouse 노드를 구성합니다.
- 데이터 수집 모드:: 수집 전 이벤트 처리
- 대상 이름:
bikes-by-street-table
- 작업 영역:이 연습의 시작 부분에서 만든 작업 영역 선택
- Eventhouse: eventhouse 선택
- KQL 데이터베이스:KQL 데이터베이스 선택
- 대상 테이블: 이름이 지정된 새 테이블 만들기
bikes-by-street
- 입력 데이터 형식: JSON
- Eventhouse 창에서 저장을 선택합니다.
- 도구 모음에서 게시를 선택합니다.
- 변경 내용이 활성화될 때까지 잠시 1분 정도 기다립니다.
-
디자인 캔버스에서 bikes-by-street-table 노드를 선택하고 캔버스 아래에 있는 데이터 미리보기 창을 확인합니다.
변환된 데이터에는 지정한 그룹화 필드(Street), 지정한 집계(SUM_no_Bikes), 이벤트가 발생한 5초 연속 창의 종료 시점을 나타내는 타임스탬프 필드(Window_End_Time)가 포함되어 있습니다.
변환된 데이터 쿼리
이제 Eventstream에 의해 변환되어 테이블로 로드된 자전거 데이터를 쿼리할 수 있습니다.
- 왼쪽 메뉴 모음에서 KQL 데이터베이스를 선택합니다.
-
- 데이터베이스 탭의 KQL 데이터베이스 도구 모음에서 새로 고침 버튼을 사용하여 데이터베이스 아래에 bikes-by-street 테이블이 표시될 때까지 보기를 새로 고칩니다.
- bikes-by-street 테이블의 … 메뉴에서 데이터 쿼리 > 100개 레코드 표시를 선택합니다.
-
쿼리 창에서 다음 쿼리가 생성되고 실행되는 것을 확인합니다.
['bikes-by-street'] | take 100
-
KQL 쿼리를 수정하여 각 5초 시간 범위 내에 거리당 총 자전거 수를 검색합니다.
['bikes-by-street'] | summarize TotalBikes = sum(tolong(SUM_No_Bikes)) by Window_End_Time, Street | sort by Window_End_Time desc , Street asc
-
수정된 쿼리를 선택하고 실행합니다.
결과는 각 5초 시간 범위 내에 각 거리에서 관찰된 자전거의 수를 보여 줍니다.
리소스 정리
이 연습에서는 eventstream을 사용하여 데이터베이스에 eventhouse 및 채워진 테이블을 만들었습니다.
KQL 데이터베이스 탐색을 마쳤으면 이 연습을 위해 만든 작업 영역을 삭제할 수 있습니다.
- 왼쪽 막대에서 작업 영역의 아이콘을 선택합니다.
- 도구 모음에서 작업 영역 설정을 선택합니다.
- 일반 섹션에서 이 작업 영역 제거를 선택합니다. .