Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ważne
Łącznik PostgreSQL dla programu Lakeflow Connect jest dostępny w publicznej wersji zapoznawczej. Skontaktuj się z zespołem obsługi konta Databricks, aby zarejestrować się w publicznej wersji testowej.
Na tej stronie opisano zadania konfiguracji źródła na potrzeby pozyskiwania danych z bazy danych PostgreSQL do usługi Azure Databricks przy użyciu programu Lakeflow Connect.
Replikacja logiczna na potrzeby przechwytywania danych zmian
Łącznik PostgreSQL używa replikacji logicznej do śledzenia zmian w tabelach źródłowych. Replikacja logiczna umożliwia łącznikowi przechwytywanie modyfikacji danych (wstawiania, aktualizacji i usuwania) bez konieczności uruchamiania wyzwalaczy ani znacznych obciążeń w źródłowej bazie danych.
Replikacja logiczna usługi Lakeflow PostgreSQL wymaga następujących elementów:
Program Lakeflow Connect obsługuje replikację danych z bazy danych PostgreSQL w wersji 13 lub nowszej.
Skonfiguruj bazę danych na potrzeby replikacji logicznej:
Parametr
wal_levelPostgreSQL musi być ustawiony nalogical.Utwórz publikacje zawierające wszystkie tabele, które chcesz replikować.
Utwórz miejsca replikacji dla każdego katalogu, który zostanie zreplikowany.
Uwaga / Notatka
Przed utworzeniem slotów replikacji należy utworzyć publikacje.
Aby uzyskać więcej informacji na temat replikacji logicznej, zobacz dokumentację replikacji logicznej w witrynie internetowej postgreSQL.
Omówienie zadań konfiguracji źródłowej
Przed pozyskiwaniem danych do usługi Azure Databricks wykonaj następujące zadania w usłudze PostgreSQL:
Weryfikowanie bazy danych PostgreSQL 13 lub nowszej
Konfigurowanie dostępu do sieci (grup zabezpieczeń, reguł zapory lub sieci VPN)
Konfigurowanie replikacji logicznej:
- Włączanie replikacji logicznej (
wal_level = logical)
- Utwórz użytkownika replikacji z wymaganymi uprawnieniami. Zobacz Wymagania użytkownika bazy danych PostgreSQL
- Ustaw identyfikator repliki dla tabel. Zobacz Ustawianie tożsamości repliki dla tabel
- Tworzenie publikacji i miejsc replikacji
- Włączanie replikacji logicznej (
Opcjonalnie: Skonfiguruj wbudowane śledzenie DDL na potrzeby automatycznego wykrywania zmian schematu. Jeśli chcesz wybrać wbudowane śledzenie DDL, skontaktuj się z pomocą techniczną usługi Databricks.
Ważne
Jeśli planujesz replikować z wielu baz danych PostgreSQL, musisz utworzyć oddzielne miejsce publikacji i replikacji dla każdej bazy danych. Wbudowany skrypt śledzenia DDL (jeśli jest używany) musi być również wykonywany w każdej bazie danych.
Konfigurowanie replikacji logicznej
Aby włączyć replikację logiczną w usłudze PostgreSQL, skonfiguruj ustawienia bazy danych i skonfiguruj niezbędne obiekty.
Ustaw poziom WAL na wartość logiczną
Na potrzeby replikacji logicznej należy skonfigurować dziennik Write-Ahead (WAL). To ustawienie zwykle wymaga ponownego uruchomienia bazy danych.
Sprawdź bieżące
wal_levelustawienie:SHOW wal_level;Jeśli
logicalnie jest ustawione, skonfigurujwal_level = logicalw ustawieniach serwera i uruchom ponownie usługę PostgreSQL.
Tworzenie użytkownika replikacji
Utwórz użytkownika dedykowanego dla importu danych Databricks z uprawnieniami do replikacji.
CREATE USER databricks_replication WITH PASSWORD 'your_secure_password';
GRANT CONNECT ON DATABASE your_database TO databricks_replication;
ALTER USER databricks_replication WITH REPLICATION;
Aby uzyskać szczegółowe wymagania dotyczące uprawnień, zobacz Wymagania użytkownika bazy danych PostgreSQL.
Ustaw tożsamość repliki dla tabel
Dla każdej tabeli, którą chcesz replikować, skonfiguruj tożsamość repliki. Prawidłowe ustawienie zależy od struktury tabeli:
| Struktura tabeli | WymaganA TOŻSAMOŚĆ REPLIKI | Command |
|---|---|---|
Tabela ma klucz podstawowy i nie zawiera kolumn TOASTable (na przykład TEXT, , BYTEAVARCHAR(n) z dużymi wartościami) |
DEFAULT |
ALTER TABLE schema_name.table_name REPLICA IDENTITY DEFAULT; |
| Tabela ma klucz podstawowy, ale zawiera duże kolumny o zmiennej długości (TOASTable) | FULL |
ALTER TABLE schema_name.table_name REPLICA IDENTITY FULL; |
| Tabela nie ma klucza podstawowego | FULL |
ALTER TABLE schema_name.table_name REPLICA IDENTITY FULL; |
Aby uzyskać więcej informacji na temat ustawień tożsamości repliki, zobacz Tożsamość repliki w dokumentacji bazy danych PostgreSQL.
Tworzenie publikacji
Utwórz publikację w każdej bazie danych zawierającej tabele, które chcesz replikować:
-- Create a publication for specific tables
CREATE PUBLICATION databricks_publication FOR TABLE schema_name.table1, schema_name.table2;
-- Or create a publication for all tables in a database
CREATE PUBLICATION databricks_publication FOR ALL TABLES;
Uwaga / Notatka
Należy utworzyć oddzielną publikację w każdej bazie danych PostgreSQL, którą chcesz replikować.
Konfigurowanie parametrów miejsca replikacji
Przed utworzeniem miejsc replikacji skonfiguruj następujące parametry serwera:
Ograniczanie przechowywania pliku WAL dla miejsc replikacji
Parametr: max_slot_wal_keep_size
Zaleca się, aby nie ustawiać
Dowiedz się więcej o parametrze max_slot_wal_keep_size w oficjalnej dokumentacji bazy danych PostgreSQL.
Uwaga / Notatka
Niektórzy dostawcy usług w chmurze zarządzanej nie zezwalają na modyfikację tego parametru i zamiast tego polegają na wbudowanym monitorowaniu slotów i automatycznym czyszczeniu. Przed ustawieniem alertów operacyjnych przejrzyj zachowanie platformy.
Aby uzyskać więcej informacji, zobacz:
Konfigurowanie pojemności miejsca replikacji
Parametr: max_replication_slots
Każda replikowana baza danych PostgreSQL wymaga jednego miejsca replikacji logicznej. Ustaw ten parametr na co najmniej liczbę replikowanych baz danych oraz wszelkie istniejące potrzeby replikacji.
Konfigurowanie nadawców WAL
Parametr: max_wal_senders
Ten parametr definiuje maksymalną liczbę współbieżnych procesów nadawcy WAL, które przesyłają strumieniowo dane WAL do subskrybentów. W większości przypadków należy mieć jeden proces nadawcy WAL dla każdego gniazda replikacji, aby zapewnić wydajną i spójną replikację danych.
Skonfiguruj max_wal_senders wartość co najmniej równą liczbie używanych miejsc replikacji, co odpowiada wszelkim innym istniejącym użyciu. Zaleca się ustawienie go nieco wyższe w celu zapewnienia elastyczności operacyjnej.
Tworzenie slotu replikacji
Utwórz slot replikacji w każdej bazie danych, którą brama pozyskiwania Databricks używa do śledzenia zmian:
-- Create a replication slot with the pgoutput plugin
SELECT pg_create_logical_replication_slot('databricks_slot', 'pgoutput');
Ważne
- Miejsca replikacji przechowują dane WAL do momentu zużycia przez łącznik. Skonfiguruj parametr
max_slot_wal_keep_sizew celu ograniczenia przechowywania WAL i uniemożliwienia nieograniczonego wzrostu WAL. Aby uzyskać szczegółowe informacje, zobacz Konfigurowanie parametrów miejsca replikacji . - Po usunięciu potoku pozyskiwania należy ręcznie usunąć skojarzone gniazdo replikacji. Zobacz Czyszczenie miejsc replikacji.
Opcjonalnie: Skonfiguruj śledzenie DDL inline
Wbudowane śledzenie DDL to opcjonalna funkcja umożliwiająca łącznikowi automatyczne wykrywanie i stosowanie zmian schematu ze źródłowej bazy danych. Ta funkcja jest domyślnie wyłączona.
Ostrzeżenie
Wbudowane śledzenie DDL jest obecnie w wersji zapoznawczej i wymaga skontaktowania się z pomocą techniczną usługi Databricks w celu włączenia go dla obszaru roboczego.
Aby uzyskać informacje o tym, które zmiany schematu są obsługiwane automatycznie i które wymagają pełnego odświeżania, zobacz Jak zarządzane łączniki obsługują ewolucję schematu? i Ewolucja schematu.
Konfigurowanie wbudowanego śledzenia DDL
Jeśli wbudowane śledzenie DDL zostało włączone dla obszaru roboczego, wykonaj następujące kroki w każdej bazie danych PostgreSQL:
Pobierz i uruchom skrypt lakeflow_pg_ddl_change_tracking.sql :
\i lakeflow_pg_ddl_change_tracking.sqlSprawdź, czy wyzwalacze i tabela audytu zostały utworzone pomyślnie.
-- Check for the DDL audit table SELECT * FROM pg_tables WHERE tablename = 'lakeflow_ddl_audit'; -- Check for the event triggers SELECT * FROM pg_event_trigger WHERE evtname LIKE 'lakeflow%';Dodaj tabelę inspekcji DDL do publikacji:
ALTER PUBLICATION databricks_publication ADD TABLE public.lakeflow_ddl_audit;
Uwagi dotyczące konfiguracji specyficznej dla chmury
AWS RDS i Aurora
Upewnij się, że parametr
rds.logical_replicationjest ustawiony na1w grupie parametrów.Skonfiguruj grupy zabezpieczeń, aby zezwalać na połączenia z obszaru roboczego usługi Databricks.
Użytkownik replikacji wymaga
rds_replicationroli:GRANT rds_replication TO databricks_replication;
Azure Database for PostgreSQL
- Włącz replikację logiczną w parametrach serwera za pośrednictwem witryny Azure Portal lub interfejsu wiersza polecenia.
- Skonfiguruj reguły firewalla, aby zezwalać na połączenia ze środowiska roboczego usługi Databricks.
- W przypadku serwera elastycznego obsługiwana jest replikacja logiczna. W przypadku pojedynczego serwera upewnij się, że używasz obsługiwanej warstwy.
GCP Cloud SQL for PostgreSQL
- Włącz flagę
cloudsql.logical_decodingw ustawieniach wystąpienia. - Skonfiguruj autoryzowane sieci, aby zezwalać na połączenia z obszaru roboczego usługi Databricks.
- Upewnij się, że flaga
cloudsql.enable_pglogicaljest ustawiona naon, jeśli używasz rozszerzeń pglogical.
Sprawdzanie konfiguracji
Po wykonaniu zadań konfiguracji sprawdź, czy replikacja logiczna jest prawidłowo skonfigurowana:
Sprawdź, czy parametr
wal_levelma wartośćlogical:SHOW wal_level;Sprawdź, czy użytkownik replikacji ma
replicationuprawnienia:SELECT rolname, rolreplication FROM pg_roles WHERE rolname = 'databricks_replication';Upewnij się, że publikacja istnieje:
SELECT * FROM pg_publication WHERE pubname = 'databricks_publication';Sprawdź, czy miejsce replikacji istnieje:
SELECT slot_name, slot_type, active, restart_lsn FROM pg_replication_slots WHERE slot_name = 'databricks_slot';Sprawdź identyfikator repliki dla swoich tabel
SELECT schemaname, tablename, relreplident FROM pg_tables t JOIN pg_class c ON t.tablename = c.relname WHERE schemaname = 'your_schema';Kolumna powinna pokazywać
relreplidentfjako pełną tożsamość repliki.
Dalsze kroki
Po zakończeniu konfiguracji źródła danych możesz utworzyć bramę zbierania danych i potok do przesyłania danych z bazy danych PostgreSQL. Zobacz Pozyskiwanie danych z bazy danych PostgreSQL.