Udostępnij przez


Dodaj źródło CDC bazy danych PostgreSQL do strumienia zdarzeń

W tym artykule pokazano, jak dodać źródło przechwytywania zmian danych bazy danych PostgreSQL (CDC) do strumienia zdarzeń.

Łącznik źródłowy wykrywania zmian danych w bazie danych PostgreSQL (CDC) dla strumieni zdarzeń usługi Microsoft Fabric umożliwia wykonanie migawki aktualnych danych w bazie danych PostgreSQL. Obecnie funkcja przechwytywania zmian danych bazy danych PostgreSQL (CDC) jest obsługiwana z następujących usług, do których można publicznie uzyskać dostęp do baz danych:

  • Azure Database for PostgreSQL
  • Amazon RDS for PostgreSQL
  • Amazon Aurora PostgreSQL
  • Google Cloud SQL for PostgreSQL

Po dodaniu źródła CDC bazy danych PostgreSQL do strumieniu zdarzeń, przechwytuje zmiany na poziomie wiersza w określonych tabelach. Te zmiany można następnie przetwarzać w czasie rzeczywistym i wysyłać do różnych miejsc docelowych w celu dalszej analizy.

Wymagania wstępne

Włączanie usługi CDC w bazie danych PostgreSQL

W tej sekcji użyto Azure Database for PostgreSQL jako przykład.

Aby włączyć CDC w elastycznym serwerze Azure Database for PostgreSQL, wykonaj następujące kroki:

  1. Na stronie elastycznego serwera PostgreSQL w portalu Azure wybierz pozycję Parametry serwera w menu nawigacji.

  2. Na stronie Parametry serwera:

    • Ustaw wal_level na wartość logiczną.
    • Zaktualizuj max_worker_processes do co najmniej 16.

    Zrzut ekranu przedstawiający włączanie usługi CDC dla wdrożenia serwera elastycznego.

  3. Zapisz zmiany i uruchom ponownie serwer.

  4. Potwierdź, że wystąpienie elastycznego serwera Azure Database for PostgreSQL zezwala na publiczny ruch sieciowy.

  5. Udziel uprawnień replikacji użytkownika administratora, uruchamiając następującą instrukcję SQL. Jeśli chcesz użyć innego konta użytkownika, aby połączyć bazę danych PostgreSQL w celu pobrania usługi CDC, upewnij się, że użytkownik jest właścicielem tabeli .

    ALTER ROLE <admin_user_or_table_owner_user> WITH REPLICATION;
    

Uruchom kreatora Wybierz źródło danych

Jeśli jeszcze nie dodano żadnego źródła do strumienia zdarzeń, wybierz kafelek Użyj źródła zewnętrznego .

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ła>zewnętrzne.

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

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

Zrzut ekranu przedstawiający wybór Azure DB for PostgreSQL (CDC) jako typu źródła w kreatorze pobierania zdarzeń.

Konfigurowanie i nawiązywanie połączenia z usługą CDC bazy danych PostgreSQL

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

    Zrzut ekranu przedstawiający stronę połączenia bazy danych Azure PostgreSQL z podświetlonym linkiem Nowe połączenie.

  2. W sekcji Ustawienia połączenia wprowadź następujące informacje.

    • Serwer: adres serwera bazy danych PostgreSQL, na przykład my-pgsql-server.postgres.database.azure.com.

    • Baza danych: nazwa bazy danych, na przykład my_database.

      Zrzut ekranu przedstawiający sekcję Ustawienia połączenia dla łącznika bazy danych Azure PostgreSQL.

    • Nazwa połączenia: wprowadź nazwę połączenia.

    • Rodzaj uwierzytelniania, wybierz pozycję Podstawowa i wprowadź nazwę użytkownika i hasło dla bazy danych.

      Uwaga

      Obecnie strumienie zdarzeń Fabric obsługują tylko uwierzytelnianie podstawowe.

    • Wybierz pozycję Połącz , aby ukończyć ustawienia połączenia. Zrzut ekranu przedstawiający sekcję Poświadczenia połączenia dla łącznika bazy danych Azure PostgreSQL.

  3. Port: wprowadź numer portu serwera. Wartość domyślna to 5432. Jeśli wybrane połączenie w chmurze jest skonfigurowane w Zarządzanie połączeniami i bramami, upewnij się, że numer portu jest zgodny z tym ustawionym. Jeśli nie są one zgodne, numer portu w połączeniu z chmurą w Zarządzanie połączeniami i bramami ma pierwszeństwo.

  4. Podczas przechwytywania zmian z tabel bazy danych można wybrać dwie opcje:

    • Wszystkie tabele: przechwyć zmiany z każdej tabeli w bazie danych.
    • Wprowadź nazwy tabel: umożliwia określenie podzbioru tabel przy użyciu listy rozdzielanej przecinkami. Możesz użyć jednego z następujących typów: pełnych identyfikatorów tabeli w formacie schemaName.tableName lub prawidłowych wyrażeniach regularnych. Przykłady:
    • dbo.test.*: Wybierz wszystkie tabele, których nazwy zaczynają się od test w schemacie dbo .
    • dbo\.(test1|test2): Wybierz dbo.test1 i dbo.test2.

    Oba formaty można połączyć na liście. Całkowity limit znaków dla całego wpisu wynosi 102 400 znaków.

  5. Nazwa miejsca (opcjonalnie): wprowadź nazwę gniazda dekodowania logicznego PostgreSQL, które zostało utworzone na potrzeby przesyłania strumieniowego zmian z konkretnej wtyczki dla określonej bazy danych/schematu. Serwer używa tego miejsca do przesyłania zdarzeń do łącznika strumieniowego Eventstream. Musi zawierać tylko małe litery, cyfry i podkreślenia.

    • Jeśli nie zostanie określony żaden identyfikator GUID, używany jest do stworzenia slotu, co wymaga posiadania odpowiednich uprawnień bazy danych.
    • Jeśli istnieje określona nazwa miejsca, łącznik używa jej wprost.
  6. Możesz rozwinąć Ustawienia zaawansowane, aby uzyskać dostęp do większej liczby opcji konfiguracji źródła bazy danych PostgreSQL CDC.

    • Nazwa publikacji: określa nazwę publikacji replikacji logicznej PostgreSQL, którą należy użyć. Musi ona być zgodna z istniejącą publikacją w bazie danych lub zostanie utworzona automatycznie w zależności od trybu automatycznego tworzenia. Wartość domyślna: dbz_publication.

      Uwaga

      Aby utworzyć publikację, użytkownik łącznika musi mieć uprawnienia administratora. Zaleca się ręczne utworzenie publikacji przed uruchomieniem łącznika po raz pierwszy, aby uniknąć problemów związanych z uprawnieniami.

    • Tryb automatycznego tworzenia publikacji: określa, czy i jak publikacja jest tworzona automatycznie. Dostępne opcje:

      • Filtered (ustawienie domyślne): Jeśli określona publikacja nie istnieje, łącznik tworzy ten, który zawiera tylko wybrane tabele (jak określono na liście dołączanej do tabeli).
      • AllTables: Jeśli określona publikacja istnieje, łącznik jej używa. Jeśli nie istnieje, łącznik tworzy jeden, który zawiera wszystkie tabele w bazie danych.
      • Disabled: Łącznik nie tworzy publikacji. Jeśli brakuje określonej publikacji, łącznik zgłasza wyjątek i zatrzymuje się. W takim przypadku publikacja musi zostać utworzona ręcznie w bazie danych.

      Aby uzyskać więcej informacji, zobacz dokumentację debezium dotyczącą trybu automatycznego tworzenia publikacji

    • Tryb obsługi dziesiętnej: określa, jak łącznik obsługuje wartości kolumn PostgreSQL DECIMAL i NUMERIC:

      • 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. Poprawia to użyteczność i wydajność, ale może spowodować utratę precyzji.
      • String: koduje wartości jako sformatowane ciągi. Ułatwia to korzystanie z nich w systemach podrzędnych, ale traci semantyczne informacje o oryginalnym typie liczbowym.
    • Tryb migawki: Wskaż kryteria dotyczące sposobu wykonywania migawki po uruchomieniu łącznika:

      • Initial: Łącznik uruchamia migawkę tylko wtedy, gdy nie zarejestrowano żadnych offsetów dla nazwy serwera logicznego lub jeśli wykryje, że wcześniejsza migawka nie została ukończona. Po zakończeniu tworzenia migawki łącznik zaczyna przesyłać strumieniowo rekordy zdarzeń dla kolejnych zmian bazy danych.
      • InitialOnly: Łącznik uruchamia migawkę tylko wtedy, gdy nie zarejestrowano żadnych przesunięć dla nazwy serwera logicznego. Po zakończeniu tworzenia migawki łącznik przestaje działać. Nie przełącza się na przesyłanie strumieniowe w celu odczytu zdarzeń zmiany z dziennika binarnego.
      • NoData: Łącznik uruchamia migawkę, która przechwytuje tylko schemat, ale nie żadne dane tabeli. Ustaw tę opcję, jeśli nie potrzebujesz spójnej migawki danych, ale potrzebne są tylko zmiany wykonywane od momentu uruchomienia łącznika.
    • Zapytanie działania pulsu: specyfikuje zapytanie, które łącznik wykonuje w źródłowej bazie danych, kiedy łącznik wysyła komunikat pulsu.

    • Zastępowanie zapytania select migawki: określa wiersze tabeli do uwzględnienia w migawce. Użyj właściwości , jeśli chcesz, aby migawka zawierała tylko podzbiór wierszy w tabeli. Ta właściwość ma wpływ tylko na migawki. Nie ma zastosowania do zdarzeń odczytanych przez łącznik z dziennika.

  7. Na stronie Przeglądanie i łączenie przejrzyj podsumowanie, a następnie wybierz pozycję Dodaj.

    Zrzut ekranu przedstawiający wypełnioną stronę Przegląd i tworzenie dla łącznika bazy danych Azure PostgreSQL.

Wyświetlanie zaktualizowanego strumienia zdarzeń

  1. Możesz zobaczyć dodane źródło CDC bazy danych PostgreSQL do swojego strumienia zdarzeń w trybie Edytuj.

    Zrzut ekranu źródła streamowania CDC dla bazy danych PostgreSQL w widoku edycji.

  2. Aby zaimplementować to nowo dodane źródło CDC bazy danych PostgreSQL, wybierz pozycję Publikuj. Po wykonaniu tych kroków źródło CDC bazy danych PostgreSQL jest dostępne do wizualizacji w widoku na żywo.

    Zrzut ekranu transmisji strumieniowej źródła CDC bazy danych PostgreSQL w trybie na żywo.

Inne łączniki: