Omówienie ciągłego eksportu danych
W tym artykule opisano ciągły eksport danych z usługi Kusto do tabeli zewnętrznej z okresowym uruchamianiem zapytania. Wyniki są przechowywane w tabeli zewnętrznej, która definiuje miejsce docelowe, takie jak Azure Blob Storage i schemat wyeksportowanych danych. Ten proces gwarantuje, że wszystkie rekordy są eksportowane "dokładnie raz", z pewnymi wyjątkami. Domyślnie eksport ciągły jest uruchamiany w trybie rozproszonym, w którym wszystkie węzły są eksportowane współbieżnie, więc liczba artefaktów zależy od liczby węzłów w klastrze. Eksport ciągły nie jest przeznaczony dla danych przesyłanych strumieniowo z klastra o małych opóźnieniach.
Aby włączyć eksport ciągły danych, utwórz tabelę zewnętrzną , a następnie utwórz definicję eksportu ciągłego wskazującą tabelę zewnętrzną.
W niektórych przypadkach należy użyć tożsamości zarządzanej, aby pomyślnie skonfigurować zadanie eksportu ciągłego. Aby uzyskać więcej informacji, zobacz Używanie tożsamości zarządzanej do uruchamiania zadania eksportu ciągłego.
Uprawnienia
Wszystkie polecenia eksportu ciągłego wymagają co najmniej uprawnień do Administracja bazy danych.
Wytyczne dotyczące eksportu ciągłego
Schemat danych wyjściowych:
- Schemat wyjściowy zapytania eksportu musi być zgodny ze schematem tabeli zewnętrznej, do której eksportujesz.
Częstotliwość:
Eksport ciągły jest uruchamiany zgodnie z okresem skonfigurowanym
intervalBetweenRuns
dla niego we właściwości . Zalecana wartość dla tego interwału wynosi co najmniej kilka minut, w zależności od opóźnień, które chcesz zaakceptować. Interwał czasu może wynosić nawet jedną minutę, jeśli szybkość pozyskiwania jest wysoka.Uwaga
Parametr
intervalBetweenRuns
służy tylko jako zalecenie i nie ma gwarancji, że jest precyzyjny. Eksport ciągły nie jest odpowiedni do eksportowania okresowych agregacji. Na przykład konfiguracja zintervalBetweenRuns
=1h
agregacją godzinową (T | summarize by bin(Timestamp, 1h)
) nie będzie działać zgodnie z oczekiwaniami, ponieważ eksport ciągły nie będzie uruchamiany dokładnie w ciągu godziny. W związku z tym każdy przedział godzinowy będzie otrzymywać wiele wpisów w wyeksportowanych danych.
Liczba plików:
- Liczba plików wyeksportowanych w każdej iteracji eksportu ciągłego zależy od sposobu partycjonowania tabeli zewnętrznej. Aby uzyskać więcej informacji, zobacz eksportowanie do polecenia tabeli zewnętrznej. Każda iteracja eksportu ciągłego zawsze zapisuje do nowych plików i nigdy nie dołącza do istniejących. W związku z tym liczba wyeksportowanych plików zależy również od częstotliwości uruchamiania eksportu ciągłego. Parametr frequency ma wartość
intervalBetweenRuns
.
- Liczba plików wyeksportowanych w każdej iteracji eksportu ciągłego zależy od sposobu partycjonowania tabeli zewnętrznej. Aby uzyskać więcej informacji, zobacz eksportowanie do polecenia tabeli zewnętrznej. Każda iteracja eksportu ciągłego zawsze zapisuje do nowych plików i nigdy nie dołącza do istniejących. W związku z tym liczba wyeksportowanych plików zależy również od częstotliwości uruchamiania eksportu ciągłego. Parametr frequency ma wartość
Konta magazynu tabel zewnętrznych:
- Aby uzyskać najlepszą wydajność, klaster i konta magazynu powinny być kolokowane w tym samym regionie świadczenia usługi Azure.
- Eksport ciągły działa w sposób rozproszony, tak aby wszystkie węzły w klastrze eksportowały jednocześnie. W dużych klastrach, a jeśli wyeksportowany wolumin danych jest duży, może to prowadzić do ograniczenia magazynu. Zaleca się skonfigurowanie wielu kont magazynu dla tabeli zewnętrznej. Aby uzyskać więcej informacji, zobacz Błędy magazynu podczas eksportowania poleceń .
Dokładnie raz eksportu
Aby zagwarantować eksport "dokładnie raz", eksport ciągły używa kursorów bazy danych. Zapytanie eksportu ciągłego nie powinno zawierać filtru znacznika czasu — mechanizm kursorów bazy danych gwarantuje, że rekordy nie są przetwarzane więcej niż raz. Dodanie filtru znacznika czasu w zapytaniu może prowadzić do braku danych w wyeksportowanych danych.
Zasady IngestionTime muszą być włączone we wszystkich tabelach, do których odwołuje się zapytanie, które powinno być przetwarzane "dokładnie raz" w eksporcie. Zasady są domyślnie włączone we wszystkich nowo utworzonych tabelach.
Gwarancja eksportu "dokładnie raz" dotyczy tylko plików zgłoszonych w poleceniu pokaż wyeksportowane artefakty. Eksport ciągły nie gwarantuje, że każdy rekord zostanie zapisany tylko raz w tabeli zewnętrznej. Jeśli po rozpoczęciu eksportu wystąpi błąd, a niektóre artefakty zostały już zapisane w tabeli zewnętrznej, tabela zewnętrzna może zawierać duplikaty. Jeśli operacja zapisu została przerwana przed ukończeniem, tabela zewnętrzna może zawierać uszkodzone pliki. W takich przypadkach artefakty nie są usuwane z tabeli zewnętrznej, ale nie zostaną zgłoszone w poleceniu pokaż wyeksportowane artefakty. Korzystanie z wyeksportowanych plików przy użyciu show exported artifacts command
gwarancji braku duplikacji i brak uszkodzeń.
Eksportowanie z tabel faktów i wymiarów
Domyślnie przyjmuje się, że wszystkie tabele, do których odwołuje się zapytanie eksportu, są tabelami faktów. W związku z tym są one ograniczone do kursora bazy danych. Składnia jawnie deklaruje, które tabele są ograniczone (fakt) i które nie są ograniczone (wymiar). over
Aby uzyskać szczegółowe informacje, zobacz parametr w poleceniu create.
Zapytanie eksportu zawiera tylko rekordy, które zostały dołączone od poprzedniego wykonania eksportu. Zapytanie eksportu może zawierać tabele wymiarów , w których wszystkie rekordy tabeli wymiarów są uwzględniane we wszystkich zapytaniach eksportu. Podczas używania sprzężeń między tabelami faktów i wymiarów w eksporcie ciągłym należy pamiętać, że rekordy w tabeli faktów są przetwarzane tylko raz. Jeśli eksport zostanie uruchomiony, gdy brakuje rekordów w tabelach wymiarów dla niektórych kluczy, rekordy dla odpowiednich kluczy zostaną pominięte lub zostaną uwzględnione wartości null dla kolumn wymiarów w wyeksportowanych plikach. Zwracanie nieodebranych lub zerowych rekordów zależy od tego, czy zapytanie używa sprzężenia wewnętrznego czy zewnętrznego. forcedLatency
Właściwość w definicji eksportu ciągłego może być przydatna w takich przypadkach, gdy tabele faktów i wymiarów są pozyskiwane w tym samym czasie w celu dopasowania rekordów.
Uwaga
Ciągły eksport tylko tabel wymiarów nie jest obsługiwany. Zapytanie eksportu musi zawierać co najmniej jedną tabelę faktów.
Monitorowanie eksportu ciągłego
Monitoruj kondycję zadań eksportu ciągłego przy użyciu następujących metryk eksportu:
Continuous export max lateness
- Maksymalna opóźnienie (w minutach) eksportów ciągłych w klastrze. Jest to czas między teraz a minimalnąExportedTo
godziną wszystkich zadań eksportu ciągłego w klastrze. Aby uzyskać więcej informacji, zobacz.show continuous export
polecenie .Continuous export result
— Powodzenie/niepowodzenie wyniku każdego wykonania eksportu ciągłego. Tę metryę można podzielić na nazwę eksportu ciągłego.
.show continuous export failures
Użyj polecenia , aby wyświetlić konkretne błędy zadania eksportu ciągłego.
Ostrzeżenie
Jeśli eksport ciągły zakończy się niepowodzeniem przez ponad 7 dni z powodu trwałej awarii, eksport zostanie automatycznie wyłączony przez system.
Błędy trwałe obejmują: nie znaleziono tabeli zewnętrznej, niezgodność schematu zapytania ciągłego eksportu i schematu tabeli zewnętrznej, konto magazynu jest niedostępne.
Po naprawieniu błędu można ponownie włączyć eksport ciągły przy użyciu .enable continuous export
polecenia .
Użycie zasobów
- Wpływ eksportu ciągłego na klaster zależy od zapytania, na które działa eksport ciągły. Większość zasobów, takich jak procesor CPU i pamięć, jest zużywana przez wykonanie zapytania.
- Liczba operacji eksportu, które mogą być uruchamiane współbieżnie, jest ograniczona przez pojemność eksportu danych klastra. Aby uzyskać więcej informacji, zobacz Zarządzanie poleceniami ograniczania przepustowości. Jeśli klaster nie ma wystarczającej pojemności do obsługi wszystkich eksportów ciągłych, niektóre zaczną opóźniać.
- Polecenie show -and-queries może służyć do szacowania zużycia zasobów.
- Filtruj
| where ClientActivityId startswith "RunContinuousExports"
, aby wyświetlić polecenia i zapytania skojarzone z eksportem ciągłym.
- Filtruj
Eksportowanie danych historycznych
Eksport ciągły rozpoczyna eksportowanie danych tylko od momentu jego utworzenia. Rekordy pozyskane przed tym czasem powinny być eksportowane oddzielnie przy użyciu polecenia eksportu nie ciągłego. Dane historyczne mogą być zbyt duże, aby można je było wyeksportować w jednym poleceniu eksportu. W razie potrzeby podziel zapytanie na kilka mniejszych partii.
Aby uniknąć duplikatów z danymi eksportowanymi przez eksport ciągły, użyj StartCursor
polecenia show continuous export i eksportuj tylko wartość where cursor_before_or_at
kursora. Na przykład:
.show continuous-export MyExport | project StartCursor
StartCursor |
---|
636751928823156645 |
Następuje:
.export async to table ExternalBlob
<| T | where cursor_before_or_at("636751928823156645")
Eksport ciągły z tabeli z zabezpieczeniami na poziomie wiersza
Aby utworzyć zadanie eksportu ciągłego z zapytaniem odwołującym się do tabeli z zasadami zabezpieczeń na poziomie wiersza, musisz:
- Podaj tożsamość zarządzaną w ramach konfiguracji eksportu ciągłego. Aby uzyskać więcej informacji, zobacz Używanie tożsamości zarządzanej do uruchamiania zadania eksportu ciągłego.
- Użyj uwierzytelniania personifikacji dla tabeli zewnętrznej, do której są eksportowane dane.
Eksport ciągły do tabeli delty — wersja zapoznawcza
Eksport ciągły do tabeli delty jest obecnie w wersji zapoznawczej.
Ważne
Partycjonowanie tabel różnicowych nie jest obsługiwane w ciągłym eksportowaniu danych.
Usługa Kusto nie będzie zapisywać w istniejących tabelach różnicowych, jeśli wersja składnika zapisywania protokołu różnicowego jest wyższa niż 1.
Aby zdefiniować eksport ciągły do tabeli różnicowej, wykonaj następujące czynności:
Utwórz zewnętrzną tabelę różnicową zgodnie z opisem w temacie Tworzenie i zmienianie tabel zewnętrznych różnicowych w usłudze Azure Storage.
Uwaga
Jeśli schemat nie zostanie podany, usługa Kusto spróbuje ją automatycznie wywnioskować, jeśli w docelowym kontenerze magazynu istnieje już tabela różnicowa zdefiniowana.
Partycjonowanie tabel różnicowych nie jest obsługiwane.Zdefiniuj eksport ciągły do tej tabeli przy użyciu poleceń opisanych w temacie Tworzenie lub zmienianie eksportu ciągłego.
Ważne
Schemat tabeli różnicowej musi być zsynchronizowany z zapytaniem eksportu ciągłego. Jeśli podstawowa tabela różnicowa ulegnie zmianie, eksport może rozpocząć się niepowodzeniem z nieoczekiwanym zachowaniem.
Ograniczenia
Ogólne:
- Następujące formaty są dozwolone w tabelach docelowych:
CSV
,TSV
,JSON
iParquet
. - Eksport ciągły nie jest przeznaczony do pracy nad zmaterializowanymi widokami, ponieważ zmaterializowany widok może zostać zaktualizowany, podczas gdy dane eksportowane do magazynu są zawsze dołączane i nigdy nie są aktualizowane.
- Nie można utworzyć eksportu ciągłego w bazach danych obserwowanych , ponieważ bazy danych obserwowanych są tylko do odczytu, a eksport ciągły wymaga operacji zapisu.
- Rekordy w tabeli źródłowej muszą być pozyskiwane bezpośrednio do tabeli, przy użyciu zasad aktualizacji lub pozyskiwane z poleceń zapytania. Jeśli rekordy są przenoszone do tabeli przy użyciu zakresów przenoszenia lub przy użyciu tabeli .rename, eksport ciągły może nie przetwarzać tych rekordów. Zobacz ograniczenia opisane na stronie Kursory bazy danych .
- Jeśli artefakty używane przez eksport ciągły mają wyzwalać powiadomienia usługi Event Grid, zobacz sekcję znanych problemów w dokumentacji usługi Event Grid.
Między bazami danych i między klastrami:
- Eksport ciągły nie obsługuje wywołań między klastrami.
- Eksport ciągły obsługuje wywołania między bazami danych tylko dla tabel wymiarów. Wszystkie tabele faktów muszą znajdować się w lokalnej bazie danych. Zobacz więcej szczegółów w temacie Eksportowanie z tabel faktów i wymiarów.
- Jeśli eksport ciągły obejmuje wywołania między bazami danych, należy skonfigurować go przy użyciu tożsamości zarządzanej.
Zasady:
- Nie można włączyć eksportu ciągłego w tabeli z zasadami zabezpieczeń na poziomie wiersza , chyba że zostaną spełnione określone warunki. Aby uzyskać więcej informacji, zobacz Eksport ciągły z tabeli z zabezpieczeniami na poziomie wiersza.
- Nie można skonfigurować eksportu ciągłego w tabeli z ograniczonymi zasadami dostępu.
Zawartość pokrewna
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla