---
title: Synchronizacja
description: Poznaj harmonogramy, odczyty przyrostowe i pełne, ewolucję schematu, usunięcia i semantykę scalania.
species: concept
---
# Synchronizacja

Synchronizacja odczytuje rekordy źródłowe i zapisuje spójny nowy stan jeziora. Podczas uruchomienia możesz odpytywać poprzednią migawkę; odczytujący przechodzą do nowej dopiero po pomyślnym zapisaniu jej commitu.

## Cykl życia

1. Supernova wykrywa tabele i kolumny widoczne dla danych uwierzytelniających źródła.
2. Uruchomienie odczytuje nowe lub zmienione rekordy, wznawiając pracę od zapisanej pozycji, jeśli źródło ją obsługuje.
3. Wiersze są scalane według klucza źródłowego. Późniejsza wartość tego samego klucza zastępuje wcześniejszą wartość bieżącą.
4. Wykrywanie usunięć oznacza wiersze przez `_deleted = true` w tym samym commicie co scalenie.
5. Zapisana migawka staje się widoczna dla nowych zapytań.

Nowe źródło synchronizuje się po połączeniu. Domyślny interwał cykliczny wynosi 4 godziny. Karta **Historia synchronizacji** źródła pokazuje każde uruchomienie i jego wynik.

## Odczyty przyrostowe i pełne

Źródło przyrostowe udostępnia kursor, na przykład czas aktualizacji, identyfikator zdarzenia lub token strony. Supernova zapisuje tę pozycję dopiero wtedy, gdy odpowiadające jej dane są trwałe. Jeśli uruchomienie się zatrzyma, jego następca wznawia pracę od ostatniej trwałej pozycji.

Pełny odczyt ponownie wyświetla dane źródła i uzgadnia je z jeziorem. Wymaga więcej żądań do źródła, ale dla niektórych API jest jedynym wiarygodnym sposobem wykrywania usunięć. Salesforce wykonuje pełne odczyty do chwili aktywowania mechanizmu uzgadniania danego jeziora; następnie preferuje `SystemModstamp`, w drugiej kolejności `LastModifiedDate`, a na końcu `CreatedDate` dla obiektów, które nie udostępniają żadnego preferowanego pola.

## Schematy stałe i wykrywane

Źródła o stałym schemacie, takie jak Stripe, definiują swoje tabele w Supernova. Zmiana kodu dodaje nową kolumnę źródłową do tego kontraktu.

Źródła o wykrywanym schemacie, takie jak PostgreSQL, Airtable i Salesforce, proszą źródło o metadane. Ich karta **Tabele** jest dokładną dokumentacją połączonego konta. Nowo wykryta kolumna pojawia się w strumieniu zmian schematu, zanim zaskoczy zależny model.

## Usunięcia

Zamiast kasować historię, Supernova zachowuje usunięte wiersze źródłowe i ustawia `_deleted`. Zapytania bieżącego stanu powinny wskazywać to jawnie:

```sql
select id, email, _synced_at
from titan.hubspot.contacts
where not _deleted
```

Sposób wykrywania usunięć zależy od źródła. Niektóre API wysyłają zdarzenia usunięcia. Inne wymagają pełnego przeglądu kluczy. Strona konektora opisuje tę właściwość, gdy występuje.

## Spójność

Commit jednej tabeli jest atomowy: zapytanie widzi migawkę sprzed uruchomienia albo migawkę po nim, ale nigdy po połowie każdej z nich. Powiązane tabele mogą kończyć się w różnym czasie, dlatego gdy raport wymaga wspólnej granicy aktualności, korzystaj z ich wartości `_synced_at`.
