Przechwytywanie zmian danych w magazynie analitycznym usługi Azure Cosmos DB
DOTYCZY: NoSQL MongoDB
Funkcja przechwytywania zmian danych (CDC) w magazynie analitycznym usługi Azure Cosmos DB umożliwia efektywne korzystanie z ciągłego i przyrostowego źródła danych zmienionych (wstawionych, zaktualizowanych i usuniętych) z magazynu analitycznego. Bezproblemowo zintegrowana z usługami Azure Synapse i Azure Data Factory zapewnia skalowalne środowisko bez kodu na potrzeby dużych ilości danych. Ponieważ funkcja przechwytywania zmian danych jest oparta na magazynie analitycznym, nie korzysta z aprowiowanych jednostek RU, nie ma wpływu na obciążenia transakcyjne, zapewnia mniejsze opóźnienie i ma niższy czas posiadania.
Funkcja przechwytywania zmian danych w magazynie analitycznym usługi Azure Cosmos DB może zapisywać dane w różnych ujściach przy użyciu przepływu danych usługi Azure Synapse lub Azure Data Factory.
Aby uzyskać więcej informacji na temat obsługiwanych typów ujścia w przepływie danych mapowania, zobacz Typy ujścia obsługiwane przez przepływ danych.
Oprócz udostępniania przyrostowego źródła danych z magazynu analitycznego do różnych celów funkcja przechwytywania zmian obsługuje następujące możliwości:
- Obsługuje przechwytywanie usuwania i aktualizacji pośrednich
- Możliwość filtrowania zestawienia zmian dla określonego typu operacji (Wstaw | aktualizację | usuń | czas wygaśnięcia)
- Obsługuje stosowanie filtrów, projekcji i przekształceń w źródle zmian za pośrednictwem zapytania źródłowego
- Wiele źródeł zmian w tym samym kontenerze może być używanych jednocześnie
- Każda zmiana w kontenerze jest wyświetlana dokładnie raz w kanale przechwytywania zmian, a punkty kontrolne są zarządzane wewnętrznie
- Zmiany można synchronizować "od początku" lub "z danego znacznika czasu" lub "od teraz"
- Nie ma ograniczeń dotyczących stałego okresu przechowywania danych, dla którego są dostępne zmiany
Wydajne przechwytywanie danych przyrostowych przy użyciu wewnętrznych punktów kontrolnych
Każda zmiana w kontenerze usługi Cosmos DB jest wyświetlana dokładnie raz w kanale informacyjnym CDC, a punkty kontrolne są zarządzane wewnętrznie. Pomaga to rozwiązać poniższe wady wspólnego wzorca używania niestandardowych punktów kontrolnych na podstawie wartości "_ts":
Filtr "_ts" jest stosowany względem plików danych, które nie zawsze gwarantują minimalne skanowanie danych. Wewnętrzne zarządzane punkty kontrolne GLSN w nowej funkcji CDC zapewniają, że odbywa się identyfikacja danych przyrostowych, tylko na podstawie metadanych i gwarantuje minimalne skanowanie danych w każdym strumieniu.
Proces synchronizacji magazynu analitycznego nie gwarantuje kolejności opartej na _ts, co oznacza, że mogą wystąpić przypadki, w których "_ts" rekordu przyrostowego jest mniejszy niż ostatni punkt kontrolny "_ts" i może zostać pominięty w strumieniu przyrostowym. Nowa usługa CDC nie uwzględnia "_ts", aby zidentyfikować rekordy przyrostowe i w związku z tym gwarantuje, że żaden z rekordów przyrostowych nie zostanie pominięty.
Funkcje
Funkcja przechwytywania zmian danych w magazynie analitycznym usługi Azure Cosmos DB obsługuje następujące kluczowe funkcje.
Przechwytywanie zmian od początku
Po wybraniu Start from beginning
opcji początkowe ładowanie obejmuje pełną migawkę danych kontenera w pierwszym uruchomieniu, a dane zmienione lub przyrostowe są przechwytywane w kolejnych uruchomieniach. Jest to ograniczone przez analytical TTL
właściwość i dokumenty TTL usunięte z magazynu analitycznego nie są uwzględniane w kanale zmian. Przykład: Wyobraź sobie kontener z analytical TTL
ustawionym na 31536000 sekund, co odpowiada 1 roku. Jeśli utworzysz proces CDC dla tego kontenera, tylko dokumenty nowsze niż 1 rok zostaną uwzględnione w początkowym obciążeniu.
Przechwytywanie zmian z danego znacznika czasu
Po wybraniu Start from timestamp
opcji początkowe ładowanie przetwarza dane z danego znacznika czasu, a przyrostowe lub zmienione dane są przechwytywane w kolejnych uruchomieniach. Ten proces jest również ograniczony przez analytical TTL
właściwość .
Przechwytywanie zmian od teraz
Po wybraniu Start from timestamp
opcji wszystkie wcześniejsze operacje kontenera nie są przechwytywane.
Przechwytywanie usuwania, aktualizacji pośrednich i list TTL
Funkcja przechwytywania zmian danych dla magazynu analitycznego przechwytuje operacje usuwania, aktualizacji pośrednich i czasu wygaśnięcia. Przechwycone usunięcia i aktualizacje można zastosować w ujściach, które obsługują operacje usuwania i aktualizacji. Wartość {_rid} jednoznacznie identyfikuje rekordy, a więc określając {_rid} jako kolumnę klucza po stronie ujścia, operacje aktualizacji i usuwania zostaną odzwierciedlone na ujściu.
Należy pamiętać, że operacje czasu wygaśnięcia są uznawane za operacje usuwania. Sprawdź sekcję ustawień źródła, aby sprawdzić szczegóły trybu oraz obsługę pośrednich aktualizacji i usuwania w ujściach.
Filtrowanie zestawienia zmian dla określonego typu operacji
Źródło danych przechwytywania zmian można filtrować pod kątem określonego typu operacji. Na przykład można selektywnie przechwytywać operacje wstawiania i aktualizowania, ignorując w ten sposób operacje usuwania użytkownika i usuwania czasu wygaśnięcia.
Stosowanie filtrów, projekcji i przekształceń w źródle zmian za pośrednictwem zapytania źródłowego
Opcjonalnie możesz użyć zapytania źródłowego, aby określić filtry, projekcje i przekształcenia, które zostaną wypchnięte do magazynu analitycznego kolumnowego. Oto przykładowe zapytanie źródłowe, które przechwytuje tylko rekordy przyrostowe za pomocą filtru Category = 'Urban'
. To przykładowe zapytanie obejmuje tylko pięć pól i stosuje prostą transformację:
SELECT ProductId, Product, Segment, concat(Manufacturer, '-', Category) as ManufacturerCategory
FROM c
WHERE Category = 'Urban'
Wiele procesów CDC
Możesz utworzyć wiele procesów do korzystania z usługi CDC w magazynie analitycznym. Takie podejście zapewnia elastyczność obsługi różnych scenariuszy i wymagań. Chociaż jeden proces może nie mieć przekształceń danych i wielu ujść, inny może mieć spłaszczanie danych i jeden ujście. I mogą działać równolegle.
Izolacja przepływności, mniejsze opóźnienie i niższa koszt posiadania
Operacje w magazynie analitycznym usługi Cosmos DB nie korzystają z aprowizowanych jednostek RU i nie mają wpływu na obciążenia transakcyjne. Przechwytywanie zmian danych przy użyciu magazynu analitycznego ma również mniejsze opóźnienie i mniejsze całkowite całkowite użycie całkowitego posiadania. Mniejsze opóźnienie jest przypisywane magazynowi analitycznemu umożliwiającemu lepszą równoległość przetwarzania danych i zmniejsza całkowity koszt posiadania, co pozwala zwiększyć efektywność kosztów w tych szybko zmieniających się warunkach ekonomicznych.
Scenariusze
Poniżej przedstawiono typowe scenariusze, w których można użyć przechwytywania zmian danych i magazynu analitycznego.
Korzystanie z danych przyrostowych z usługi Cosmos DB
Możesz użyć przechwytywania zmian magazynu analitycznego, jeśli obecnie używasz lub planujesz użyć:
- Przechwytywanie danych przyrostowych przy użyciu Przepływ danych usługi Azure Data Factory lub działanie Kopiuj.
- Jednorazowe przetwarzanie wsadowe przy użyciu usługi Azure Data Factory.
- Przesyłanie strumieniowe danych usługi Cosmos DB
- Magazyn analityczny ma maksymalnie 2-minutowe opóźnienie w celu zsynchronizowania danych magazynu transakcyjnego. Co minutę można zaplanować Przepływ danych w usłudze Azure Data Factory.
- Jeśli musisz przesyłać strumieniowo bez powyższych opóźnień, zalecamy użycie funkcji zestawienia zmian magazynu transakcyjnego.
- Przechwytywanie usuwania, przyrostowych zmian, stosowanie filtrów na danych usługi Cosmos DB.
- Jeśli używasz wyzwalaczy usługi Azure Functions lub innej opcji ze źródłem zmian i chcesz przechwycić usunięcia, zmiany przyrostowe, zastosować przekształcenia itp.; Zalecamy zmianę przechwytywania danych w magazynie analitycznym.
Źródło danych przyrostowych do wybranej platformy analitycznej
Funkcja przechwytywania zmian danych umożliwia kompleksowe rozwiązanie analityczne zapewniające elastyczność korzystania z danych usługi Azure Cosmos DB z dowolnym z obsługiwanych typów ujścia. Aby uzyskać więcej informacji na temat obsługiwanych typów ujścia, zobacz Typy ujścia obsługiwane przez przepływ danych. Przechwytywanie zmian danych umożliwia również przenoszenie danych usługi Azure Cosmos DB do scentralizowanego magazynu data lake i dołączanie danych z danymi z innych różnych źródeł. Możesz spłaścić dane, podzielić je na partycje i zastosować więcej przekształceń w usłudze Azure Synapse Analytics lub Azure Data Factory.
Przechwytywanie zmian danych w kontenerach usługi Azure Cosmos DB dla bazy danych MongoDB
Połączony interfejs usługi dla interfejsu API dla bazy danych MongoDB nie jest jeszcze dostępny w przepływach danych usługi Azure Data Factory. Możesz użyć interfejsu API dla punktu końcowego konta bazy danych MongoDB z połączonym interfejsem usługi Azure Cosmos DB for NoSQL jako obejściem, dopóki połączona usługa Mongo nie będzie bezpośrednio obsługiwana.
W interfejsie nowej połączonej usługi NoSQL wybierz pozycję Wprowadź ręcznie , aby podać informacje o koncie usługi Azure Cosmos DB. W tym miejscu użyj punktu końcowego dokumentu NoSQL konta (przykład: https://<account-name>.documents.azure.com:443/
) zamiast punktu końcowego bazy danych Mongo DB (przykład: mongodb://<account-name>.mongo.cosmos.azure.com:10255/
)