자습서의 이 부분에서는 다른 유형의 샘플 데이터, 즉 버스 위치에 대한 시계열 정보를 포함하는 샘플 버스 데이터의 실시간 데이터 스트림을 설정합니다. 샘플 데이터를 Eventhouse로 스트리밍하고, 데이터에 대한 일부 변환을 수행한 다음, 이전 섹션에서 만든 샘플 데이터 레이크하우스로 Eventhouse 데이터를 가져오는 바로 가기를 만듭니다. 디지털 트윈 빌더는 레이크하우스에 데이터가 있어야 합니다.
이벤트 하우스 만들기
자습서 리소스를 만들 작업 영역으로 이동합니다. 동일한 작업 영역에서 모든 리소스를 만들어야 합니다.
+ 새 항목을 선택합니다.
항목별 필터 유형 검색 상자에 Eventhouse를 입력합니다.
Eventhouse 항목을 선택합니다.
Tutorial을 이벤트하우스 이름으로 입력하고 만들기를 클릭합니다. Eventhouse 및 KQL 데이터베이스는 동일한 이름으로 동시에 만들어집니다.
프로비전이 완료되면 시작 창에서 시작을 클릭합니다.
Eventhouse 시스템 개요 페이지가 표시됩니다.
eventstream 만들기
이 섹션에서는 이벤트 하우스에 샘플 버스 스트리밍 데이터를 보내는 이벤트 스트림을 만듭니다.
원본 추가
다음 단계에 따라 eventstream을 만들고 Buss 샘플 데이터를 원본으로 추가합니다.
Eventhouse의 시스템 개요 페이지에서 KQL 데이터베이스 목록에서 새 Tutorial 데이터베이스를 선택합니다.
메뉴 리본에서 데이터 가져오기를 선택하고 Eventstream 새 이벤트 스트림>을 선택합니다.
이름으로 BusEventstream 을 입력하고 만들기를 선택합니다. 이벤트 스트림이 준비되면 열립니다.
샘플 데이터 사용을 선택합니다.
원본 추가 페이지에서 샘플 데이터 아래의 버스를 선택합니다. 원본 이름으로 BusDataSource 를 입력합니다. 추가를 선택합니다.
새 이벤트 스트림이 준비되면 작성 캔버스에서 열립니다.
데이터 변환
이 섹션에서는 들어오는 샘플 데이터에 하나의 변환을 추가합니다. 이 단계에서는 문자열 필드 ScheduleTime와 Timestamp를 DateTime 형식으로 캐스팅하고, 명확성을 위해 Timestamp의 이름을 ArrivalTime로 바꿉니다. 타임스탬프 필드는 디지털 트윈 작성기(미리 보기)가 시계열 데이터로 사용하려면 DateTime 형식이어야 합니다.
다음 단계에 따라 데이터 변환을 추가합니다.
변환 이벤트에서 아래쪽 화살표를 선택 하거나 대상 타일을 추가한 다음, 미리 정의된 필드 관리 작업을 선택합니다. 타일의 이름이 ManageFields로 바뀝니다.
MangeFields 타일에서 편집 아이콘(연필 모양)을 선택하면 필드 관리 창이 열립니다.
모든 필드 추가를 선택합니다. 이 작업을 수행하면 변환을 통해 원본 데이터의 모든 필드가 표시됩니다.
팁 (조언)
추가할 수 있는 필드가 없으면 샘플 데이터가 초기화될 때까지 몇 분 정도 기다린 다음 다시 시도하세요. 캔버스에서 이전 노드를 선택하여 해당 데이터를 미리 보기하여 샘플 데이터가 도달했는지 확인할 수 있습니다.
타임스탬프 필드를 선택합니다. 변경 형식을 예로 전환합니다. 변환된 형식의 경우 드롭다운 목록에서 DateTime을 선택합니다. 이름에 ActualTime의 새 이름을 입력합니다.
ScheduleTime 필드를 선택합니다. 변경 형식을 예로 전환합니다. 변환된 형식의 경우 드롭다운 목록에서 DateTime을 선택합니다. 이름을 ScheduleTime으로 둡니다.
저장을 선택하여 업데이트된 속성을 모두 저장합니다.
필드 관리 창이 닫힙니다. ManageFields 타일은 대상에 연결할 때까지 오류를 계속 표시합니다.
대상 추가
메뉴 리본에서 대상 추가를 선택한 다음, Eventhouse를 선택합니다.
Eventhouse 창에 다음 정보를 입력합니다.
분야 가치 데이터 수집 모드 수집 전 이벤트 처리 목적지 이름 TutorialDestination 작업 공간 리소스를 만든 작업 영역을 선택합니다. Eventhouse 자습서 KQL 데이터베이스 자습서 KQL 대상 테이블 새로 만들기 - 테이블 이름으로 bus_data_raw 입력 입력 데이터 형식 Json 데이터 원본을 추가한 후 수집 활성화 체크됨 저장을 선택합니다.
제작 캔버스에서 ManageFields 타일을 선택하고 화살표를 TutorialDestination 타일로 끌어 연결합니다. 이 작업은 흐름의 모든 오류 메시지를 해결합니다.
메뉴 리본에서 게시를 선택합니다. 이제 eventstream에서 샘플 스트리밍 데이터를 Eventhouse로 보내기 시작합니다.
몇 분 후 Eventstream 보기의 TutorialDestination 카드는 데이터 미리 보기 탭에 샘플 데이터를 표시합니다. 데이터가 도착할 때까지 기다리는 동안 미리 보기를 몇 번 새로 고쳐야 할 수 있습니다.
이벤트 하우스에서 데이터 테이블이 활성 상태인지 확인합니다. 자습서 KQL 데이터베이스로 이동하여 보기를 새로 고칩니다. 이제 데이터가 포함된 bus_data_raw 테이블이 포함됩니다.
업데이트 정책을 사용하여 데이터 변환
이제 버스 스트리밍 데이터가 KQL 데이터베이스에 있으므로 함수 및 Kusto 업데이트 정책을 사용하여 데이터를 추가로 변환할 수 있습니다. 이 섹션에서 수행하는 변환은 디지털 트윈 작성기(미리 보기)에서 사용할 데이터를 준비하고 다음 작업을 포함합니다.
- JSON 필드
Properties를 포함된 각각의 데이터 항목인BusStatus과TimeToNextStation에 대해 별도의 열로 분리합니다. 디지털 트윈 빌더에는 JSON 구문 분석 기능이 없으므로 데이터가 디지털 트윈 빌더로 넘어가기 전에 이러한 값을 구분해야 합니다. - 각 버스 정류장을 나타내는 고유한 키인 열을
StopCode추가합니다. 이 단계의 목적은 이 자습서 시나리오를 지원하기 위해 샘플 데이터 집합을 완료하는 것입니다. 별도의 데이터 원본의 조인 가능한 엔터티 인스턴스에는 디지털 트윈 작성기에서 함께 연결하는 데 사용할 수 있는 공통 열이 포함되어야 하므로 이 단계에서는 정적 버스 정류장 데이터 집합의 필드와 일치하는Stop_Code시뮬레이션된 int 값 집합을 추가합니다. 실제 환경에서 관련 데이터 세트에는 이미 일종의 공통성이 포함되어 있습니다. - 변환된 버스 데이터를 포함하는 bus_data_processed 이라는 새 테이블을 만듭니다.
- 새 테이블에 OneLake 가용성을 사용하도록 설정하여 바로 가기를 사용하여 TutorialLH 레이크하우스의 데이터에 액세스할 수 있습니다.
변환 쿼리를 실행하려면 다음 단계를 수행합니다.
KQL 데이터베이스에서 Tutorial_queryset 선택하여 KQL 쿼리 편집기를 엽니다.
다음 코드 조각을 복사하여 쿼리 편집기에 붙여넣습니다(샘플 쿼리를 바꾸거나 아래쪽에 추가할 수 있음). 각 코드 블록을 순서대로 실행합니다.
// Set columns .create-or-alter function extractBusData () { bus_data_raw | extend BusState = tostring(todynamic(Properties).BusState) , TimeToNextStation = tostring(todynamic(Properties).TimeToNextStation) , StopCode = toint(10000 + abs(((toint(BusLine) * 100) + toint(StationNumber)) % 750)) | project-away Properties }// Create table .create table bus_data_processed (ActualTime:datetime, TripId:string, BusLine:long, StationNumber:long, ScheduleTime:datetime, BusState:string, TimeToNextStation:string, StopCode:int)//Load data into table .alter table bus_data_processed policy update ``` [{ "IsEnabled": true, "Source": "bus_data_raw", "Query": "extractBusData", "IsTransactional": false, "PropagateIngestionProperties": true }] ```// Enable OneLake availability .alter-merge table bus_data_processed policy mirroring dataformat=parquet with (IsEnabled=true, TargetLatencyInMinutes=5)팁 (조언)
코드를 사용하는 대신 UI를 통해 새 테이블에 OneLake 가용성을 사용하도록 설정할 수도 있습니다. 테이블을 선택하고 OneLake 가용성을 전환합니다.
UI 옵션을 사용하면 데이터 볼륨에 따라 기본 대기 시간이 15분에서 몇 시간까지입니다. 대기 시간을 5분으로 줄이려면 이전 코드 블록에 표시된 대로 .alter-merge 테이블 명령을 사용합니다.
필요에 따라 나중에 식별할 수 있도록 쿼리 탭의 이름을 Bus 데이터 처리 로 바꿉니다.
쿼리를 실행한 후 데이터베이스에 bus_data_processed라는 새 테이블이 만들어집니다. 잠시 기다린 후 처리된 버스 데이터로 채우기 시작합니다.
Lakehouse 바로 가기 만들기
마지막으로, 디지털 트윈 빌더(미리 보기)에 대한 샘플 데이터를 보유하는 TutorialLH 레이크하우스에서 처리된 버스 데이터를 노출하는 바로 가기를 만듭니다. 디지털 트윈 빌더는 데이터 원본이 레이크하우스여야 하므로 이 단계가 필요합니다.
TutorialLH 레이크하우스로 이동합니다(앞서 1부에서 만든 컨텍스트 데이터 업로드). 메뉴 리본에서 데이터 가져오기>새로 만들기를 선택합니다.
내부 원본 아래에서 Microsoft OneLake를 선택합니다. 그런 다음 자습서 KQL 데이터베이스를 선택합니다.
테이블 목록을 확장하고 bus_data_processed 옆의 확인란을 선택합니다. 다음을 선택합니다.
바로 가기 세부 정보를 검토하고 만들기를 선택합니다.
이제 bus_data_processed 테이블을 레이크하우스에서 사용할 수 있습니다. 데이터가 포함되어 있는지 확인합니다(몇 분 정도 걸릴 수 있음).
다음으로, 이 레이크하우스 데이터를 원본으로 사용하여 디지털 트윈 빌더에서 온톨로지 빌드합니다.