Sdílet prostřednictvím


.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: extendwhere a project.
  • Predikát nemůže použít externaldata.

Podporované vlastnosti

Name Typ Popis
whatif bool Pokud truevrá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 truevrá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'