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.
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.
Uruchamia snapshot wybranych tabel w trybie Incremental albo Blocking.
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.
IBM Db2
Konektor Debezium Db2
Informix
Konektor Debezium Informix
MongoDB
Konektor Debezium MongoDB
MySQL
Konektor Debezium MySQL
Oracle
Konektor Debezium Oracle
PostgreSQL
Konektor Debezium PostgreSQL

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.
CREATE TABLE debezium_signals (
id VARCHAR(42) PRIMARY KEY,
type VARCHAR(32) NOT NULL,
data VARCHAR(2048) NULL
);
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.
test_connector
{
"type": "execute-snapshot",
"data": {
"type": "incremental",
"data-collections": ["schema1.table1"]
}
}
Klucz wiadomości Kafka musi być równy wartości topic.prefix konektora.
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 |
|---|---|
| SOURCE | Wybierz source w Enabled channels names (signal.enabled.channels), a w Signaling data collection (signal.data.collection) wpisz pełną nazwę tabeli sygnałowej. |
| KAFKA | Wybierz kafka, sprawdź signal.kafka.bootstrap.servers i wpisz topic w Signal kafka topic (signal.kafka.topic). |
Kanały FILE i JMX mogą być widoczne w interfejsie, ale nie są obsługiwane w aktualnej wersji.
Konfiguracja sygnału
Wskaż SOURCE albo KAFKA i pozwól GIFRÖST zweryfikować konfigurację konektora.
Wybierz EXECUTE_SNAPSHOT albo STOP_SNAPSHOT oraz dostępny tryb snapshotu.
Przeglądaj replikowane tabele, sprawdź wybór albo wpisz pełne nazwy ręcznie.
Zweryfikuj wygenerowany SQL lub wiadomość Kafka, a następnie wyślij sygnał.
Signal Type i Signal Mode
| Tryb | Działanie | Kiedy użyć |
|---|---|---|
Incremental | Odczytuje 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. |
Blocking | Wstrzymuje 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.
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ń.
Automatyczna naprawa dostosowuje konektor do wymagań Signals, ale nie gwarantuje zachowania wszystkich wymagań użytkownika. Zawsze sprawdź końcową konfigurację konektora.
Wybór tabel
| Konektor | Wymagany format kolekcji danych |
|---|---|
| PostgreSQL, Db2 | schemaName.tableName |
| MySQL | databaseName.tableName |
| Oracle, SQL Server, Informix | databaseName.schemaName.tableName |
| MongoDB | databaseName.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
INSERTdlasignal.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
| Status | Znaczenie |
|---|---|
STARTED | Operacja snapshotu została uruchomiona. |
IN_PROGRESS | Trwa przetwarzanie tabeli. |
TABLE_SCAN_COMPLETED | Skanowanie jednej tabeli zakończyło się; wskazuje ją scanned_collection. |
COMPLETED | Cała operacja snapshotu została zakończona. |
ABORTED | Operacja 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.
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.