Dodawanie źródła SQL Server w usłudze VM DB (CDC) do strumienia zdarzeń

W tym artykule pokazano, jak dodać źródło przechwytywania zmian danych (CDC) dla SQL Server na maszynie wirtualnej do strumienia zdarzeń.

Łącznik źródłowy SQL Server w usłudze VM DB (CDC) dla strumieni zdarzeń Fabric umożliwia przechwycenie migawki bieżących danych w bazie danych SQL Server na maszynie wirtualnej. Obecnie SQL Server w usłudze VM DB (CDC) jest obsługiwana z następujących usług, do których można publicznie uzyskać dostęp do baz danych:

Uwaga

Usługi Amazon Web Services (AWS) RDS SQL Server, AWS RDS Custom SQL Server i Google Cloud SQL SQL Server nie obsługują wersji Express. Upewnij się, że używasz odpowiedniej wersji SQL Server dla usługi CDC.

Po dodaniu źródła bazy danych SQL Server na maszynie wirtualnej (CDC) do strumienia zdarzeń, monitoruje ono i rejestruje przyszłe zmiany na poziomie wiersza, które mogą być następnie przetwarzane w czasie rzeczywistym i wysyłane do różnych miejsc docelowych w celu dalszej analizy.

Uwaga

Za pomocą funkcji DeltaFlow (wersja zapoznawcza) można przekształcić nieprzetworzone zdarzenia CDC Debezium na strumienie gotowe do analizy, które odzwierciedlają strukturę tabeli źródłowej. Usługa DeltaFlow automatyzuje rejestrację schematu, zarządzanie tabelami docelowymi i obsługę ewolucji schematu. Aby użyć funkcji DeltaFlow, wybierz pozycję Zdarzenia gotowe do analizy i automatycznie zaktualizowany schemat podczas kroku obsługi schematu.

Wymagania wstępne

  • Dostęp do obszaru roboczego w trybie licencji pojemności Fabric (lub) w trybie licencji próbnej z uprawnieniami współautora lub wyższymi uprawnieniami.
  • Uruchomiony SQL Server na bazie danych działającej na maszynie wirtualnej.
  • Aby zezwolić na dostęp publiczny, należy skonfigurować SQL Server w bazie danych maszyn wirtualnych. Jeśli znajduje się w chronionej sieci, połącz się z nią za pomocą iniekcji sieci wirtualnej łącznika eventstream.
  • Włącz usługę CDC w SQL Server w bazie danych maszyny wirtualnej, uruchamiając procedurę składowaną sys.sp_cdc_enable_db. Aby uzyskać szczegółowe informacje, zobacz Włączanie i wyłączanie przechwytywania zmian danych.

Włączanie usługi CDC w usłudze SQL Server w bazie danych maszyn wirtualnych

  1. Włącz usługę CDC dla bazy danych.

    EXEC sys.sp_cdc_enable_db; 
    
  2. Włącz CDC dla tabeli, używając opcji roli kontrolującej dostęp. W tym przykładzie MyTable jest nazwą tabeli SQL.

    EXEC sys.sp_cdc_enable_table 
       @source_schema = N'dbo', 
       @source_name   = N'MyTable', 
       @role_name     = NULL 
    GO 
    

    Po pomyślnym wykonaniu zapytania usługa CDC została włączona w SQL Server w bazie danych maszyny wirtualnej.

    Zrzut ekranu przedstawiający włączoną usługę CDC.

Dodaj bazę danych SQL Server hostowaną na maszynie wirtualnej jako źródło

Jeśli jeszcze nie dodano żadnego źródła do strumienia zdarzeń, wybierz kafelek Połącz źródła danych . Możesz również wybrać pozycję Dodaj źródło>Połącz źródła danych na wstążce.

Zrzut ekranu przedstawiający wybór kafelka do korzystania z zewnętrznego źródła.

Jeśli dodajesz źródło do już opublikowanego strumienia zdarzeń, przełącz się na tryb edycji. Na wstążce wybierz pozycję Dodaj źródło>Połącz źródła danych.

Zrzut ekranu przedstawiający opcje dodawania źródeł zewnętrznych.

Na stronie Wybierz źródło danych wyszukaj i wybierz Połącz na kafelku SQL Server na VM DB (CDC).

Konfigurowanie i nawiązywanie połączenia z SQL Server w bazie danych maszyny wirtualnej

Przetwarzanie danych o zmianach z SQL Server na bazach danych maszyn wirtualnych z automatycznym rejestrowaniem schematów tabel z użyciem CDC do Eventstream.

Uwaga

DeltaFlow (wersja zapoznawcza): po wybraniu zdarzeń gotowych do analizy i automatycznie zaktualizowanego schematu w kroku obsługi schematu funkcja DeltaFlow przekształca nieprzetworzone zdarzenia CDC Debezium na strumienie gotowe do analizy, które odzwierciedlają strukturę tabeli źródłowej. Usługa DeltaFlow automatyzuje również tworzenie tabel docelowych i obsługę ewolucji schematu.

  1. Na stronie Łączenie wybierz pozycję Nowe połączenie.

    Zrzut ekranu przedstawiający wybór linku Nowe połączenie na stronie Łączenie.

  2. W sekcji Ustawienia połączenia wprowadź następujące wartości dla swojego serwera SQL na maszynie wirtualnej.

    • Serwera: Wprowadź adres IP lub nazwę domeny maszyny wirtualnej, a następnie dodaj dwukropek i port. Jeśli na przykład adres IP to xx.xxx.xxx.xxx i port to 1433, wprowadź xx.xxx.xxx.xxx:1433 w polu Serwer. Jeśli port nie zostanie określony, zostanie użyta domyślna wartość 1433 portu.

    • Database: Wprowadź nazwę bazy danych, z którą chcesz nawiązać połączenie na SQL Server na maszynie wirtualnej.

      Zrzut ekranu przedstawiający sekcję Ustawienia połączenia na stronie Łączenie.

  3. Przewiń w dół i w sekcji Poświadczenia połączenia wykonaj następujące kroki.

    • W polu Nazwa połączenia wprowadź nazwę połączenia.

    • W polu Rodzaj uwierzytelniania wybierz pozycję Podstawowa.

      Uwaga

      Obecnie usługa Fabric Eventstream obsługuje tylko uwierzytelnianie Basic.

    • Wprowadź nazwę użytkownika i hasło dla SQL Server na maszynie wirtualnej.

      Uwaga

      Nie wybieraj opcji: Użyj szyfrowanego połączenia.

      Zrzut ekranu przedstawiający sekcję Poświadczenia połączenia na stronie Połączenie.

  4. Wybierz pozycję Połącz w dolnej części strony.

  5. Teraz na stronie Połącz wybierz pozycję Wszystkie tabele lub Wprowadź nazwy tabel. Jeśli wybierzesz tę drugą, określ tabele przy użyciu rozdzielanej przecinkami listy pełnych identyfikatorów tabeli (schemaName.tableName) lub prawidłowych wyrażeń regularnych. Przykład:

    • Użyj dbo.test.*, aby wybrać wszystkie tabele, których nazwy zaczynają się od dbo.test.
    • Użyj dbo\.(test1|test2), aby wybrać dbo.test1 i dbo.test2.

    Oba formaty można mieszać przy użyciu przecinków. Całkowity limit znaków dla całego wpisu wynosi 102 400 znaków.

  6. Możesz rozwinąć ustawienia zaawansowane aby skonfigurować tryb obsługi dziesiętnej, który określa sposób, w jaki łącznik obsługuje DECIMAL i NUMERIC wartości kolumn:

    • Precise: reprezentuje wartości przy użyciu dokładnych typów dziesiętnych (na przykład Java BigDecimal), aby zapewnić pełną precyzję i dokładność w reprezentacji danych.
    • Double: konwertuje wartości na liczby zmiennoprzecinkowe o podwójnej precyzji. To ustawienie zwiększa użyteczność i wydajność, ale może spowodować utratę precyzji.
    • String: koduje wartości jako sformatowane ciągi. To ustawienie ułatwia ich używanie w systemach podrzędnych, ale traci semantyczne informacje o oryginalnym typie liczbowym.

Szczegóły strumienia lub źródła

  1. Na stronie Łączenie wykonaj jedną z tych czynności w zależności od tego, czy używasz usługi Eventstream, czy Real-Time Hub.

    • Strumień zdarzeń:

      W okienku Szczegóły źródła po prawej stronie wykonaj następujące kroki:

      1. W polu Nazwa źródła wybierz przycisk Ołówek , aby zmienić nazwę.

      2. Zwróć uwagę, że nazwa strumienia zdarzeń i nazwa strumienia są tylko do odczytu.

    • Centrum czasu rzeczywistego:

      W sekcji Szczegóły usługi Stream po prawej stronie wykonaj następujące kroki:

      1. Wybierz obszar roboczy Fabric gdzie chcesz utworzyć strumień zdarzeń.

      2. W polu Nazwa strumienia zdarzeń wybierz przycisk Ołówek i wprowadź nazwę strumienia zdarzeń.

      3. Wartość nazwy strumienia jest automatycznie generowana przez dodanie -stream do nazwy eventstream. Strumień ten pojawia się na stronie Wszystkie strumienie danych na centrum czasu rzeczywistego, gdy kreator zakończy działanie.

  2. Wybierz pozycję Dalej w dolnej części strony Konfigurowanie .

Przeglądanie i nawiązywanie połączenia

Na ekranie Przeglądanie i łączenie przejrzyj podsumowanie, a następnie wybierz pozycję Dodaj (Eventstream) lub Połącz (Real-Time hub).

Strona obsługi schematu

  1. W kroku Obsługa schematu wybierz jedną z następujących opcji:

    • Zdarzenia gotowe do analizy i automatycznie zaktualizowany schemat (wersja zapoznawcza usługi DeltaFlow): łącznik przekształca nieprzetworzone zdarzenia CDC w strumienie gotowe do analizy, które odzwierciedlają strukturę tabeli źródłowej. Funkcja DeltaFlow wzbogaca zdarzenia o metadane, takie jak typ zmiany (wstawianie, aktualizowanie lub usuwanie) i znaczniki czasu, a także automatycznie zarządza tabelami docelowymi i ewolucją schematu.
    • Nieprzetworzone zdarzenia CDC: łącznik pozyskuje i udostępnia nieprzetworzone zdarzenia CDC. Opcjonalnie łącznik może automatycznie odnajdywać schematy tabel i rejestrować je w rejestrze schematów. Użyj tej opcji, jeśli chcesz mieć świadomość schematu bez przekształcenia DeltaFlow.

    Uwaga

    Poniższy zrzut ekranu przedstawia Azure SQL Database CDC. Opcje obsługi schematu są takie same dla wszystkich obsługiwanych łączników źródłowych CDC.

    Zrzut ekranu przedstawiający krok obsługi schematu z opcjami zdarzeń DeltaFlow i Raw CDC dla łącznika źródła CDC.

  2. Włącz skojarzenie schematu zdarzeń.

  3. W przypadku Workspace wybierz obszar roboczy Fabric dla zestawu schematów.

  4. W obszarze Zestaw schematówopcja + Utwórz jest domyślnie wybierana, co powoduje utworzenie nowego zestawu schematów. Można go zmienić, aby wybrać istniejący zestaw schematów zdarzeń.

  5. Jeśli w poprzednim kroku wybrano opcję + Utwórz , wprowadź nazwę zestawu schematów.

  6. Na ekranie Przeglądanie i tworzenie przejrzyj podsumowanie, a następnie wybierz pozycję Dodaj (Eventstream) lub Połącz (Real-Time hub).

    Zrzut ekranu przedstawiający wybór przycisku Dodaj.

    Dla wszystkich tabel lub wybranych tabel w bazie danych SQL Server na maszynie wirtualnej, łącznik automatycznie wykrywa i tworzy schematy oraz rejestruje je w rejestrze schematów.

DeltaFlow: przekształcanie zdarzeń gotowych do analizy (wersja zapoznawcza)

Po włączeniu funkcji zdarzeń gotowych do analizy i automatycznego aktualizowania schematu (DeltaFlow) łącznik oferuje następujące możliwości:

  • Kształt zdarzenia gotowego do analityki: Surowe zdarzenia CDC Debezium są przekształcane w format tabelaryczny, który odzwierciedla strukturę tabeli źródłowej. Zdarzenia są wzbogacone o kolumny metadanych, w tym typ zmiany (insert, updatelub delete) i znacznik czasu zdarzenia.
  • Automatyczne zarządzanie tabelami docelowymi: w przypadku kierowania strumieni z obsługą funkcji DeltaFlow do obsługiwanego miejsca docelowego, takiego jak magazyn zdarzeń, tabele docelowe są tworzone automatycznie w celu dopasowania do schematu tabeli źródłowej. Nie musisz ręcznie tworzyć ani konfigurować tabel docelowych.
  • Obsługa ewolucji schematu: gdy tabele źródłowej bazy danych zmieniają się (na przykład dodawane są nowe kolumny lub tworzone tabele), funkcja DeltaFlow automatycznie wykrywa zmiany, aktualizuje zarejestrowane schematy i odpowiednio dostosowuje tabele docelowe. Ta funkcja minimalizuje interwencję ręczną spowodowaną zmianami schematu.

Uwaga

Usługa DeltaFlow (wersja zapoznawcza) jest obecnie obsługiwana z łącznikami źródłowymi: Azure SQL Database CDC, Azure SQL Managed Instance CDC, SQL Server na maszynie wirtualnej CDC oraz PostgreSQL CDC.

Aby uzyskać szczegółowe informacje na temat przekształcania surowych zdarzeń CDC w dane wyjściowe gotowe do analizy, w tym typy operacji i kolumny metadanych, zobacz DeltaFlow output transformation.

Wyświetlanie zaktualizowanego strumienia zdarzeń

Możesz zobaczyć SQL Server w źródle CDC VM DB, dodanym do strumienia zdarzeń w trybie Edit.

Zrzut ekranu przedstawiający dodany SQL Server w źródle CDC bazy danych maszyny wirtualnej (VM) w trybie edycji z rozszerzonymi funkcjami.

Aby zaimplementować ten nowo dodany SQL Server jako źródło CDC na bazie danych maszyny wirtualnej, wybierz Publish. Po wykonaniu tych kroków, źródło CDC bazy danych SQL Server na maszynie wirtualnej można zwizualizować w widoku Live.

 Zrzut ekranu przedstawiający dodany SQL Server na źródle CDC bazy danych maszyny wirtualnej w trybie widoku na żywo z rozszerzonymi funkcjami.

Konfigurowanie miejsc docelowych strumienia zdarzeń do korzystania z schematów

Obecnie dla strumieni zdarzeń z powiązanymi schematami obsługiwane są tylko: Eventhouse, niestandardowy punkt końcowy oraz miejsca docelowe dla pochodnych strumieni. W tej sekcji przedstawiono sposób dodawania i konfigurowania miejsca docelowego usługi Eventhouse po włączeniu rozszerzonych funkcji (takich jak obsługa schematu) dla strumienia zdarzeń.

Uwaga

W przypadku używania funkcji DeltaFlow (wersja zapoznawcza) z obsługiwanym źródłem przechwytywania danych zmian (CDC) tabele docelowe w Eventhouse są automatycznie tworzone i zarządzane, aby dopasować strukturę tabeli źródłowej. Nie musisz ręcznie konfigurować schematu tabeli docelowej. Usługa DeltaFlow automatycznie obsługuje również ewolucję schematu, gdy zmieniają się tabele źródłowe.

Konfiguracja schematu dla niestandardowego adresu końcowego

  1. Wybierz pozycję Przekształć zdarzenia lub dodaj miejsce docelowe, a następnie wybierz pozycję CustomEndpoint.

  2. W okienku Niestandardowy punkt końcowy określ nazwę miejsca docelowego.

  3. W polu Schemat wejściowy wybierz schemat zdarzeń. W tym polu dokonujesz wyboru, gdy włączysz obsługę schematu dla strumienia zdarzeń.

Zrzut ekranu przedstawiający okienko służące do konfigurowania niestandardowego punktu końcowego.

Aby uzyskać szczegółowe instrukcje dotyczące konfigurowania niestandardowego miejsca docelowego punktu końcowego, zobacz Dodawanie niestandardowego punktu końcowego lub niestandardowego miejsca docelowego aplikacji do strumienia zdarzeń.

Konfigurowanie schematów dla docelowego eventhouse'u.

  1. Wybierz pozycję Przekształć zdarzenia lub dodaj miejsce docelowe, a następnie wybierz pozycję Eventhouse.

  2. W okienku Eventhouse skonfiguruj następujące ustawienia związane ze schematem:

    1. W polu Schemat wejściowy wybierz jeden lub więcej schematów z listy rozwijanej.

      Zrzut ekranu przedstawiający okienko konfiguracji eventhouse z wybranym schematem wejściowym.

      Uwaga

      W przypadku wybrania opcji Schemat dynamiczny za pomocą nagłówków podczas konfigurowania źródła usługi Event Hubs można skonfigurować wiele schematów dla źródła i zamapować je na różne właściwości i ich wartości.

    2. W polu Metoda tworzenia tabeli wybierz pozycję Pojedyncza tabela ze wszystkimi schematami połączonymi lub Oddzielnymi tabelamidla każdego schematu w zależności od wymagań.

      Zrzut ekranu przedstawiający panel konfiguracji eventhouse z metodami tworzenia tabel.

    3. W obszarze Zapisywanie danych za pomocą wybierz jedną z następujących opcji:

      • Tylko ładunek: Zapisz wyodrębnione dane ładunku do tabeli. Jeśli istnieje wiele schematów wejściowych, dane są wysyłane do wielu tabel.
      • Metadane i dane ładunku: Zapisz metadane i dane ładunku w jednej tabeli. Przykładowe kolumny obejmują source , , subjecttypei data.

      Zrzut ekranu przedstawiający okienko konfiguracji magazynu zdarzeń z opcjami zapisywania danych.

Aby uzyskać szczegółowe instrukcje dotyczące konfigurowania celu eventhouse, zobacz Dodawanie celu eventhouse do strumienia zdarzeń.

Wyświetlanie danych wyjściowych gotowych do analizy usługi DeltaFlow (wersja zapoznawcza)

W przypadku włączenia zdarzeń gotowych do analizy i automatycznego aktualizowania schematu (DeltaFlow), tabele docelowe są automatycznie tworzone w formie odzwierciedlającej tabele źródłowej bazy danych. Każda tabela zawiera oryginalne kolumny wraz z kolumnami metadanych dla typu zmiany i znacznika czasu.

Uwaga

Poniższy zrzut ekranu przedstawia Azure SQL Database CDC. Dane wyjściowe tabeli docelowej usługi DeltaFlow są takie same dla wszystkich obsługiwanych łączników źródłowych usługi CDC.

Zrzut ekranu przedstawiający tabele docelowe usługi Eventhouse utworzone przez usługę DeltaFlow w kształcie gotowym do analizy.

Możesz wykonywać zapytania dotyczące tych tabel przy użyciu języka Kusto Query Language (KQL) lub innych narzędzi analitycznych bez konieczności analizowania nieprzetworzonych ładunków usługi Debezium CDC.

Inne łączniki: