Freigeben über


.delete-Tabellendatensätze – Befehl zum vorläufigen Löschen

Gilt für: ✅Azure Data Explorer

Wenn Sie einzelne Datensätze vorläufig löschen möchten, ohne dass ein System garantiert, dass auch die Speicherartefakte, die diese Datensätze enthalten, gelöscht werden, verwenden Sie den folgenden Befehl. Mit diesem Befehl werden Datensätze als gelöscht markiert, aber nicht unbedingt die Daten aus Speicherartefakten gelöscht. Weitere Informationen finden Sie unter Vorläufiges Löschen.

Informationen zum Löschen einzelner Datensätze mit einem System garantieren, dass die Speicherartefakte, die diese Datensätze enthalten, ebenfalls gelöscht werden, finden Sie unter "Datenlöschung".

Syntax

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

Erfahren Sie mehr über Syntaxkonventionen.

Parameter

Name Type Erforderlich Beschreibung
async string Wenn angegeben, gibt an, dass der Befehl im asynchronen Modus ausgeführt wird.
TableName string ✔️ Der Name der Tabelle, aus der Datensätze gelöscht werden sollen.
propertyName, propertyValue string Eine durch Trennzeichen getrennte Liste von Schlüsselwert-Eigenschaftspaaren. Siehe unterstützte Eigenschaften.
Prädikat string ✔️ Das Prädikat, das Datensätze zurückgibt, die gelöscht werden sollen, die als Abfrage angegeben werden. Siehe Hinweis.

Hinweis

Die folgenden Einschränkungen gelten für das Prädikat:

  • Das Prädikat sollte mindestens einen where Operator aufweisen.
  • Das Prädikat kann nur die folgenden Operatoren verwenden: extendund projectwhere .
  • Das Prädikat kann nicht verwendet werden externaldata.

Unterstützte Eigenschaften

Name Typ Beschreibung
whatif bool Wenn true, gibt die Anzahl der Datensätze zurück, die in jeder Shard gelöscht werden, ohne tatsächlich Datensätze zu löschen. Der Standardwert ist false.

Gibt zurück

Die Ausgabe des Befehls enthält Informationen dazu, welche Ausmaße ersetzt wurden.

Beispiel: Löschen von Datensätzen eines bestimmten Benutzers

So löschen Sie alle Datensätze, die Daten eines bestimmten Benutzers enthalten:

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

Beispiel: Überprüfen, wie viele Datensätze aus einer Tabelle gelöscht werden sollen

Um die Anzahl der Datensätze zu ermitteln, die vom Vorgang gelöscht werden würden, ohne sie tatsächlich zu löschen, überprüfen Sie den Wert in der Spalte "RecordsMatchPredicate ", wenn der Befehl im whatif Modus ausgeführt wird:

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

.delete materialized-view records - Soft Delete Command

Wenn das vorläufige Löschen in materialisierten Ansichten ausgeführt wird, gelten dieselben Konzepte und Einschränkungen.

Syntax - materialisierte Ansichten

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

Erfahren Sie mehr über Syntaxkonventionen.

Parameter – materialisierte Ansichten

Name Type Erforderlich Beschreibung
async string Wenn angegeben, gibt an, dass der Befehl im asynchronen Modus ausgeführt wird.
MaterializedViewName string ✔️ Der Name der materialisierten Ansicht, aus der Datensätze gelöscht werden sollen.
propertyName, propertyValue string Eine durch Trennzeichen getrennte Liste von Schlüsselwert-Eigenschaftspaaren. Siehe unterstützte Eigenschaften.
Prädikat string ✔️ Das Prädikat, das Datensätze zurückgibt, die gelöscht werden sollen. Als Abfrage angegeben.

Hinweis

Die gleichen Einschränkungen für das für die Tabelle erwähnte Prädikat gelten auch hier. Bei Konflikten mit dem im Hintergrund ausgeführten Materialisierungsprozess kann ein Weichlöschvorgang fehlschlagen. Das Wiederholen des Vorgangs kann in diesem Fall hilfreich sein. Um Konflikte zu vermeiden, können Sie die materialisierte Ansicht vor dem Ausführen des vorläufigen Löschens deaktivieren und nach Abschluss des Vorgangs erneut aktivieren. Die Verwendung der Funktion materialized_view() ist im Prädikat nicht zulässig.

Unterstützte Eigenschaften – materialisierte Ansichten

Name Typ Beschreibung
whatif bool Wenn true, gibt die Anzahl der Datensätze zurück, die in jeder Shard gelöscht werden, ohne tatsächlich Datensätze zu löschen. Der Standardwert ist false.

Beispiel : materialisierte Ansichten

So löschen Sie alle materialisierten Ansichtsdatensätze, die Daten eines bestimmten Benutzers enthalten:

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

Beispiel: Überprüfen, wie viele Datensätze aus einer materialisierten Ansicht gelöscht werden sollen

Um die Anzahl der Datensätze zu ermitteln, die vom Vorgang gelöscht werden würden, ohne sie tatsächlich zu löschen, überprüfen Sie den Wert in der Spalte "RecordsMatchPredicate " beim Ausführen des Befehls im whatif Modus:

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