Udostępnij za pośrednictwem


.delete table records — polecenie usuwania nietrwałego

Dotyczy: ✅Azure Data Explorer

Aby usunąć nietrwałe pojedyncze rekordy bez gwarancji systemu, że artefakty magazynu zawierające te rekordy również zostaną usunięte, użyj następującego polecenia. To polecenie oznacza rekordy jako usunięte, ale niekoniecznie usuwa dane z artefaktów magazynu. Aby uzyskać więcej informacji, zobacz Usuwanie nietrwałe.

Aby usunąć poszczególne rekordy z gwarancją systemu, że artefakty magazynu zawierające te rekordy również zostaną usunięte, zobacz Przeczyszczanie danych.

Składnia

.delete[async] table TableName records [with ( propertyName = propertyValue [, ...]] <| )Predykat

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

Parametry

Nazwisko Type Wymagania opis
async string Jeśli zostanie określony, wskazuje, że polecenie jest uruchamiane w trybie asynchronicznym.
TableName string ✔️ Nazwa tabeli, z której mają zostać usunięte rekordy.
propertyName, propertyValue string Rozdzielona przecinkami lista par właściwości klucz-wartość. Zobacz obsługiwane właściwości.
Predykat string ✔️ Predykat, który zwraca rekordy do usunięcia, który jest określony jako zapytanie. Zobacz notatkę.

Uwaga

Następujące ograniczenia dotyczą predykatu:

  • Predykat powinien mieć co najmniej jeden where operator.
  • Predykat może używać tylko następujących operatorów: extend, where i project.
  • Predykat nie może używać .externaldata

Obsługiwane właściwości

Nazwisko Pisz Opis
whatif bool Jeśli trueparametr zwraca liczbę rekordów, które zostaną usunięte w każdym fragmentie, bez faktycznego usunięcia rekordów. Wartość domyślna to false.

Zwraca

Dane wyjściowe polecenia zawierają informacje o tym, które zakresy zostały zastąpione.

Przykład: usuwanie rekordów danego użytkownika

Aby usunąć wszystkie rekordy zawierające dane danego użytkownika:

.delete table MyTable records <| MyTable | where UserId == 'X'

Przykład: sprawdzanie, ile rekordów zostanie usuniętych z tabeli

Aby określić liczbę rekordów, które zostaną usunięte przez operację bez ich faktycznego usunięcia, sprawdź wartość w kolumnie RecordsMatchPredicate podczas uruchamiania polecenia w whatif trybie:

.delete table MyTable records with (whatif=true) <| MyTable | where UserId == 'X'

.delete materialized-view records — polecenie usuwania nietrwałego

Gdy usuwanie nietrwałe jest wykonywane na zmaterializowanych widokach, mają zastosowanie te same pojęcia i ograniczenia.

Składnia — zmaterializowane widoki

.delete[async] materialized-view MaterializedViewName records [with ( propertyName = propertyValue [, ...]] <| )Predykat

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

Parametry — zmaterializowane widoki

Nazwisko Type Wymagania opis
async string Jeśli zostanie określony, wskazuje, że polecenie jest uruchamiane w trybie asynchronicznym.
MaterializedViewName string ✔️ Nazwa zmaterializowanego widoku, z którego mają zostać usunięte rekordy.
propertyName, propertyValue string Rozdzielona przecinkami lista par właściwości klucz-wartość. Zobacz obsługiwane właściwości.
Predykat string ✔️ Predykat, który zwraca rekordy do usunięcia. Określony jako zapytanie.

Uwaga

Te same ograniczenia dotyczące predykatu wymienionego dla tabeli mają zastosowanie również tutaj. Usuwanie nietrwałe może zakończyć się niepowodzeniem w przypadku konfliktów z procesem materializacji uruchomionym w tle. Ponawianie próby wykonania operacji może pomóc w tym przypadku. Aby uniknąć konfliktów, można wyłączyć zmaterializowany widok przed wykonaniem usuwania nietrwałego i ponownie włączyć go po zakończeniu operacji. Użycie funkcji materialized_view() nie jest dozwolone w predykacie.

Obsługiwane właściwości — zmaterializowane widoki

Nazwisko Pisz Opis
whatif bool Jeśli trueparametr zwraca liczbę rekordów, które zostaną usunięte w każdym fragmentie, bez faktycznego usunięcia rekordów. Wartość domyślna to false.

Przykład — zmaterializowane widoki

Aby usunąć wszystkie zmaterializowane rekordy widoku zawierające dane danego użytkownika:

.delete materialized-view MyMaterializedView records <| MyMaterializedView | where UserId == 'X'

Przykład: sprawdzanie, ile rekordów zostanie usuniętych z zmaterializowanego widoku

Aby określić liczbę rekordów, które zostaną usunięte przez operację bez ich faktycznego usunięcia, sprawdź wartość w kolumnie RecordsMatchPredicate podczas uruchamiania polecenia w whatif trybie:

.delete materialized-view MyMaterializedView records with (whatif=true) <| MyMaterializedView | where UserId == 'X'