Przejdź do głównej zawartości
GIFRÖST / CDC / Signals

Steruj snapshotami bez restartu konektora.

Signals umożliwiają przekazanie uruchomionemu konektorowi żądania zasilenia inicjalnego. W GIFRÖST można uruchomić snapshot ad hoc dla wybranych tabel albo zatrzymać wykonywany snapshot inkrementalny.

OperacjeUruchomienie lub zatrzymanie snapshotu.
KanałySOURCE i KAFKA.
ZakresJedna lub wiele wybranych tabel.
ŚledzeniePostęp w zakładce Notifications.

Czym są Signals​

Sygnał zawiera identyfikator, nazwę operacji, na przykład execute-snapshot albo stop-snapshot, oraz dane potrzebne do jej wykonania. Konektor odczytuje żądanie z włączonego kanału sygnałowego i wykonuje operację bez ponownego uruchamiania.

EXECUTE_SNAPSHOTUruchom snapshot ad hoc

Uruchamia snapshot wybranych tabel w trybie Incremental albo Blocking.

STOP_SNAPSHOTZatrzymaj snapshot inkrementalny

Zatrzymuje wykonywany snapshot inkrementalny albo wyłącza wybrane tabele. Nie zatrzymuje snapshotu blokującego.

Systemy źródłowe

Obsługiwane konektory źródłowe

Funkcja Signals jest dostępna dla wymienionych poniżej konektorów źródłowych Debezium.

Logo IBM Db2

IBM Db2

Konektor Debezium Db2

Logo Informix

Informix

Konektor Debezium Informix

Logo MongoDB

MongoDB

Konektor Debezium MongoDB

Logo MySQL

MySQL

Konektor Debezium MySQL

Logo Oracle

Oracle

Konektor Debezium Oracle

Logo PostgreSQL

PostgreSQL

Konektor Debezium PostgreSQL

Logo SQL Server

SQL Server

Konektor Debezium SQL Server

Kanały sygnałowe​

W polu Signal Channel wybierz kanał, którym sygnał zostanie przekazany do uruchomionego konektora.

SOURCE​

Sygnał jest zapisywany jako rekord w tabeli sygnałowej w źródłowej bazie danych. Konektor odczytuje zmianę i wykonuje wskazaną operację. Tabela musi zawierać kolumny id, type i data.

Przykładowa tabela sygnałowa
CREATE TABLE debezium_signals (
id VARCHAR(42) PRIMARY KEY,
type VARCHAR(32) NOT NULL,
data VARCHAR(2048) NULL
);
Znaczenie kolumn
id — unikalny identyfikator sygnału, na przykład UUID. Pozwala także odnaleźć sygnał w logach konektora.
type — nazwa operacji, na przykład execute-snapshot albo stop-snapshot.
data — dane operacji w formacie JSON, w tym rodzaj snapshotu i kolekcje danych.

KAFKA​

Sygnał jest wysyłany do topicu Kafka skonfigurowanego dla konektora. Włącz kafka w signal.enabled.channels i ustaw nazwę topicu w signal.kafka.topic.

Klucz wiadomości
test_connector
Wartość wiadomości
{
"type": "execute-snapshot",
"data": {
"type": "incremental",
"data-collections": ["schema1.table1"]
}
}
Ważne

Klucz wiadomości Kafka musi być równy wartości topic.prefix konektora.

Snapshot inkrementalny przez KAFKA

W standardowej konfiguracji konektor nadal używa signal.data.collection do zapisywania znaczników watermark, dlatego włącz jednocześnie kafka i source. Wyjątkiem jest konektor MySQL lub PostgreSQL skonfigurowany do snapshotów inkrementalnych tylko do odczytu przez read.only=true.

Konfiguracja kanałów​

Ustawienia kanałów znajdują się w Connectors → Source → Signal.

KanałWymagane ustawienia
SOURCEWybierz source w Enabled channels names (signal.enabled.channels), a w Signaling data collection (signal.data.collection) wpisz pełną nazwę tabeli sygnałowej.
KAFKAWybierz kafka, sprawdź signal.kafka.bootstrap.servers i wpisz topic w Signal kafka topic (signal.kafka.topic).
Niedostępne kanały

Kanały FILE i JMX mogą być widoczne w interfejsie, ale nie są obsługiwane w aktualnej wersji.

Konfiguracja sygnału​

Krok 01Wybierz kanał

Wskaż SOURCE albo KAFKA i pozwól GIFRÖST zweryfikować konfigurację konektora.

Krok 02Określ operację

Wybierz EXECUTE_SNAPSHOT albo STOP_SNAPSHOT oraz dostępny tryb snapshotu.

Krok 03Wybierz tabele

Przeglądaj replikowane tabele, sprawdź wybór albo wpisz pełne nazwy ręcznie.

Krok 04Sprawdź i wyślij

Zweryfikuj wygenerowany SQL lub wiadomość Kafka, a następnie wyślij sygnał.

Signal Type i Signal Mode​

TrybDziałanieKiedy użyć
IncrementalOdczytuje dane w częściach nazywanych chunkami, a konektor nadal przechwytuje zmiany z logu. Domyślny rozmiar chunka wynosi 1024.Gdy podczas snapshotu ma być kontynuowany streaming bieżących zmian.
BlockingWstrzymuje streaming, wykonuje snapshot podobny do snapshotu początkowego, a następnie wznawia przesyłanie zmian.Gdy dopuszczalne jest czasowe wstrzymanie streamingu.

Rozmiar chunka ustawisz w Connectors → Source → Snapshot → Incremental snapshot chunk size.

Zgodność operacji

EXECUTE_SNAPSHOT obsługuje tryby Incremental i Blocking. STOP_SNAPSHOT obsługuje tylko Incremental. Zatrzymanie aktywnego snapshotu inkrementalnego nadaje operacji status ABORTED. Wysłanie STOP_SNAPSHOT po zakończeniu nie zmienia zakończonej operacji.

Credential​

Credential to zapisany profil połączenia, którego GIFRÖST używa do wstawienia sygnału do tabeli z signal.data.collection. Użytkownik bazy danych przypisany do profilu musi mieć uprawnienie do zapisu w tabeli. Pole jest wymagane tylko dla SOURCE. Następnie wybierz NEXT.

Walidacja i REPAIR​

Jeżeli konfiguracja konektora nie spełnia wymagań kanału, GIFRÖST wyświetla błąd. Przy obsługiwanych błędach wybierz Click here to resolve, aby zobaczyć poprawne ustawienia i wymagane zmiany. REPAIR może automatycznie poprawić część ustawień.

Sprawdź konfigurację po REPAIR

Automatyczna naprawa dostosowuje konektor do wymagań Signals, ale nie gwarantuje zachowania wszystkich wymagań użytkownika. Zawsze sprawdź końcową konfigurację konektora.

Wybór tabel​

Opcje wyboru tabel
Browse tables — tabele w aktualnym zakresie replikacji konektora.
Selected tables — tabele wybrane do wykonania operacji.
Enter manually — wpisanie pełnej nazwy, gdy tabela nie jest widoczna na liście.
KonektorWymagany format kolekcji danych
PostgreSQL, Db2schemaName.tableName
MySQLdatabaseName.tableName
Oracle, SQL Server, InformixdatabaseName.schemaName.tableName
MongoDBdatabaseName.collectionName

Po wybraniu tabel wybierz NEXT.

Podgląd i wysłanie​

Przed wysłaniem GIFRÖST pokazuje podgląd zależny od kanału:

  • Dla SOURCE sekcja SQL preview (signal INSERT) pokazuje polecenie INSERT dla signal.data.collection.
  • Dla KAFKA sekcja Kafka message preview pokazuje klucz i wartość dla signal.kafka.topic.
  • Copy kopiuje wygenerowane polecenie, aby można było wykonać je ręcznie.

Wybierz SEND SIGNAL, aby wysłać żądanie. Jeżeli ten sam sygnał został właśnie wysłany, przycisk ma nazwę SEND AGAIN. Signal confirmed zawiera dane zwrócone po odebraniu sygnału. Dla Kafka może też zawierać topic, partycję, offset i czas wysłania. VIEW SIGNAL HISTORY otwiera historię.

Monitorowanie snapshotu w Notifications​

StatusZnaczenie
STARTEDOperacja snapshotu została uruchomiona.
IN_PROGRESSTrwa przetwarzanie tabeli.
TABLE_SCAN_COMPLETEDSkanowanie jednej tabeli zakończyło się; wskazuje ją scanned_collection.
COMPLETEDCała operacja snapshotu została zakończona.
ABORTEDOperacja snapshotu została przerwana.

Tabele objęte jednym sygnałem mają wspólny identyfikator operacji. Każda tabela tworzy osobne TABLE_SCAN_COMPLETED, a na końcu powstaje jedno COMPLETED dla całego snapshotu.

Dane powiadomienia

W aktualnej wersji data_collections zmienia się podczas wykonywania. Pierwsze powiadomienie zawiera wszystkie wybrane tabele, a kolejne pomijają tabele już zakończone. Rekordy snapshotu inkrementalnego można również rozpoznać w topicu tabeli po op = r i source.snapshot = incremental.

Źródła techniczne​