Udostępnij za pośrednictwem


Omówienie ciągłego eksportu danych

Dotyczy: ✅Microsoft Fabric✅Azure Data Explorer

W tym artykule opisano ciągły eksport danych z usługi Kusto do tabeli zewnętrznej z okresowo uruchamianym zapytaniem. Wyniki są przechowywane w tabeli zewnętrznej, która definiuje miejsce docelowe, takie jak usługa Azure Blob Storage, oraz 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. Eksport ciągły nie jest przeznaczony dla danych przesyłanych strumieniowo o małych opóźnieniach.

Aby włączyć eksport danych ciągłych, 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ń administratora 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

      Służy intervalBetweenRuns 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 intervalBetweenRuns=1h z agregacją godzinową (T | summarize by bin(Timestamp, 1h)) nie będzie działać zgodnie z oczekiwaniami, ponieważ eksport ciągły nie będzie działać dokładnie w ciągu godziny. W związku z tym każdy przedział godzinowy otrzyma wiele wpisów w wyeksportowanych danych.

  • Liczba plików:

    • Liczba plików eksportowanych w każdej iteracji eksportu ciągłego zależy od sposobu partycjonowania tabeli zewnętrznej. Aby uzyskać więcej informacji, zobacz eksportowanie do zewnętrznego polecenia tabeli. Każda iteracja eksportu ciągłego zawsze zapisuje w nowych plikach 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ść, baza danych 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 eksportowały jednocześnie. W dużych bazach danych, 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 powinny być przetwarzane "dokładnie raz" w eksporcie. Zasady są domyślnie włączone dla wszystkich nowo utworzonych tabel.

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 jest zapisywany tylko raz w tabeli zewnętrznej. Jeśli po rozpoczęciu eksportowania 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 zakończeniem, tabela zewnętrzna może zawierać uszkodzone pliki. W takich przypadkach artefakty nie są usuwane z tabeli zewnętrznej, ale nie są zgłaszane w pokazują wyeksportowane artefakty polecenia. Korzystanie z wyeksportowanych plików przy użyciu show exported artifacts command gwarancji brak duplikacji i brak uszkodzeń.

Eksportowanie z tabel faktów i wymiarów

Domyślnie wszystkie tabele, do których odwołuje się zapytanie eksportu, są zakładane jako tabele faktów. W związku z tym są one ograniczone do kursora bazy danych. Składnia jawnie deklaruje, które tabele mają zakres (fakt) i które nie są zakresem (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 jest uruchamiany, gdy brakuje rekordów w tabelach wymiarów dla niektórych kluczy, rekordy dla odpowiednich kluczy są pominięte lub zawierają wartości null dla kolumn wymiarów w wyeksportowanych plikach. Zwracanie pominiętych lub null 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 dla pasujących rekordów.

Uwaga

Eksport ciągły 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) ciągłego eksportu w bazie danych. Jest to czas między teraz a minimalną ExportedTo godziną wszystkich zadań eksportu ciągłego w bazie danych. Aby uzyskać więcej informacji, zobacz .show continuous export polecenie .
  • Continuous export result - Powodzenie/niepowodzenie wyniku każdego wykonania eksportu ciągłego. Ta metryka może zostać podzielona przez nazwę eksportu ciągłego.

Użyj polecenia , .show continuous export failures 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 eksportu ciągłego i schematu tabeli zewnętrznej, konto magazynu nie jest dostę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 bazę danych zależy od zapytania, które jest uruchamiane przez 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 bazy danych. Aby uzyskać więcej informacji, zobacz Zarządzanie poleceniami ograniczania przepustowości. Jeśli baza danych nie ma wystarczającej pojemności do obsługi wszystkich eksportów ciągłych, niektóre zaczynają się opóźniać.
  • Polecenie show -and-queries może służyć do oszacowania zużycia zasobów.
    • | where ClientActivityId startswith "RunContinuousExports" Filtruj, 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 niestał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 tabeli różnicowej 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 delty, 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 wywnioskować go automatycznie, jeśli w docelowym kontenerze magazynu istnieje już tabela różnicowa zdefiniowana.
    Partycjonowanie tabeli różnicowej 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:

  • Następujące formaty są dozwolone w tabelach docelowych: CSV, , TSVJSONi Parquet.
  • Eksport ciągły nie jest przeznaczony do pracy nad zmaterializowanych widoków, 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 na baz 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 artykule Eksportowanie z tabel faktów i wymiarów.
  • Jeśli eksport ciągły obejmuje wywołania między bazami danych, należy go skonfigurować przy użyciu tożsamości zarządzanej.

Między bazami danych i między usługami Eventhouse:

  • Eksport ciągły nie obsługuje wywołań między usługami Eventhouse.
  • 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 artykule Eksportowanie z tabel faktów i wymiarów.

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 do widoku.