Datenbereinigung
Gilt für: ✅Azure Data Explorer
Hinweis
Dieser Artikel enthält eine ausführliche Vorgehensweise zum Löschen personenbezogener Daten vom Gerät oder aus dem Dienst, die Sie bei Ihren Pflichten gemäß der DSGVO unterstützen kann. Allgemeine Informationen zur DSGVO finden Sie im Abschnitt zur DSGVO im Microsoft Trust Center und im Abschnitt zur DSGVO im Service Trust Portal.
Die Datenplattform unterstützt die Möglichkeit, einzelne Datensätze mithilfe von Kusto .purge
und verwandten Befehlen zu löschen. Sie können auch eine gesamte Tabelle löschen oder Datensätze in einer materialisierten Ansicht löschen.
Warnung
Das Löschen von Daten über den .purge
Befehl dient zum Schutz personenbezogener Daten und sollte nicht in anderen Szenarien verwendet werden. Es ist nicht darauf ausgelegt, häufige Löschanforderungen oder löschungen massiver Datenmengen zu unterstützen und kann erhebliche Leistungseinbußen auf den Dienst haben.
Richtlinien zur Bereinigung
Entwerfen Sie Ihr Datenschema sorgfältig, und untersuchen Sie relevante Richtlinien, bevor Sie personenbezogene Daten speichern.
- In einem optimalen Fall ist der Aufbewahrungszeitraum für diese Daten ausreichend kurz, und Daten werden automatisch gelöscht.
- Wenn die Nutzung des Aufbewahrungszeitraums nicht möglich ist, isolieren Sie alle Daten, die den Datenschutzregeln in einigen Tabellen unterliegen. Verwenden Sie optimal nur eine Tabelle, und verknüpfen Sie sie aus allen anderen Tabellen. Mit dieser Isolierung können Sie den Datenlöschvorgang auf einigen Tabellen ausführen, die vertrauliche Daten enthalten, und alle anderen Tabellen vermeiden.
- Der Aufrufer sollte jeden Versuch unternehmen, die Ausführung von
.purge
Befehlen auf 1 bis 2 Befehle pro Tabelle pro Tag zu stapeln. Stellen Sie nicht mehrere Befehle mit eindeutigen Benutzeridentitäts-Prädikaten aus. Senden Sie stattdessen einen einzelnen Befehl, dessen Prädikat alle Benutzeridentitäten enthält, die eine Bereinigung erfordern.
Bereinigungsprozess
Der Prozess der selektiven Löschung von Daten erfolgt in den folgenden Schritten:
Phase 1: Geben Sie eine Eingabe mit einem Tabellennamen und einem Prädikat pro Datensatz an, das angibt, welche Datensätze gelöscht werden sollen. Kusto überprüft die Tabelle, um Datenausdehnungen zu identifizieren, die an der Datenbereinigung teilnehmen würden. Die identifizierten Bereiche sind diejenigen mit einem oder mehreren Datensätzen, für die das Prädikat "true" zurückgibt.
Phase 2: (Vorläufiges Löschen) Ersetzen Sie jedes Datenumfang in der Tabelle (in Schritt (1)) durch eine neu aufgenommene Version. Die neu aufgenommene Version sollte nicht über die Datensätze verfügen, für die das Prädikat "true" zurückgibt. Wenn neue Daten nicht in die Tabelle aufgenommen werden, geben Abfragen bis Ende dieser Phase keine Daten mehr zurück, für die das Prädikat "true" zurückgibt. Die Dauer der Löschphase hängt von den folgenden Parametern ab:
- Die Anzahl der Datensätze, die gelöscht werden müssen
- Aufzeichnen der Verteilung über die Datendehnungen im Cluster
- Die Anzahl der Knoten im Cluster
- Die Ersatzkapazität für Löschvorgänge
- Mehrere andere Faktoren
Die Dauer von Phase 2 kann zwischen einigen Sekunden und vielen Stunden variieren.
Phase 3: (Endgültiges Löschen) Arbeiten Sie alle Speicherartefakte zurück, die die "Gift"-Daten enthalten können, und löschen Sie sie aus dem Speicher. Diese Phase erfolgt mindestens fünf Tage nach Abschluss der vorherigen Phase, aber nicht mehr als 30 Tage nach dem ersten Befehl. Diese Zeitachsen sind so festgelegt, dass sie den Datenschutzanforderungen entsprechen.
Durch das Ausgeben eines .purge
Befehls wird dieser Vorgang ausgelöst, der einige Tage dauert. Wenn die Dichte der Datensätze, für die das Prädikat gilt, ausreichend groß ist, wird der Prozess effektiv alle Daten in der Tabelle wieder aufnehmen. Diese Neuaufnahme hat erhebliche Auswirkungen auf die Leistung und die COGS (Kosten der verkauften Waren).
Bereinigungseinschränkungen und Überlegungen
Der Bereinigungsvorgang ist endgültig und kann nicht rückgängig gemacht werden. Es ist nicht möglich, diesen Vorgang rückgängig zu machen oder Daten wiederherzustellen, die gelöscht wurden. Befehle wie " Rückgängig"-Tabellenablage können gelöschte Daten nicht wiederherstellen. Ein Rollback der Daten zu einer früheren Version kann vor dem letzten Bereinigungsbefehl nicht ausgeführt werden.
Überprüfen Sie vor dem Ausführen der Bereinigung das Prädikat, indem Sie eine Abfrage ausführen und überprüfen, ob die Ergebnisse mit dem erwarteten Ergebnis übereinstimmen. Sie können auch den zweistufigen Prozess verwenden, der die erwartete Anzahl von Datensätzen zurückgibt, die gelöscht werden.
Der
.purge
Befehl wird für den Datenverwaltung Endpunkt ausgeführt:https://ingest-[YourClusterName].[region].kusto.windows.net
. Der Befehl erfordert Berechtigungen vom Typ Datenbankadministrator für die relevanten Datenbanken.Aufgrund der Auswirkungen auf die Bereinigung der Prozessleistung und um sicherzustellen, dass die Bereinigungsrichtlinien befolgt wurden, wird erwartet, dass der Aufrufer das Datenschema so ändert, dass minimale Tabellen relevante Daten enthalten, und Batchbefehle pro Tabelle, um die signifikanten COGS-Auswirkungen des Bereinigungsprozesses zu verringern.
Der
predicate
Parameter des Befehls ".purge " wird verwendet, um anzugeben, welche Datensätze gelöscht werden sollen.Predicate
Die Größe ist auf 1 MB begrenzt. Beim Konstruieren derpredicate
:- Verwenden Sie z. B. den Operator "in".
where [ColumnName] in ('Id1', 'Id2', .. , 'Id1000')
- Beachten Sie die Grenzwerte des Operators "in" (Liste kann bis zu
1,000,000
Werte enthalten). - Wenn die Abfragegröße groß ist, verwenden Sie
externaldata
beispielsweisewhere UserId in (externaldata(UserId:string) ["https://...blob.core.windows.net/path/to/file?..."])
den Operator . In der Datei wird die Liste der zu löschenden IDs gespeichert. - Die Gesamtabfragegröße kann nach dem Erweitern aller
externaldata
Blobs (Gesamtgröße aller Blobs) 64 MB nicht überschreiten.
- Verwenden Sie z. B. den Operator "in".
Löschleistung
Nur eine Bereinigungsanforderung kann zu einem bestimmten Zeitpunkt auf dem Cluster ausgeführt werden. Alle anderen Anforderungen werden im Zustand in die Scheduled
Warteschlange gestellt.
Überwachen Sie die Größe der Bereinigungsanforderungswarteschlange, und halten Sie sich in angemessenen Grenzen, um die anforderungen für Ihre Daten zu erfüllen.
So reduzieren Sie die Bereinigungszeit:
Befolgen Sie die Bereinigungsrichtlinien , um die Menge der gelöschten Daten zu verringern.
Passen Sie die Zwischenspeicherungsrichtlinie an, da die Bereinigung länger für kalte Daten benötigt wird.
Skalieren des Clusters
Erhöhen Sie die Kapazität der Clusterbereinigung nach sorgfältiger Prüfung, wie in "Extents" beschrieben, um die Kapazität neu zu erstellen.
Auslösen des Bereinigungsprozesses
Hinweis
Die Bereinigungsausführung wird aufgerufen, indem der Befehl "TableName-Datensätze löschen" auf dem Datenverwaltung Endpunkt https://ingest-[YourClusterName].[ Region].kusto.windows.net.
Befehl 'TableName-Datensätze löschen'
Der Befehl "Löschen" kann auf zwei Arten für unterschiedliche Verwendungsszenarien aufgerufen werden:
Programmgesteuerter Aufruf: Ein einzelner Schritt, der von Anwendungen aufgerufen werden soll. Wenn Sie diesen Befehl aufrufen, wird die Bereinigungsausführungssequenz direkt ausgelöst.
Syntax
// Connect to the Data Management service #connect "https://ingest-[YourClusterName].[region].kusto.windows.net" // To purge table records .purge table [TableName] records in database [DatabaseName] with (noregrets='true') <| [Predicate] // To purge materialized view records .purge materialized-view [MaterializedViewName] records in database [DatabaseName] with (noregrets='true') <| [Predicate]
Menschliche Aufrufe: Ein zweistufiger Prozess, der eine explizite Bestätigung als separater Schritt erfordert. Der erste Aufruf des Befehls gibt ein Überprüfungstoken zurück, das zum Ausführen der tatsächlichen Bereinigung bereitgestellt werden soll. Diese Sequenz reduziert das Risiko, versehentlich falsche Daten zu löschen.
Hinweis
Der erste Schritt im zweistufigen Aufruf erfordert, dass eine Abfrage für das gesamte Dataset ausgeführt wird, um datensätze zu identifizieren, die gelöscht werden sollen.
Bei dieser Abfrage kann ein Timeout auftreten oder bei großen Tabellen fehlschlagen, insbesondere bei erheblicher Menge an Kaltcachedaten. Überprüfen Sie bei Fehlern das Prädikat selbst, und verwenden Sie nach der Überprüfung der Korrektheit die Einzelschrittbereinigung mit der noregrets
Option.
Syntax
Hinweis
Informationen zum Herstellen einer Verbindung mit einem Cluster mithilfe der Azure Data Explorer-Webbenutzeroberfläche finden Sie unter Hinzufügen von Clustern.
// Connect to the Data Management service - this command only works in Kusto.Explorer
#connect "https://ingest-[YourClusterName].[region].kusto.windows.net"
// Step #1 - retrieve a verification token (no records will be purged until step #2 is executed)
.purge table [TableName] records in database [DatabaseName] <| [Predicate]
// Step #2 - input the verification token to execute purge
.purge table [TableName] records in database [DatabaseName] with (verificationtoken=h'<verification token from step #1>') <| [Predicate]
Um eine materialisierte Ansicht zu löschen, ersetzen Sie das table
Schlüsselwort durch materialized-view
, und ersetzen Sie "TableName " durch " MaterializedViewName".
Parameter | Beschreibung |
---|---|
DatabaseName |
Name der Datenbank |
TableName / MaterializedViewName |
Name der tabellen-/materialisierten Ansicht, die gelöscht werden soll. |
Predicate |
Identifiziert die zu löschenden Datensätze. Siehe Bereinigungsbeschränkungen für Prädikate. |
noregrets |
Wenn dieser Wert festgelegt ist, wird eine Einzelschrittaktivierung ausgelöst. |
verificationtoken |
Im Szenario der zweistufigen Aktivierung (noregrets ist nicht festgelegt) kann dieses Token verwendet werden, um den zweiten Schritt auszuführen und die Aktion zu übernehmen. Wenn verificationtoken nicht angegeben, wird der erste Schritt des Befehls ausgelöst. Informationen zur Bereinigung werden mit einem Token zurückgegeben, das an den Befehl zurückgesendet werden soll, um Schritt 2 auszuführen. |
Bereinigen von Prädikatbeschränkungen
- Das Prädikat muss eine einfache Auswahl sein (z. B. wobei [ColumnName] == 'X' / , wobei [ColumnName] in ('X', 'Y', 'Z') und [OtherColumn] == 'A' angegeben ist).
- Mehrere Filter müssen mit einem "and" und nicht mit separaten
where
Klauseln kombiniert werden (z. Bwhere [ColumnName] == 'X' and OtherColumn] == 'Y'
. und nichtwhere [ColumnName] == 'X' | where [OtherColumn] == 'Y'
). - Das Prädikat kann nicht auf andere Tabellen als die zu löschende Tabelle (TableName) verweisen. Das Prädikat kann nur die Selection-Anweisung (
where
) enthalten. Bestimmte Spalten aus der Tabelle können nicht projiziert werden (Ausgabeschema beim Ausführen von 'table
| Prädikat muss mit dem Tabellenschema übereinstimmen). - Systemfunktionen (z
ingestion_time()
. B. ,extent_id()
) werden nicht unterstützt.
Beispiel: Löschung in zwei Schritten
Führen Sie Schritt 1 des Befehls aus, um mit der Bereinigung in einem Zwei-Schritt-Aktivierungsszenario zu beginnen:
// Connect to the Data Management service
#connect "https://ingest-[YourClusterName].[region].kusto.windows.net"
.purge table MyTable records in database MyDatabase <| where CustomerId in ('X', 'Y')
.purge materialized-view MyView records in database MyDatabase <| where CustomerId in ('X', 'Y')
Output
NumRecordsToPurge | EstimatedPurgeExecutionTime | VerificationToken |
---|---|---|
1\.596 | 00:00:02 | e43c7184ed22f4f23c7a9d7b124d196be2e570096987e5baadf65057fa65736b |
Überprüfen Sie dann die ZahlRecordsToPurge, bevor Sie Schritt 2 ausführen.
Um eine Bereinigung in einem Zwei-Schritt-Aktivierungsszenario abzuschließen, verwenden Sie das überprüfungstoken, das aus Schritt 1 zurückgegeben wurde, um Schritt #2 auszuführen:
.purge table MyTable records in database MyDatabase
with(verificationtoken=h'e43c7....')
<| where CustomerId in ('X', 'Y')
.purge materialized-view MyView records in database MyDatabase
with(verificationtoken=h'e43c7....')
<| where CustomerId in ('X', 'Y')
Output
OperationId |
DatabaseName |
TableName |
ScheduledTime |
Duration |
LastUpdatedOn |
EngineOperationId |
State |
StateDetails |
EngineStartTime |
EngineDuration |
Retries |
ClientRequestId |
Principal |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
c9651d74-3b80-4183-90bb-bbe9e42eadc4 | MyDatabase | MyTable | 2019-01-20 11:41:05.4391686 | 00:00:00.1406211 | 2019-01-20 11:41:05.4391686 | Geplant | 0 | KE. RunCommand; 1d0ad28b-f791-4f5a-a60f-0e32318367b7 | AAD app id=... |
Beispiel: Einzelschritt-Bereinigung
Führen Sie den folgenden Befehl aus, um eine Bereinigung in einem Einzelschrittaktivierungsszenario auszulösen:
// Connect to the Data Management service
#connect "https://ingest-[YourClusterName].[region].kusto.windows.net"
.purge table MyTable records in database MyDatabase with (noregrets='true') <| where CustomerId in ('X', 'Y')
.purge materialized-view MyView records in database MyDatabase with (noregrets='true') <| where CustomerId in ('X', 'Y')
Output
OperationId |
DatabaseName |
TableName |
ScheduledTime |
Duration |
LastUpdatedOn |
EngineOperationId |
State |
StateDetails |
EngineStartTime |
EngineDuration |
Retries |
ClientRequestId |
Principal |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
c9651d74-3b80-4183-90bb-bbe9e42eadc4 | MyDatabase | MyTable | 2019-01-20 11:41:05.4391686 | 00:00:00.1406211 | 2019-01-20 11:41:05.4391686 | Geplant | 0 | KE. RunCommand; 1d0ad28b-f791-4f5a-a60f-0e32318367b7 | AAD app id=... |
Befehl zum Abbrechen des Löschvorgangs
Bei Bedarf können Sie ausstehende Löschanforderungen abbrechen.
Hinweis
Dieser Vorgang ist für Fehlerwiederherstellungsszenarien vorgesehen. Es ist nicht garantiert, dass er erfolgreich ist und nicht Teil eines normalen Betriebsablaufs sein sollte. Sie kann nur auf Anforderungen angewendet werden, die sich noch in der Warteschlange befinden und noch nicht zur Ausführung verteilt wurden.
Syntax
// Cancel of a single purge operation
.cancel purge <OperationId>
// Cancel of all pending purge requests in a database
.cancel all purges in database <DatabaseName>
// Cancel of all pending purge requests, for all databases
.cancel all purges
Beispiel: Abbrechen eines einzelnen Bereinigungsvorgangs
.cancel purge aa894210-1c60-4657-9d21-adb2887993e1
Output
Die Ausgabe dieses Befehls entspricht der Befehlsausgabe "Bereinigungsvorgangs-ID anzeigen", die den aktualisierten Status des Löschvorgangs anzeigt, der abgebrochen wird.
Wenn der Versuch erfolgreich ist, wird der Vorgangszustand auf Canceled
. Andernfalls wird der Vorgangszustand nicht geändert.
OperationId |
DatabaseName |
TableName |
ScheduledTime |
Duration |
LastUpdatedOn |
EngineOperationId |
State |
StateDetails |
EngineStartTime |
EngineDuration |
Retries |
ClientRequestId |
Principal |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
c9651d74-3b80-4183-90bb-bbe9e42eadc4 | MyDatabase | MyTable | 2019-01-20 11:41:05.4391686 | 00:00:00.1406211 | 2019-01-20 11:41:05.4391686 | Abgebrochen | 0 | KE. RunCommand; 1d0ad28b-f791-4f5a-a60f-0e32318367b7 | AAD app id=... |
Beispiel: Abbrechen aller ausstehenden Löschvorgänge in einer Datenbank
.cancel all purges in database MyDatabase
Output
Die Ausgabe dieses Befehls entspricht der Anzeige der Befehlsausgabe zum Löschen von Löschvorgängen , wobei alle Vorgänge in der Datenbank mit dem aktualisierten Status angezeigt werden.
Vorgänge, die erfolgreich abgebrochen wurden, werden mit dem Status aktualisiert Canceled
. Andernfalls wird der Vorgangszustand nicht geändert.
OperationId |
DatabaseName |
TableName |
ScheduledTime |
Duration |
LastUpdatedOn |
EngineOperationId |
State |
StateDetails |
EngineStartTime |
EngineDuration |
Retries |
ClientRequestId |
Principal |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
5a34169e-8730-49f5-9694-7fde3a7a0139 | MyDatabase | MyTable | 2021-03-03 05:07:29.7050198 | 00:00:00.2971331 | 2021-03-03 05:07:30.0021529 | Abgebrochen | 0 | KE. RunCommand; 1d0ad28b-f791-4f5a-a60f-0e32318367b7 | AAD app id=... | ||||
2fa7c04c-6364-4ce1-a5e5-1ab921f518f5 | MyDatabase | MyTable | 2021-03-03 05:05:03.5035478 | 00:00:00.1406211 | 2021-03-03 05:05:03.6441689 | InProgress | 0 | KE. RunCommand; 1d0ad28b-f791-4f5a-a60f-0e32318367b7 | AAD app id=... |
Nachverfolgen des Bereinigungsvorgangsstatus
Hinweis
Löschvorgänge können mit dem Befehl zum Löschen der Anzeige nachverfolgt werden, der für den Datenverwaltung Endpunkt https://ingest-[YourClusterName][ region].kusto.windows.net.
Status = 'Abgeschlossen' gibt den erfolgreichen Abschluss der ersten Phase des Bereinigungsvorgangs an, d. h. Datensätze werden vorläufig gelöscht und sind nicht mehr für die Abfrage verfügbar. Kunden werden nicht erwartet, dass der Abschluss der zweiten Phase (endgültig gelöscht) nachverfolgt und überprüft wird. Diese Phase wird intern überwacht.
Befehl 'Bereinigungen anzeigen'
Show purges
Der Befehl zeigt den Bereinigungsvorgangsstatus an, indem die Vorgangs-ID innerhalb des angeforderten Zeitraums angegeben wird.
.show purges <OperationId>
.show purges [in database <DatabaseName>]
.show purges from '<StartDate>' [in database <DatabaseName>]
.show purges from '<StartDate>' to '<EndDate>' [in database <DatabaseName>]
Eigenschaften | Beschreibung | Obligatorisch/Optional |
---|---|---|
OperationId |
Die Datenverwaltung Vorgangs-ID, die nach der Ausführung einer einzelnen Phase oder zweiten Phase ausgegeben wurde. | Obligatorisch. |
StartDate |
Niedrigere Zeitlimit für Filtervorgänge. Wenn dieser Wert nicht angegeben wird, wird standardmäßig 24 Stunden vor der aktuellen Uhrzeit festgelegt. | Optional |
EndDate |
Obergrenze für Filtervorgänge. Wenn dieser Wert nicht angegeben wird, wird standardmäßig die aktuelle Uhrzeit verwendet. | Optional |
DatabaseName |
Datenbankname zum Filtern von Ergebnissen. | Optional |
Hinweis
Status wird nur für Datenbanken bereitgestellt, für die der Client über Berechtigungen für Datenbankadministratoren verfügt.
Beispiele
.show purges
.show purges c9651d74-3b80-4183-90bb-bbe9e42eadc4
.show purges from '2018-01-30 12:00'
.show purges from '2018-01-30 12:00' to '2018-02-25 12:00'
.show purges from '2018-01-30 12:00' to '2018-02-25 12:00' in database MyDatabase
Output
OperationId |
DatabaseName |
TableName |
ScheduledTime |
Duration |
LastUpdatedOn |
EngineOperationId |
State |
StateDetails |
EngineStartTime |
EngineDuration |
Retries |
ClientRequestId |
Principal |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
c9651d74-3b80-4183-90bb-bbe9e42eadc4 | MyDatabase | MyTable | 2019-01-20 11:41:05.4391686 | 00:00:33.6782130 | 2019-01-20 11:42:34.6169153 | a0825d4d-6b0f-47f3-a499-54ac5681ab78 | Abgeschlossen | Löschvorgang erfolgreich abgeschlossen (Speicherartefakte, die ausstehend gelöscht werden) | 2019-01-20 11:41:34.6486506 | 00:00:04.4687310 | 0 | KE. RunCommand; 1d0ad28b-f791-4f5a-a60f-0e32318367b7 | AAD app id=... |
OperationId
- die DM-Vorgangs-ID, die beim Ausführen der Bereinigung zurückgegeben wird.DatabaseName
** - Datenbankname (Groß-/Kleinschreibung wird beachtet).TableName
- Tabellenname (Groß-/Kleinschreibung wird beachtet).ScheduledTime
- Zeitpunkt der Ausführung des Bereinigungsbefehls für den DM-Dienst.Duration
- Gesamtdauer des Bereinigungsvorgangs, einschließlich der Wartezeit der DM-Ausführungswarteschlange.EngineOperationId
- die Vorgangs-ID der tatsächlichen Bereinigung, die im Modul ausgeführt wird.State
- Bereinigungszustand kann einer der folgenden Werte sein:Scheduled
- Der Löschvorgang wird für die Ausführung geplant. Wenn der Auftrag weiterhin geplant ist, gibt es wahrscheinlich einen Backlog von Bereinigungsvorgängen. Sehen Sie sich die Bereinigungsleistung an, um diesen Backlog zu löschen. Wenn ein Bereinigungsvorgang bei einem vorübergehenden Fehler fehlschlägt, wird er von der DM wiederholt und erneut auf "Geplant" festgelegt (daher wird möglicherweise ein Vorgangsübergang von "Geplant" zu "InProgress" und "Zurück zu Geplant" angezeigt).InProgress
- der Bereinigungsvorgang wird im Modul ausgeführt.Completed
- Löschvorgang erfolgreich abgeschlossen.BadInput
- Fehler beim Löschen bei fehlerhafter Eingabe und wird nicht wiederholt. Dieser Fehler kann auf verschiedene Probleme zurückzuführen sein, z. B. ein Syntaxfehler im Prädikat, ein unzulässiges Prädikat für Löschbefehle, eine Abfrage, die Grenzwerte überschreitet (z. B. über 1M-Entitäten in einemexternaldata
Operator oder über 64 MB gesamt erweiterter Abfragegröße), und 404- oder 403-Fehler fürexternaldata
Blobs.Failed
- Fehler beim Löschen und wird nicht wiederholt. Dieser Fehler kann auftreten, wenn der Vorgang aufgrund eines Backlogs anderer Bereinigungsvorgänge oder einer Reihe von Fehlern, die den Wiederholungsgrenzwert überschreiten, zu lange (über 14 Tage) in der Warteschlange wartete. Letzteres löst eine interne Überwachungswarnung aus und wird vom Team untersucht.
StateDetails
- eine Beschreibung des Staates.EngineStartTime
- die Zeit, zu der der Befehl für das Modul ausgestellt wurde. Wenn zwischen dieser Zeit und ScheduledTime ein großer Unterschied besteht, gibt es in der Regel einen erheblichen Rückstau von Bereinigungsvorgängen, und der Cluster hält nicht mit dem Tempo schritt.EngineDuration
- Zeit der tatsächlichen Bereinigungsausführung im Modul. Wenn die Bereinigung mehrmals wiederholt wurde, ist dies die Summe aller Ausführungsdauern.Retries
- Anzahl der Wiederholungen des Vorgangs durch den DM-Dienst aufgrund eines vorübergehenden Fehlers.ClientRequestId
– Clientaktivitäts-ID der DM-Löschanforderung.Principal
- Identität des Herausgebers des Bereinigungsbefehls.
Löschen einer gesamten Tabelle
Das Löschen einer Tabelle umfasst das Ablegen der Tabelle und das Markieren der Tabelle als gelöscht, sodass der im Löschvorgang beschriebene Endgültiglöschvorgang darauf ausgeführt wird.
Wenn Sie eine Tabelle ablegen, ohne sie zu löschen, werden nicht alle Speicherartefakte gelöscht. Diese Artefakte werden gemäß der endgültigen Aufbewahrungsrichtlinie gelöscht, die ursprünglich für die Tabelle festgelegt wurde.
Der purge table allrecords
Befehl ist schnell und effizient und ist dem Bereinigungsprozess von Datensätzen vorzuziehen, falls zutreffend für Ihr Szenario.
Hinweis
Der Befehl wird aufgerufen, indem der Befehl zum Löschen der Tabelle "TableName allrecords" auf dem Datenverwaltung Endpunkt https://ingest-[YourClusterName].[ region].kusto.windows.net.
Tabellentabellenname für alle Datensatze löschen
Ähnlich wie der Befehl '.purge table records ' kann dieser Befehl in einem programmgesteuerten (einzelstufigen) oder in einem manuellen Modus (zweiStufige) aufgerufen werden.
Programmgesteuerter Aufruf (Einzelschritt):
Syntax
// Connect to the Data Management service #connect "https://ingest-[YourClusterName].[Region].kusto.windows.net" .purge table [TableName] in database [DatabaseName] allrecords with (noregrets='true')
Menschliche Aufrufe (zwei Schritte):
Syntax
// Connect to the Data Management service #connect "https://ingest-[YourClusterName].[Region].kusto.windows.net" // Step #1 - retrieve a verification token (the table will not be purged until step #2 is executed) .purge table [TableName] in database [DatabaseName] allrecords // Step #2 - input the verification token to execute purge .purge table [TableName] in database [DatabaseName] allrecords with (verificationtoken=h'<verification token from step #1>')
Parameter Beschreibung DatabaseName
Der Name der Datenbank. TableName
Name der Tabelle. noregrets
Wenn dieser Wert festgelegt ist, wird eine Einzelschrittaktivierung ausgelöst. verificationtoken
In Zwei-Schritt-Aktivierungsszenario ( noregrets
ist nicht festgelegt) kann dieses Token verwendet werden, um den zweiten Schritt auszuführen und die Aktion zu übernehmen. Wennverificationtoken
nicht angegeben, wird der erste Schritt des Befehls ausgelöst. In diesem Schritt wird ein Token zurückgegeben, um zurück an den Befehl zu übergeben und Schritt 2 auszuführen.
Beispiel: Löschung in zwei Schritten
Führen Sie Schritt 1 des Befehls aus, um mit der Bereinigung in einem Zwei-Schritt-Aktivierungsszenario zu beginnen:
// Connect to the Data Management service #connect "https://ingest-[YourClusterName].[Region].kusto.windows.net" .purge table MyTable in database MyDatabase allrecords
Output
VerificationToken
e43c7184ed22f4f23c7a9d7b124d196be2e570096987e5baadf65057fa65736b Um eine Bereinigung in einem Zwei-Schritt-Aktivierungsszenario abzuschließen, verwenden Sie das überprüfungstoken, das aus Schritt 1 zurückgegeben wurde, um Schritt #2 auszuführen:
.purge table MyTable in database MyDatabase allrecords with (verificationtoken=h'eyJT.....')
Die Ausgabe entspricht der Befehlsausgabe ".show tables" (zurückgegeben ohne die gelöschte Tabelle).
Output
TableName DatabaseName Ordner DocString OtherTable MyDatabase --- ---
Beispiel: Einzelschritt-Bereinigung
Führen Sie den folgenden Befehl aus, um eine Bereinigung in einem Einzelschrittaktivierungsszenario auszulösen:
// Connect to the Data Management service
#connect "https://ingest-[YourClusterName].[Region].kusto.windows.net"
.purge table MyTable in database MyDatabase allrecords with (noregrets='true')
Die Ausgabe entspricht der Befehlsausgabe ".show tables" (zurückgegeben ohne die gelöschte Tabelle).
Output
TableName | DatabaseName | Ordner | DocString |
---|---|---|---|
OtherTable | MyDatabase | --- | --- |