Przechwytywanie zmian danych aktualizuje lokalny indeks wiedzy, przekształcając zatwierdzone zmiany w źródle w zdarzenia, które pracownicy indeksujący niższego poziomu mogą przetwarzać przyrostowo.
Ma to znaczenie, gdy domowa baza wiedzy korzysta ze strukturalnej bazy danych aplikacji, a nie tylko z obserwatora folderu. Notatki, rekordy inwentarza, metadane multimediów, zakładki, historia automatyki domowej czy wiersze katalogu dokumentów mogą zmieniać się nieustannie. Ponowne odczytywanie całej bazy danych w celu wykrycia jednej edytowanej pozycji marnuje operacje wejścia/wyjścia i powoduje duże opóźnienia w aktualności. CDC korzysta zamiast tego z własnego strumienia zmian bazy danych i przekazuje indeksatorowi sekwencję konkretnych mutacji.
CDC odczytuje strumień zmian źródła zamiast ponownie skanować każdy wiersz
Wiele baz danych już rejestruje zatwierdzone mutacje w dziennikach transakcji, strumieniach replikacji lub równoważnych uporządkowanych rekordach zmian. Systemy CDC subskrybują ten strumień i tłumaczą informacje z niskopoziomowego dziennika na możliwe do wykorzystania zdarzenia wstawiania, aktualizacji i usuwania.
CDC oparte na dzienniku przechwytuje zmiany wierszy bazy danych bezpośrednio ze strumienia zmian źródła, unikając wielokrotnego odpytywania całych tabel tylko po to, by wykryć niewielką liczbę mutacji.
Różni się to od obserwatora systemu plików. Obserwator rejestruje zdarzenia systemu operacyjnego na poziomie ścieżek, podczas gdy CDC obserwuje logiczne mutacje źródła wewnątrz bazy danych i może zachować kolejność transakcji oraz tożsamość rekordów.
Indeks wiedzy otrzymuje znacznie mniejszą kolejkę zadań: obsługa komunikatu „zmienił się rekord 184” jest tańsza niż „zeskanuj 900 000 wierszy i ponownie porównaj je wszystkie”.
Każde zdarzenie zawiera tożsamość potrzebną do znalezienia pochodnych rekordów indeksu
Zdarzenie aktualizacji jest użyteczne tylko wtedy, gdy indeksator może połączyć zmieniony wiersz źródłowy z fragmentami, polami tekstowymi, rekordami metadanych lub wektorami wcześniej utworzonymi na jego podstawie.
Tożsamość repliki określa, jakie informacje identyfikujące wiersz są dostępne dla replikowanych aktualizacji i usunięć, zapewniając odbiorcom niższego poziomu stabilny sposób wskazywania pochodnych rekordów indeksu.
Lokalny potok indeksowania powinien zachowywać podobny stabilny klucz źródłowy w każdym rekordzie pochodnym. Dzięki temu `UPDATE` może pobrać i ponownie zbudować tylko rodzinę dokumentów, której dotyczy zmiana, a `DELETE` może znaleźć każdy wektor, który należy wycofać. Bez stabilnej tożsamości strumień zdarzeń może poinformować system o zmianie, ale nadal zmuszać go do kosztownego wyszukiwania artefaktów indeksu należących do tego źródła.
Indeksator przekształca mutacje bazy danych w działania warstwy wyszukiwania
Zdarzenie CDC nie zawiera osadzenia ani nie zna zasad dzielenia na fragmenty. Jest powiadomieniem z nadrzędnej warstwy źródłowej, a nie gotową operacją na wektorze.
Ustrukturyzowane rekordy zdarzeń zmian oddzielają mutację źródła od logiki indeksowania niższego poziomu, pozwalając odbiorcy zdecydować, czy wstawienie, aktualizacja lub usunięcie wymaga parsowania, tworzenia osadzenia albo wycofania.
Pracownik indeksujący może mapować wstawienie na analizę i dodanie, aktualizację na porównanie i ponowną budowę, a usunięcie na oznaczenie jako usunięte lub usunięcie wszystkich rekordów wyszukiwania utworzonych na podstawie klucza źródłowego.
W tej ścieżce aktualizacji można uwzględnić haszowanie treści. CDC informuje, który rekord źródłowy się zmienił, a test skrótu może następnie określić, czy tekst przekazywany do modelu osadzania faktycznie uległ zmianie.
Przesunięcia i punkty kontrolne pozwalają odbiorcy wznowić pracę po ponownym uruchomieniu
Domowy serwer uruchomi się ponownie, kontenery zostaną zaktualizowane, a pracownicy indeksujący od czasu do czasu ulegną awarii. Jeśli odbiorca utraci swoją pozycję, może pominąć zmiany albo ponownie wykonać dużą ilość pracy.
Trwałe przesunięcia źródłowe pozwalają procesowi przechwytującemu wznowić działanie ze znanej lokalizacji po ponownym uruchomieniu, zamiast po cichu pomijać zmiany lub zaczynać od początku.
Odbiorca indeksu wiedzy powinien zatwierdzać własny punkt kontrolny dopiero wtedy, gdy powiązana mutacja indeksu osiągnie trwały stan. W przeciwnym razie zdarzenie może zostać potwierdzone, zanim jego wektory lub metadane zostaną faktycznie zapisane. Ponowne przetworzenie zdarzenia również powinno być bezpieczne. Operacje upsert oparte na stabilnych identyfikatorach, sprawdzanie wersji i idempotentna obsługa usunięć zapobiegają tworzeniu zduplikowanych fragmentów w wyniku wielokrotnego dostarczenia.
CDC skraca opóźnienie aktualizacji, ale nie zastępuje uzgadniania
Przesyłanie strumieniowe oparte na dzienniku dobrze sprawdza się przy uporządkowanych zmianach w bazie danych, jednak błędy konfiguracji, limity przechowywania, awarie konektora, zmiany schematu lub błędy odbiorcy nadal mogą powodować luki między źródłem a indeksem.
Ryzyko pominiętych zdarzeń zmian pokazuje, dlaczego szybki strumień przyrostowy powinien być dodatkowo wspierany przez wolniejsze uzgadnianie z autorytatywnym stanem źródła.
Okresowe uzgadnianie może porównywać liczbę wierszy źródłowych, wersje, skróty treści, znaczniki usunięcia i identyfikatory indeksowane, aby naprawić wszystko, co pominął aktywny strumień.
Daje to systemowi dwie skale czasowe: CDC utrzymuje świeżość zwykłych zmian w ciągu sekund lub minut, a uzgadnianie zapewnia wolniejsze potwierdzenie kompletności.
Duża częstotliwość aktualizacji powoduje presję zwrotną między źródłem a indeksem
Baza danych może zatwierdzać zmiany szybciej, niż OCR, dzielenie na fragmenty, tworzenie osadzeń lub utrzymanie indeksu wektorowego jest w stanie je przetwarzać. Kolejka CDC staje się wtedy buforem między aktywnością źródła a aktualnością wyszukiwania.
Trwały dziennik binarny zdarzeń zmieniających dane zapewnia uporządkowaną historię, którą wolniejszy indeksator niższego poziomu może przetworzyć po chwilowej niedostępności, z uwzględnieniem okresu przechowywania określonego przez system źródłowy.
Łącz pobliskie aktualizacje tego samego identyfikatora źródłowego, nadaj priorytet usunięciom i zmianom uprawnień oraz monitoruj opóźnienie, a nie tylko długość kolejki. Tysiąc zdarzeń może oznaczać tysiąc niezależnych dokumentów albo wielokrotne edycje jednego rekordu. Indeks jest aktualny dopiero wtedy, gdy odbiorca zastosuje zdarzenia do znanej pozycji źródła, a wszelkie wymagane dla tych rekordów prace związane z tworzeniem osadzeń lub kompakcją niższego poziomu zostaną zakończone.
FAQ
Czy przechwytywanie zmian danych dotyczy tylko baz SQL?
Nie. CDC to ogólny wzorzec odbierania mutacji źródła. Dzienniki transakcji SQL są powszechne, ale inne systemy udostępniają strumienie zmian, dzienniki zatwierdzeń, kanały zdarzeń lub rekordy tylko do dopisywania o podobnej semantyce.
Czy zmiany są tracone za każdym razem, gdy odbiorca indeksowania jest offline?
Niekoniecznie. Jeśli źródło zachowuje dziennik zmian, a konektor przechowuje swoje przesunięcie, odbiorca może wznowić pracę i odtworzyć zaległości. Limity przechowywania nadal mają znaczenie podczas długich przestojów.
Czy CDC może zastąpić okresowe pełne uzgadnianie?
Zwykle nie. Uzgadnianie pozostaje przydatne do wykrywania pominiętych zdarzeń, błędów mapowania, nieaktualnych rekordów pochodnych oraz zmian w źródle, które nastąpiły poza ścieżką przechwytywania.
Centrum Technologii i Sztucznej Inteligencji
Więcej do przeczytania

Czy kamery domowe mogą synchronizować zdarzenia bez korzystania z chmurowych usług czasu?
Wyjaśnienie działania czasu kamery bez chmury, jego kompromisów związanych ze współdzielonymi zasobami, trzy często zadawane pytania dotyczące rozsyłania zapytań oraz praktyczny protokół weryfikacji.

Czy lokalna usługa AI może wykryć uszkodzone warstwy modelu przed wnioskowaniem?
Wyjaśnienie wykrywania uszkodzeń warstwy modelu oparte na mechanizmach, kompromisy związane ze współdzielonymi zasobami, trzy najczęściej zadawane pytania dotyczące rozgałęziania zapytań oraz praktyczny protokół weryfikacji.

Czy system RAG można przywrócić bez ponownego generowania wszystkich wektorów embeddingowych?
Wyjaśnienie działania mechanizmu przywracania RAG bez ponownego tworzenia osadzeń, kompromisy związane ze współdzielonymi zasobami, trzy często zadawane pytania dotyczące rozsyłania zapytań oraz praktyczny protokół...

