Udostępnij za pośrednictwem


Polecenie .move extents

Dotyczy: ✅Azure Data Explorer

To polecenie jest uruchamiane w kontekście określonej bazy danych. Przenosi określone zakresy z tabeli źródłowej do tabeli docelowej.

Uwaga

  • Aby uzyskać więcej informacji na temat zakresów, zobacz Omówienie zakresów (fragmentów danych).
  • Polecenie .move kończy się lub kończy się niepowodzeniem dla wszystkich zakresów źródłowych. Nie ma żadnych częściowych wyników.

Uprawnienia

Musisz mieć co najmniej uprawnienia administratora tabeli dla tabel źródłowych i docelowych.

Ograniczenia

  • Tabele źródłowe i docelowe muszą znajdować się w bazie danych kontekstu.
  • Wszystkie kolumny w tabeli źródłowej powinny istnieć w tabeli docelowej o tej samej nazwie i typie danych.
  • Jeśli tabela docelowa jest tabelą źródłową zmaterializowanego widoku, polecenie może zakończyć się niepowodzeniem, ponieważ zmaterializowany widok nie przetworzy rekordów w przeniesionych zakresach. Zobacz więcej szczegółów na stronie zmaterializowanych ograniczeń widoków . Ten błąd można obejść, ustawiając nowy czas pozyskiwania podczas przenoszenia polecenia. Zobacz setNewIngestionTime w obsługiwanych właściwościach.

Składnia

Przenieś wszystkie zakresy:

.move[async] extents from table all sourceTableName table to DestinationTableName [ with(PropertyName = PropertyValue [, ...]])

Zakresy przenoszenia określone przez identyfikator:

.move[async] extents table from SourceTableName table to DestinationTableName [ with(PropertyName = PropertyValue [, ...]] ( )Identyfikator GUID [, ...])

Przenieś zakresy określone przez wyniki zapytania:

.move[async] extents to table DestinationTableName [ with(PropertyName = PropertyValue [,...]] <| )Zapytanie

Dowiedz się więcej na temat konwencji składni.

Parametry

Nazwisko Type Wymagania opis
async string Jeśli zostanie określony, polecenie jest uruchamiane asynchronicznie.
SourceTableName string ✔️ Nazwa tabeli zawierającej zakresy do przeniesienia.
DestinationTableName string ✔️ Nazwa tabeli, do której mają być przenoszone zakresy.
PropertyName, PropertyValue string Co najmniej jedna obsługiwana właściwości.
Zapytanie string ✔️ Wyniki tego zapytania język zapytań Kusto (KQL) określają tabelę źródłową i identyfikatory zakresu, z których mają zostać przeniesione. Powinien zwrócić zestaw rekordów z kolumnami o nazwie "ExtentId" i "TableName".

Obsługiwane właściwości

Nazwa właściwości Typ Wymagania opis
setNewIngestionTime bool Jeśli ustawiono truewartość , zostanie przypisany nowy czas pozyskiwania do wszystkich rekordów w zakresach, które są przenoszone. Jest to przydatne, gdy rekordy powinny być przetwarzane przez obciążenia zależne od kursorów bazy danych, takich jak zmaterializowane widoki i ciągły eksport danych.
extentCreatedOnFrom datetime ✔️ Zastosuj do zakresów utworzonych po tym punkcie w czasie.
extentCreatedOnTo datetime ✔️ Zastosuj do zakresów utworzonych przed tym punktem w czasie.

Uwaga

Aby uzyskać lepszą wydajność, ustaw extentCreatedOnFrom parametry i extentCreatedOnTo na najmniejszy możliwy zakres.

Zwraca

Gdy polecenie jest uruchamiane synchronicznie, zwracana jest tabela z następującym schematem.

Parametr wyjściowy Type Opis
OriginalExtentId string Unikatowy identyfikator (GUID) dla oryginalnego zakresu w tabeli źródłowej, który został przeniesiony do tabeli docelowej.
ResultExtentId string Unikatowy identyfikator (GUID) dla zakresu wyników, który został przeniesiony z tabeli źródłowej do tabeli docelowej. Po awarii — "Niepowodzenie".
Szczegóły string Zawiera szczegóły błędu, jeśli operacja zakończy się niepowodzeniem.

Gdy polecenie jest uruchamiane asynchronicznie, zwracany jest identyfikator operacji (GUID). Monitoruj stan operacji za pomocą polecenia .show operations i pobierz wyniki pomyślnego wykonania za pomocą polecenia .show operation details .

Przykłady

Przenieś wszystkie zakresy

Przenieś wszystkie zakresy w tabeli MyTable do tabeli MyOtherTable:

.move extents all from table MyTable to table MyOtherTable

Przenoszenie dwóch określonych zakresów w określonym zakresie czasu tworzenia

Przenieś dwa określone zakresy (według identyfikatorów zakresu) w określonym zakresie czasu tworzenia z tabeli MyTable do tabeli MyOtherTable:

.move extents from table MyTable to table MyOtherTable with (extentCreatedOnFrom=datetime(2023-03-10), extentCreatedOnTo=datetime(2023-03-12)) (AE6CD250-BE62-4978-90F2-5CB7A10D16D7,399F9254-4751-49E3-8192-C1CA78020706)

Przenoszenie wszystkich zakresów w określonym zakresie czasu tworzenia z określonych tabel

Przenieś wszystkie zakresy w określonym zakresie czasu tworzenia z określonych tabel (MyTable1, MyTable2) do tabeli MyOtherTable:

.move extents to table MyOtherTable with (extentCreatedOnFrom=datetime(2023-03-10), extentCreatedOnTo=datetime(2023-03-12)) <| .show tables (MyTable1,MyTable2) extents

Przenieś wszystkie zakresy z ustawionym nowym czasem pozyskiwania

.move extents all from table MyTable to table MyOtherTable with (setNewIngestionTime=true)

Przykładowe dane wyjściowe

OriginalExtentId ResultExtentId Szczegóły
e133f050-a1e2-4dad-8552-1f5cf47cab69 0d96ab2d-9dd2-4d2c-a45e-b24c65aa687
cdbeb35b-87ea-499f-b545-defbae091b57 a90a303c-8a14-4207-8f35-d8ea94ca45be
4fcb4598-9a31-4614-903c-0c67c286da8c 97aafea1-59ff-4312-b06b-08f42187872f
2dfdef64-62a3-4950-a130-96b5b1083b5a 0fb7f3da-5e28-4f09-a000-e62eb41592df