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 z intervalBetweenRuns=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.
  • 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.

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:

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:

  1. 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.

  2. 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:

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: