Datenbereinigung
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.
Als Datenplattform unterstützt Azure Data Explorer 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 in anderen Szenarien nicht verwendet werden. Es ist nicht für die Unterstützung häufiger Löschanforderungen oder das Löschen großer Datenmengen konzipiert und kann erhebliche Auswirkungen auf die Leistung des Diensts haben.
Richtlinien zur Bereinigung
Entwerfen Sie Ihr Datenschema sorgfältig, und untersuchen Sie relevante Richtlinien, bevor Sie personenbezogene Daten in Azure Data Explorer speichern.
- Im besten Fall ist der Aufbewahrungszeitraum für diese Daten ausreichend kurz, und die Daten werden automatisch gelöscht.
- Wenn die Nutzung des Aufbewahrungszeitraums nicht möglich ist, isolieren Sie alle Daten, die Datenschutzregeln unterliegen, in einigen Azure Data Explorer-Tabellen. Optimalerweise verwenden Sie nur eine Tabelle, und verknüpfen Sie sie aus allen anderen Tabellen. Diese Isolation ermöglicht es Ihnen, den Datenlöschprozess für einige Tabellen mit vertraulichen Daten auszuführen und alle anderen Tabellen zu vermeiden.
- Der Aufrufer sollte jeden Versuch unternehmen, die Ausführung von
.purge
Befehlen in 1 bis 2 Befehle pro Tabelle und Tag zu batchen. Geben 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.
Löschprozess
Das selektive Löschen von Daten aus Azure Data Explorer erfolgt in den folgenden Schritten:
Phase 1: Geben Sie eine Eingabe mit einem Azure Data Explorer Tabellennamen und einem Prädikat pro Datensatz an, der angibt, welche Datensätze gelöscht werden sollen. Kusto scannt die Tabelle, um Datenblöcke zu identifizieren, die an der Datenbereinigung beteiligt sind. Bei den identifizierten Blöcken handelt es sich um Blöcke mit einem oder mehreren Datensätzen, für die das Prädikat true zurückgibt.
Phase 2: (Vorläufiges Löschen) Ersetzen Sie jeden Datenumfang in der Tabelle (identifiziert in Schritt (1)) durch eine neu erfasste Version. Die neu erfasste Version sollte nicht über die Datensätze verfügen, für die das Prädikat true zurückgibt. Wenn keine neuen Daten in der Tabelle erfasst werden, geben Abfragen am Ende dieser Phase keine Daten mehr zurück, für die das Prädikat true zurückgibt. Die Dauer der Phase des vorläufigen Löschens hängt von den folgenden Parametern ab:
- Die Anzahl der Datensätze, die gelöscht werden müssen
- Datensatzverteilung über die Datenblöcke im Cluster
- Die Anzahl der Knoten im Cluster
- Die freie Kapazität, über die es für Löschvorgänge verfügt
- Mehrere andere Faktoren
Die Dauer von Phase 2 kann zwischen einigen Sekunden und vielen Stunden variieren.
Phase 3: (Hartes Löschen) Arbeiten Sie alle Speicherartefakte zurück, die möglicherweise die "vergifteten" Daten enthalten, und löschen Sie sie aus dem Speicher. Diese Phase erfolgt mindestens fünf Tage nach Abschluss der vorherigen Phase, jedoch nicht länger als 30 Tage nach dem ersten Befehl. Diese Zeitachsen sind so festgelegt, dass sie den Datenschutzanforderungen entsprechen.
Das Ausgeben eines .purge
Befehls löst diesen Prozess aus, der einige Tage dauert. Wenn die Dichte der Datensätze, für die das Prädikat gilt, ausreichend groß ist, erfasst der Prozess effektiv alle Daten in der Tabelle. Diese Wiederaufnahme hat erhebliche Auswirkungen auf die Leistung und die COGS (Kosten der verkauften Waren).
Bereinigen von Einschränkungen und Überlegungen
Der Bereinigungsvorgang ist endgültig und kann nicht rückgängig gemacht werden. Es ist nicht möglich, diesen Prozess rückgängig zu machen oder Daten wiederherzustellen, die gelöscht wurden. Mithilfe von Befehlen wie dem Löschen rückgängiger Tabellen können gelöschte Daten nicht wiederhergestellt werden. Das Rollback der Daten auf eine frühere Version kann vor dem letzten Löschbefehl nicht zu wechseln.
Ü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 sollen.
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 Leistung des Bereinigungsprozesses und um sicherzustellen, dass die Bereinigungsrichtlinien eingehalten wurden, wird erwartet, dass der Aufrufer das Datenschema so ändert, dass minimale Tabellen relevante Daten und Batchbefehle pro Tabelle enthalten, um die erheblichen COGS-Auswirkungen des Löschprozesses 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 beschränkt. Beim Erstellen vonpredicate
:- Verwenden Sie den Operator "in", z. B
where [ColumnName] in ('Id1', 'Id2', .. , 'Id1000')
. . - Beachten Sie die Grenzwerte des "in"-Operators (Liste kann bis zu
1,000,000
Werte enthalten). - Wenn die Abfragegröße groß ist, verwenden Sie
externaldata
den Operator, z. Bwhere UserId in (externaldata(UserId:string) ["https://...blob.core.windows.net/path/to/file?..."])
. . In der Datei wird die Liste der zu löschenden IDs gespeichert. - Die Gesamtabfragegröße darf nach dem Erweitern aller
externaldata
Blobs (Gesamtgröße aller Blobs) 64 MB nicht überschreiten.
- Verwenden Sie den Operator "in", z. B
Bereinigung der Leistung
Für den Cluster kann zu einem bestimmten Zeitpunkt nur eine Bereinigungsanforderung ausgeführt werden. Alle anderen Anforderungen werden im Zustand in die Scheduled
Warteschlange eingereiht.
Überwachen Sie die Größe der Löschanforderungswarteschlange, und halten Sie sich innerhalb angemessener Grenzen, um die für Ihre Daten geltenden Anforderungen zu erfüllen.
So verringern Sie die Ausführungszeit für die Bereinigung:
Befolgen Sie die Bereinigungsrichtlinien , um die Menge der gelöschten Daten zu verringern.
Passen Sie die Zwischenspeicherungsrichtlinie an, da die Bereinigung für kalte Daten länger dauert.
Horizontales Hochskalieren des Clusters
Erhöhen Sie die Clusterbereinigungskapazität nach sorgfältiger Abwägung, wie unter Löschkapazität für die Wiederherstellung von Blöcken beschrieben.
Auslösen des Bereinigungsprozesses
Hinweis
Die Bereinigungsausführung wird durch Ausführen des Tabellenlöschbefehls TableName records auf dem Datenverwaltung Endpunkt https://ingest-[YourClusterName][ aufgerufen. Region].kusto.windows.net.
Befehl " TableName records" bereinigen
Der Befehl "Bereinigen" kann für unterschiedliche Verwendungsszenarien auf zwei Arten aufgerufen werden:
Programmgesteuerter Aufruf: Ein einzelner Schritt, der von Anwendungen aufgerufen werden soll. Wenn Sie diesen Befehl direkt aufrufen, wird eine Löschausführungssequenz 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]
Aufruf durch eine Person: Ein zweistufiger Prozess, für den als separater Schritt eine explizite Bestätigung erforderlich ist. Der erste Aufruf des Befehls gibt ein Überprüfungstoken zurück, das zum Ausführen der eigentlichen Bereinigung bereitgestellt werden sollte. Diese Sequenz verringert das Risiko, dass versehentlich falsche Daten gelöscht werden.
Hinweis
Im ersten Schritt des zweistufigen Aufrufs muss eine Abfrage für das gesamte Dataset ausgeführt werden, um zu löschende Datensätze zu identifizieren.
Für diese Abfrage kann ein Timeout oder ein Fehler bei großen Tabellen auftreten, insbesondere bei einer erheblichen Menge an Kaltcachedaten. Überprüfen Sie im Falle von Fehlern das Prädikat selbst, und verwenden Sie nach der Überprüfung der Richtigkeit die einstufige Bereinigung mit der noregrets
Option.
Syntax
Hinweis
Informationen zum Herstellen einer Verbindung mit einem Cluster über die Azure Data Explorer-Weboberflä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 Sicht zu bereinigen, ersetzen Sie die table
Schlüsselwort (keyword) durch materialized-view
, und ersetzen Sie TableName durch MaterializedViewName.
Parameter | BESCHREIBUNG |
---|---|
DatabaseName |
Name der Datenbank |
TableName / MaterializedViewName |
Name der tabelle/materialisierten Sicht, die gelöscht werden soll. |
Predicate |
Identifiziert die zu bereinigenden Datensätze. Weitere Informationen finden Sie unter Einschränkungen für Das Bereinigen von Prädikaten. |
noregrets |
Wenn festgelegt, wird eine Aktivierung in einem einzelnen Schritt 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 committen. Wenn verificationtoken nicht angegeben ist, wird der erste Schritt des Befehls ausgelöst. Informationen zur Bereinigung werden mit einem Token zurückgegeben, das an den Befehl zurückgegeben werden soll, um Schritt 2 auszuführen. |
Einschränkungen beim Bereinigen von Prädikaten
- Das Prädikat muss eine einfache Auswahl sein (z. B. wobei [ColumnName] == 'X'where / [ColumnName] in ('X', 'Y', 'Z') und [OtherColumn] == 'A').
- Mehrere Filter müssen mit einem "und" kombiniert werden, anstatt separate
where
Klauseln (z. B.where [ColumnName] == 'X' and OtherColumn] == 'Y'
und nichtwhere [ColumnName] == 'X' | where [OtherColumn] == 'Y'
). - Das Prädikat kann nicht auf andere Tabellen als die tabelle verweisen, die gelöscht wird (TableName). Das Prädikat kann nur die Auswahl-Anweisung (
where
) enthalten. Es kann keine bestimmten Spalten aus der Tabelle projizieren (Ausgabeschema bei Ausführung von 'table
| Prädikat' muss mit dem Tabellenschema übereinstimmen). - Systemfunktionen (z. B.
ingestion_time()
,extent_id()
) werden nicht unterstützt.
Beispiel: Zweistufige Bereinigung
Führen Sie Schritt 1 des Befehls aus, um die Bereinigung in einem zweistufigen Aktivierungsszenario zu starten:
// 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')
Ausgabe
NumRecordsToPurge | EstimatedPurgeExecutionTime | VerificationToken |
---|---|---|
1\.596 | 00:00:02 | e43c7184ed22f4f23c7a9d7b124d196be2e570096987e5baadf65057fa65736b |
Überprüfen Sie dann numRecordsToPurge, bevor Sie Schritt 2 ausführen.
Um eine Bereinigung in einem zweistufigen Aktivierungsszenario abzuschließen, verwenden Sie das aus Schritt 1 zurückgegebene Überprüfungstoken, 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')
Ausgabe
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. Ausführenbefehl; 1d0ad28b-f791-4f5a-a60f-0e32318367b7b7 | AAD app id=... |
Beispiel: Einstufiges Löschen
Führen Sie den folgenden Befehl aus, um eine Bereinigung in einem einstufigen Aktivierungsszenario 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')
Ausgabe
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. Ausführenbefehl; 1d0ad28b-f791-4f5a-a60f-0e32318367b7b7 | AAD app id=... |
Befehl "Löschvorgang abbrechen"
Bei Bedarf können Sie ausstehende Löschanforderungen abbrechen.
Hinweis
Dieser Vorgang ist für Fehlerwiederherstellungsszenarien vorgesehen. Der Erfolg ist nicht garantiert und sollte nicht Teil eines normalen Betriebsablaufs sein. Es kann nur auf Anforderungen angewendet werden, die sich noch in der Warteschlange befinden und noch nicht zur Ausführung gesendet 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
Ausgabe
Die Ausgabe dieses Befehls ist identisch mit der Befehlsausgabe "Show purges OperationId" und zeigt die aktualisierte status des abgebrochenen Löschvorgangs an.
Wenn der Versuch erfolgreich ist, wird der Vorgangsstatus auf Canceled
aktualisiert. Andernfalls wird der Vorgangsstatus 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 | Canceled | 0 | KE. Ausführenbefehl; 1d0ad28b-f791-4f5a-a60f-0e32318367b7b7 | AAD app id=... |
Beispiel: Abbrechen aller ausstehenden Bereinigungsvorgänge in einer Datenbank
.cancel all purges in database MyDatabase
Ausgabe
Die Ausgabe dieses Befehls ist identisch mit der Ausgabe des Befehls "Löschvorgänge anzeigen" und zeigt alle Vorgänge in der Datenbank mit ihren aktualisierten status an.
Vorgänge, die erfolgreich abgebrochen wurden, werden ihre status auf Canceled
aktualisiert. Andernfalls wird der Vorgangsstatus 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 | Canceled | 0 | KE. Ausführenbefehl; 1d0ad28b-f791-4f5a-a60f-0e32318367b7b7 | 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. Ausführenbefehl; 1d0ad28b-f791-4f5a-a60f-0e32318367b7b7 | AAD app id=... |
Nachverfolgen des Löschvorgangs status
Hinweis
Löschvorgänge können mit dem Befehl show purges nachverfolgt werden, der für den Datenverwaltung Endpunkt https://ingest-[YourClusterName][ ausgeführt wird. region].kusto.windows.net.
Status = "Abgeschlossen" gibt an, dass die erste Phase des Löschvorgangs erfolgreich abgeschlossen wurde, d. h. Datensätze werden vorläufig gelöscht und stehen nicht mehr für Abfragen zur Verfügung. Es wird nicht erwartet, dass Kunden den Abschluss der zweiten Phase (hartes Löschen) nachverfolgen und überprüfen. Diese Phase wird intern von Azure Data Explorer überwacht.
Befehl "Löschungen anzeigen"
Show purges
zeigt den Löschvorgang status 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 dem Ausführen einer einzelnen oder zweiten Phase ausgegeben wird. | Obligatorisch. |
StartDate |
Niedrigeres Zeitlimit für Filtervorgänge. Wenn nicht angegeben, wird standardmäßig 24 Stunden vor dem aktuellen Zeitpunkt angegeben. | Optional |
EndDate |
Oberes Zeitlimit für Filtervorgänge. Wenn die Angabe ausgelassen wird, wird standardmäßig die aktuelle Zeit verwendet. | Optional |
DatabaseName |
Datenbankname zum Filtern von Ergebnissen. | Optional |
Hinweis
Der Status wird nur für Datenbanken bereitgestellt, für die der Client über Datenbank-Admin-Berechtigungen 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
Ausgabe
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 | Die Bereinigung wurde erfolgreich abgeschlossen (Speicherartefakte stehen aus, die gelöscht werden) | 2019-01-20 11:41:34.6486506 | 00:00:04.4687310 | 0 | KE. Ausführenbefehl; 1d0ad28b-f791-4f5a-a60f-0e32318367b7b7 | AAD app id=... |
OperationId
– die DM-Vorgangs-ID, die beim Ausführen der Bereinigung zurückgegeben wird.DatabaseName
** – Datenbankname (Groß-/Kleinschreibung beachten).TableName
– Tabellenname (Groß-/Kleinschreibung beachten).ScheduledTime
– Zeitpunkt der Ausführung des Löschbefehls für den DM-Dienst.Duration
– Gesamtdauer des Bereinigungsvorgangs, einschließlich der Wartezeit der Dm-Warteschlange für die Ausführung.EngineOperationId
: Die Vorgangs-ID der tatsächlichen Bereinigung, die in der Engine ausgeführt wird.State
- Löschzustand, kann einer der folgenden Werte sein:Scheduled
- Der Löschvorgang wird für die Ausführung geplant. Wenn der Auftrag geplant bleibt, liegt wahrscheinlich ein Backlog von Löschvorgängen vor. Informationen zum Löschen dieses Backlogs finden Sie unter Bereinigungsleistung . Wenn ein Bereinigungsvorgang aufgrund eines vorübergehenden Fehlers fehlschlägt, wird er von der DM wiederholt und erneut auf Geplant festgelegt (sodass möglicherweise ein Vorgangsübergang von Geplant zu InProgress und zurück zu Geplant angezeigt wird).InProgress
– Der Bereinigungsvorgang wird in der Engine ausgeführt.Completed
– Die Bereinigung wurde erfolgreich abgeschlossen.BadInput
– Fehler beim Bereinigen 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 illegales Prädikat für Löschbefehle, eine Abfrage, die Grenzwerte überschreitet (z. B. mehr als 1 Mio. Entitäten in einemexternaldata
Operator oder mehr als 64 MB erweiterte Abfragegröße) und 404 oder 403 Fehler fürexternaldata
Blobs.Failed
– Fehler beim Bereinigen und wird nicht wiederholt. Dieser Fehler kann auftreten, wenn der Vorgang zu lange (über 14 Tage) in der Warteschlange gewartet hat, aufgrund eines Backlogs anderer Bereinigungsvorgänge oder einer Reihe von Fehlern, die den Wiederholungsgrenzwert überschreiten. Letzteres löst eine interne Überwachungswarnung aus und wird vom Azure Data Explorer-Team untersucht.
StateDetails
- eine Beschreibung des Staates.EngineStartTime
– die Zeit, zu der der Befehl an die Engine ausgegeben wurde. Wenn es einen großen Unterschied zwischen dieser Zeit und ScheduledTime gibt, gibt es in der Regel einen erheblichen Rückstand von Löschvorgängen, und der Cluster hält mit dem Tempo nicht Schritt.EngineDuration
- Zeit der tatsächlichen Bereinigungsausführung in der Engine. 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-Bereinigungsanforderung.Principal
– Identität des Ausstellers des Löschbefehls.
Bereinigen einer gesamten Tabelle
Das Bereinigen einer Tabelle umfasst das Löschen der Tabelle und das Markieren als gelöscht, sodass der unter Löschen des Prozesses beschriebene Prozess zum endgültigen Löschen darauf ausgeführt wird.
Wenn Sie eine Tabelle löschen, ohne sie zu bereinigen, werden nicht alle zugehörigen Speicherartefakte gelöscht. Diese Artefakte werden gemäß der richtlinie für die feste Aufbewahrung 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 für Ihr Szenario zutreffend.
Hinweis
Der Befehl wird aufgerufen, indem der Befehl TableName allrecords für die Löschtabelle auf dem Datenverwaltung Endpunkt https://ingest-[YourClusterName][ ausgeführt wird. region].kusto.windows.net.
Befehl " TableName allrecords" bereinigen
Ähnlich wie beim Befehl '.purge table records ' kann dieser Befehl in einem programmgesteuerten (einstufigen) oder in einem manuellen (zweistufigen) Modus aufgerufen werden.
Programmgesteuerter Aufruf (einzelschrittig):
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')
Aufruf des Menschen (in zwei Schritten):
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
Der Name der Tabelle. noregrets
Wenn festgelegt, wird eine Aktivierung in einem einzelnen Schritt ausgelöst. verificationtoken
Im Szenario mit der zweistufigen Aktivierung ( noregrets
ist nicht festgelegt) kann dieses Token verwendet werden, um den zweiten Schritt auszuführen und die Aktion zu committen. Wennverificationtoken
nicht angegeben ist, wird der erste Schritt des Befehls ausgelöst. In diesem Schritt wird ein Token zurückgegeben, um an den Befehl zurückzugeben und Schritt 2 auszuführen.
Beispiel: Zweistufige Bereinigung
Um die Bereinigung in einem zweistufigen Aktivierungsszenario zu starten, führen Sie Schritt 1 des Befehls aus:
// Connect to the Data Management service #connect "https://ingest-[YourClusterName].[Region].kusto.windows.net" .purge table MyTable in database MyDatabase allrecords
Ausgabe
VerificationToken
e43c7184ed22f4f23c7a9d7b124d196be2e570096987e5baadf65057fa65736b Um eine Bereinigung in einem zweistufigen Aktivierungsszenario abzuschließen, verwenden Sie das aus Schritt 1 zurückgegebene Überprüfungstoken, 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).
Ausgabe
TableName DatabaseName Ordner DocString OtherTable MyDatabase --- ---
Beispiel: Einstufiges Löschen
Führen Sie den folgenden Befehl aus, um eine Bereinigung in einem einstufigen Aktivierungsszenario 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).
Ausgabe
TableName | DatabaseName | Ordner | DocString |
---|---|---|---|
OtherTable | MyDatabase | --- | --- |
Verwandte Inhalte
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für