Udostępnij przez


Narzędzie Digital Twin Builder (wersja zapoznawcza) w samouczku analizy Real-Time — część 2: Pobieranie i przetwarzanie danych przesyłanych strumieniowo

W tej części samouczka skonfigurujesz inny typ przykładowych danych: strumień danych w czasie rzeczywistym z przykładowych danych magistrali, który zawiera informacje o szeregach czasowych dotyczących lokalizacji magistrali. Możesz przesłać strumieniowo przykładowe dane do magazynu zdarzeń, wykonać pewne przekształcenia na danych, a następnie utworzyć skrót, aby pobrać dane magazynu zdarzeń do przykładowej bazy danych data lakehouse utworzonej w poprzedniej sekcji. Konstruktor cyfrowych bliźniaków wymaga, aby dane znajdowały się w lakehouse.

Stworzyć dom eventowy

  1. Przejdź do obszaru roboczego, w którym chcesz utworzyć materiały do samouczka. Musisz utworzyć wszystkie zasoby w tym samym obszarze roboczym.

  2. Wybierz pozycję + Nowy element.

  3. W polu wyszukiwania Filtruj według typu elementu wprowadź Eventhouse.

    Nowy panel elementów z wyróżnioną pozycją Eventhouse.

  4. Wybierz element Eventhouse.

  5. Wprowadź Tutorial jako nazwę eventhouse i kliknij Utwórz. Eventhouse i baza danych KQL są tworzone jednocześnie z tą samą nazwą.

    Zrzut ekranu interfejsu usługi Eventhouse z wyświetlonym dialogiem nazwy usługi Eventhouse i wyróżnionym przyciskiem Utwórz.

  6. Po zakończeniu przydzielania zasobów kliknij przycisk Rozpocznij w oknie powitalnym.

    Zrzut ekranu przedstawiający interfejs powitalny usługi Eventhouse z wyróżnionym przyciskiem Rozpocznij.

    Zostanie wyświetlona strona przeglądu systemu eventhouse.

Tworzenie strumienia zdarzeń

W tej sekcji utworzysz przepływ zdarzeń w celu wysyłania danych strumieniowych z magistrali do centra zdarzeń.

Dodawanie źródła

Wykonaj następujące kroki, aby utworzyć strumień zdarzeń i dodać przykładowe dane usługi Buses jako źródło.

  1. Na stronie Przegląd systemu w domu zdarzeń wybierz nową bazę danych Samouczek z listy baz danych KQL.

  2. Na wstążce menu wybierz Pobierz dane i wybierz Strumień zdarzeń > Nowy strumień zdarzeń.

    Zrzut ekranu przedstawiający pobieranie nowego strumienia zdarzeń dla bazy danych Tutorial.

  3. Wprowadź BusEventstream jako nazwę i wybierz Utwórz. Gdy strumień zdarzeń jest gotowy, otwiera się.

  4. Wybierz pozycję Użyj przykładowych danych.

    Zrzut ekranu przedstawiający wybieranie przykładowych danych dla strumienia zdarzeń.

  5. Na stronie Dodawanie źródła wybierz pozycję Magistrale w obszarze Przykładowe dane. Wprowadź BusDataSource jako nazwę źródła. Wybierz Dodaj.

    Zrzut ekranu przedstawiający wybieranie przykładowych danych autobusu.

    Gdy nowy strumień zdarzeń będzie gotowy, zostanie otwarty na kanwie tworzenia.

Przekształcanie danych

W tej sekcji dodasz jedną transformację do przychodzących przykładowych danych. Ten krok rzutuje pola tekstowe ScheduleTime i Timestamp na typ DateTime oraz zmienia nazwę Timestamp na ArrivalTime, dla większej jasności. Pola znacznika czasu muszą być w formacie DateTime, aby konstruktor bliźniaków cyfrowych (wersja zapoznawcza) mógł używać ich jako danych serii czasowych.

Wykonaj następujące kroki, aby dodać przekształcenie danych.

  1. Wybierz strzałkę w dół na kafelku Przekształć zdarzenia lub dodaj kafelek docelowy , a następnie wybierz wstępnie zdefiniowaną operację Zarządzaj polami . Kafelek został przemianowany na ManageFields.

    Zrzut ekranu przedstawiający wybieranie operacji Zarządzanie polami.

  2. Wybierz ikonę edycji (w kształcie ołówka) na kafelku MangeFields , który otwiera okienko Zarządzaj polami .

  3. Wybierz pozycję Dodaj wszystkie pola. Ta akcja gwarantuje, że wszystkie pola z danych źródłowych są obecne w ramach transformacji.

    Wskazówka

    Jeśli nie ma dostępnych pól do dodania, poczekaj kilka minut na inicjalizację danych przykładowych, a następnie spróbuj ponownie. Możesz wybrać wcześniejsze węzły na kanwie, aby wyświetlić podgląd danych, aby potwierdzić, że dotarły do nich przykładowe dane.

  4. Wybierz pole Znacznik czasu . Przełącz pozycję Zmień typ na Tak. W polu Typ przekonwertowany wybierz pozycję DateTime z listy rozwijanej. W polu Nazwa wprowadź nową nazwę ActualTime.

    Zrzut ekranu przedstawiający zmianę pola Znacznik czasu.

  5. Wybierz pole ScheduleTime . Przełącz pozycję Zmień typ na Tak. W polu Typ przekonwertowany wybierz pozycję DateTime z listy rozwijanej. Pozostaw nazwę ScheduleTime.

    Wybierz pozycję Zapisz , aby zapisać obie zaktualizowane właściwości.

  6. Okienko Zarządzaj polami zostanie zamknięte. Kafelek ManageFields nadal wyświetla błąd, dopóki nie połączysz go z miejscem docelowym.

Dodawanie miejsca docelowego

  1. Na wstążce menu wybierz pozycję Dodaj miejsce docelowe, a następnie wybierz pozycję Eventhouse.

    Zrzut ekranu przedstawiający wybieranie miejsca docelowego 'eventhouse'.

  2. Wprowadź następujące informacje w okienku Eventhouse :

    (No changes needed) Wartość
    tryb pozyskiwania danych Przetwarzanie zdarzeń przed wprowadzeniem
    Nazwa docelowa TutorialDestination
    Obszar roboczy Wybierz obszar roboczy, w którym zostały utworzone zasoby.
    Eventhouse Samouczek
    Baza danych KQL Samouczek
    Tabela docelowa KQL Tworzenie nowego — wprowadź bus_data_raw jako nazwę tabeli
    Format danych wejściowych Json
    Aktywowanie pozyskiwania po dodaniu źródła danych Sprawdzane
  3. Wybierz Zapisz.

  4. Na kanwie tworzenia wybierz kafelek ManageFields i przeciągnij strzałkę do kafelka TutorialDestination , aby je połączyć. Ta akcja usuwa wszystkie komunikaty o błędach w przepływie.

  5. Na wstążce menu wybierz pozycję Publikuj. Strumień zdarzeń rozpoczyna teraz wysyłanie przykładowych danych strumieniowych do twojego eventhouse.

  6. Po kilku minutach karta TutorialDestination w widoku strumienia zdarzeń wyświetla przykładowe dane na karcie Podgląd danych . Może być konieczne odświeżenie podglądu kilka razy podczas oczekiwania na nadejście danych.

    Zrzut ekranu przedstawiający dane podglądu.

  7. Upewnij się, że tabela danych jest aktywna w twoim domu wydarzeń. Przejdź do bazy danych Tutorial KQL i odśwież widok. Zawiera teraz tabelę o nazwie bus_data_raw zawierającą dane.

    Zrzut ekranu przedstawiający tabelę bus_data_raw z danymi.

Przekształcanie danych przy użyciu zasad aktualizacji

Teraz, gdy dane przesyłania strumieniowego magistrali są w bazie danych KQL, możesz użyć funkcji i zasad aktualizacji Kusto , aby jeszcze bardziej przekształcić dane. Przekształcenia wykonywane w tej sekcji przygotowują dane do użycia w narzędziu Digital Twin Builder (wersja zapoznawcza) i obejmują następujące akcje:

  • Dzieli pole Properties JSON na oddzielne kolumny dla każdego z zawartych w nim elementów BusStatus danych i TimeToNextStation. Konstruktor cyfrowych reprezentacji bliźniaczych nie ma możliwości analizowania w formacie JSON, dlatego należy oddzielić te wartości przed przejściem do konstruktora cyfrowej reprezentacji bliźniaczej.
  • Dodaje kolumnę StopCode, która jest unikatowym kluczem reprezentującym każdy przystanek autobusowy. Celem tego kroku jest ukończenie przykładowego zestawu danych w celu obsługi tego scenariusza samouczka. Podłączalne wystąpienia jednostek z oddzielnych źródeł danych muszą zawierać wspólną kolumnę, której twórca cyfrowego bliźniaka może użyć, aby połączyć je ze sobą, więc ten krok dodaje symulowany zestaw wartości int pasujących Stop_Code do pola w statycznym zestawie danych przystanków autobusowych. W świecie rzeczywistym powiązane zestawy danych zawierają już jakiś rodzaj commonality.
  • Tworzy nową tabelę o nazwie bus_data_processed zawierającą przekształcone dane magistrali.
  • Włącza dostępność usługi OneLake dla nowej tabeli, dzięki czemu można użyć skrótu w celu uzyskania dostępu do danych w usłudze TutorialLH lakehouse.

Aby uruchomić zapytania przekształcenia, wykonaj następujące kroki.

  1. Otwórz edytor zapytań KQL, wybierając opcję Tutorial_queryset w bazie danych KQL.

    Zrzut ekranu przedstawiający otwieranie edytora zapytań.

  2. Skopiuj i wklej następujące fragmenty kodu do edytora zapytań (możesz zastąpić przykładowe zapytania lub dodać je u dołu). Uruchom każdy blok kodu w kolejności.

    // 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)
    

    Wskazówka

    Możesz również włączyć dostępność usługi OneLake dla nowej tabeli za pośrednictwem interfejsu użytkownika zamiast używania kodu. Wybierz tabelę i przełącz pozycję Dostępność usługi OneLake.

    Zrzut ekranu przedstawiający włączanie dostępności usługi OneLake w interfejsie użytkownika.

    W przypadku opcji interfejsu użytkownika domyślne opóźnienie wynosi od 15 minut do kilku godzin, w zależności od ilości danych. Aby zmniejszyć opóźnienie do pięciu minut, użyj polecenia .alter-merge table , jak pokazano w poprzednim bloku kodu.

  3. Opcjonalnie zmień nazwę karty zapytania na Przetwarzanie danych magistrali , aby później je zidentyfikować.

  4. Po uruchomieniu zapytań w bazie danych zostanie utworzona nowa tabela o nazwie bus_data_processed. Po krótkim oczekiwaniu, zacznie być wypełniane przetworzonymi danymi autobusowymi.

    Zrzut ekranu przedstawiający tabelę bus_data_processed z danymi.

Tworzenie skrótu lakehouse

Na koniec utwórz skrót, który uwidacznia przetworzone dane magistrali w usłudze TutorialLH Lakehouse, który przechowuje przykładowe dane dla konstruktora cyfrowej reprezentacji bliźniaczej (wersja zapoznawcza). Ten krok jest niezbędny, ponieważ konstruktor cyfrowych bliźniaków wymaga, aby jego źródło danych było "lakehouse".

  1. Przejdź do obszaru TutorialLH lakehouse (utworzono go wcześniej w części 1, Przekaż dane kontekstowe). Na wstążce menu wybierz pozycję Pobierz dane>Nowy skrót.

    Zrzut ekranu przedstawiający przycisk Nowy skrót.

  2. W obszarze Źródła wewnętrzne wybierz pozycję Microsoft OneLake. Następnie wybierz bazę danych Samouczek języka KQL.

  3. Rozszerz listę Tabele i zaznacz pole wyboru obok bus_data_processed. Wybierz Dalej.

  4. Przejrzyj szczegóły skrótu i wybierz pozycję Utwórz.

    Zrzut ekranu przedstawiający tworzenie skrótu.

  5. Tabela bus_data_processed jest teraz dostępna w twoim lakehouse. Sprawdź, czy zawiera ona dane (może to potrwać kilka minut).

    Zrzut ekranu przedstawiający bus_data_processed w jeziorze.

Następnie użyjesz danych lakehouse jako źródła, aby utworzyć ontologię w konstruktorze cyfrowych bliźniaków.

Następny krok