.delete table records – příkaz obnovitelného odstranění
Platí pro: ✅Azure Data Explorer
Pokud chcete obnovitelné odstranění jednotlivých záznamů bez systémové záruky, že artefakty úložiště obsahující tyto záznamy se odstraní, použijte následující příkaz. Tento příkaz označí záznamy jako odstraněné, ale nemusí nutně odstranit data z artefaktů úložiště. Další informace najdete v tématu Obnovitelné odstranění.
Pokud chcete odstranit jednotlivé záznamy se zárukou systému, že se odstraní i artefakty úložiště obsahující tyto záznamy, přečtěte si téma Vymazání dat.
Syntaxe
.delete
[async
] table
TableName records
[with
(
propertyName =
propertyValue [,
...]] <|
)
Predikát
Přečtěte si další informace o konvencích syntaxe.
Parametry
Název | Type | Požadováno | Popis |
---|---|---|---|
async |
string |
Pokud je zadáno, znamená to, že příkaz běží v asynchronním režimu. | |
TableName | string |
✔️ | Název tabulky, ze které chcete odstranit záznamy. |
propertyName, propertyValue | string |
Čárkami oddělený seznam párů vlastností klíč-hodnota. Viz podporované vlastnosti. | |
Predikát | string |
✔️ | Predikát, který vrací záznamy k odstranění, který je zadaný jako dotaz. Viz poznámka. |
Poznámka:
Pro predikát platí následující omezení:
- Predikát by měl mít alespoň jeden
where
operátor. - Predikát může používat pouze následující operátory:
extend
where
aproject
. - Predikát nemůže použít
externaldata
.
Podporované vlastnosti
Name | Typ | Popis |
---|---|---|
whatif |
bool |
Pokud true vrátí počet záznamů, které budou odstraněny v každém horizontálním oddílu, aniž by se skutečně odstranily žádné záznamy. Výchozí hodnota je false . |
Návraty
Výstup příkazu obsahuje informace o tom, které rozsahy byly nahrazeny.
Příklad: Odstranění záznamů daného uživatele
Odstranění všech záznamů obsahujících data daného uživatele:
.delete table MyTable records <| MyTable | where UserId == 'X'
Příklad: Kontrola, kolik záznamů by bylo odstraněno z tabulky
Pokud chcete určit počet záznamů, které by operace odstranila, aniž by je skutečně odstranila, zkontrolujte hodnotu ve sloupci RecordsMatchPredicate při spuštění příkazu v whatif
režimu:
.delete table MyTable records with (whatif=true) <| MyTable | where UserId == 'X'
.delete materialized-view records - soft delete command
Při obnovitelném odstranění v materializovaných zobrazeních platí stejné koncepty a omezení.
Syntaxe – materializovaná zobrazení
.delete
[async
] materialized-view
MaterializedViewName records
[with
(
propertyName =
propertyValue [,
...]] <|
)
Predikát
Přečtěte si další informace o konvencích syntaxe.
Parametry – materializovaná zobrazení
Name | Type | Požadováno | Popis |
---|---|---|---|
async |
string |
Pokud je zadáno, znamená to, že příkaz běží v asynchronním režimu. | |
MaterializedViewName | string |
✔️ | Název materializovaného zobrazení, ze kterého chcete odstranit záznamy. |
propertyName, propertyValue | string |
Čárkami oddělený seznam párů vlastností klíč-hodnota. Viz podporované vlastnosti. | |
Predikát | string |
✔️ | Predikát, který vrací záznamy k odstranění. Zadáno jako dotaz. |
Poznámka:
Stejná omezení pro predikát uvedený pro tabulku platí i zde. Obnovitelné odstranění může selhat v případě konfliktů s procesem materializace spuštěným na pozadí. Opakování operace může v tomto případě pomoct. Abyste se vyhnuli konfliktům, můžete před spuštěním obnovitelného odstranění zakázat materializované zobrazení a po dokončení operace ho znovu povolit. Použití funkce materialized_view() není v predikátu povoleno.
Podporované vlastnosti – materializovaná zobrazení
Name | Typ | Popis |
---|---|---|
whatif |
bool |
Pokud true vrátí počet záznamů, které budou odstraněny v každém horizontálním oddílu, aniž by se skutečně odstranily žádné záznamy. Výchozí hodnota je false . |
Příklad – materializovaná zobrazení
Odstranění všech materializovaných záznamů zobrazení obsahujících data daného uživatele:
.delete materialized-view MyMaterializedView records <| MyMaterializedView | where UserId == 'X'
Příklad: Kontrola, kolik záznamů by bylo odstraněno z materializovaného zobrazení
Pokud chcete určit počet záznamů, které by operace odstranila, aniž by je skutečně odstranila, zkontrolujte hodnotu ve sloupci RecordsMatchPredicate při spuštění příkazu v whatif
režimu:
.delete materialized-view MyMaterializedView records with (whatif=true) <| MyMaterializedView | where UserId == 'X'