Sdílet prostřednictvím


Přehled obnovitelného odstranění

Platí pro: ✅Azure Data Explorer

Podporuje se možnost odstranit jednotlivé záznamy. Odstranění záznamu se běžně dosahuje jedním z následujících způsobů:

  • Pokud chcete odstranit záznamy se zárukou systému, že se odstraní i artefakty úložiště obsahující tyto záznamy, použijte .purge
  • Pokud chcete odstranit záznamy bez takové záruky, použijte .delete , jak je popsáno v tomto článku – tento příkaz označí záznamy jako odstraněné, ale nemusí nutně odstranit data z artefaktů úložiště. Tato metoda odstranění je rychlejší než vyprázdnění.

Informace o použití příkazu najdete v tématu Syntaxe.

Případy použití

Tato metoda odstranění by měla být použita pouze pro neplánované odstranění jednotlivých záznamů. Pokud například zjistíte, že zařízení IoT hlásí poškozenou telemetrii nějakou dobu, měli byste zvážit použití této metody k odstranění poškozených dat.

Pokud potřebujete často odstraňovat záznamy pro odstranění duplicit nebo aktualizací, doporučujeme použít materializovaná zobrazení. Pro odstranění duplicitních dat si můžete vybrat mezi materializovanými zobrazeními a obnovitelné odstranění.

Proces odstranění

Proces obnovitelného odstranění se provádí pomocí následujících kroků:

  1. Spustit predikát dotaz: Tabulka se zkontroluje, aby identifikovala rozsahy dat obsahující záznamy, které se mají odstranit. Zjištěné rozsahy jsou ty, které mají jeden nebo více záznamů vrácených predikátovým dotazem.
  2. Nahrazení rozsahů: Zjištěné rozsahy se nahradí novými rozsahy, které odkazují na původní objekty blob dat, a mají také nový skrytý sloupec typu bool , který označuje každý záznam, zda byl odstraněn nebo ne. Po dokončení dotaz predikát nevrátí žádné nové údaje, pokud se znovu spustí.

Omezení a důležité informace

  • Proces odstranění je konečný a nevratný. Tento proces není možné vrátit zpět ani obnovit odstraněná data, i když artefakty úložiště nejsou nutně odstraněny po operaci.

  • Obnovitelné odstranění je podporováno pro nativní tabulky a materializovaná zobrazení. Nepodporuje se u externích tabulek.

  • Před spuštěním obnovitelného odstranění ověřte predikát spuštěním dotazu a kontrolou, že výsledky odpovídají očekávanému výsledku. Můžete také spustit příkaz v whatif režimu, který vrátí počet záznamů, u kterých se očekává odstranění.

  • Ve stejné tabulce nespouštět více paralelních operací obnovitelného odstranění, protože to může vést k selhání některých nebo všech příkazů. V různých tabulkách je ale možné spouštět několik paralelních operací obnovitelného odstranění.

  • Nespouštět příkazy obnovitelného odstranění a vyprázdnění paralelně ve stejné tabulce. Nejprve počkejte na dokončení jednoho příkazu a teprve potom spusťte druhý příkaz.

  • Obnovitelné odstranění se provede na vašem identifikátoru URI clusteru: https://[YourClusterName].[region].kusto.windows.net. Příkaz vyžaduje oprávnění správce databáze k příslušné databázi.

  • Odstranění záznamů z tabulky, která je zdrojovou tabulkou materializovaného zobrazení, může mít vliv na materializované zobrazení. Pokud se záznamy, které byly odstraněny, ještě nezpracovaly materializační cyklus, nebudou tyto záznamy v zobrazení chybět, protože se nikdy nezpracují. Podobně odstranění nebude mít vliv na materializované zobrazení, pokud již byly záznamy zpracovány.

  • Omezení predikátu:

    • Musí obsahovat alespoň jeden where operátor.
    • Může odkazovat pouze na tabulku, ze které se mají odstranit záznamy.
    • Jsou povoleny pouze následující operátory: extend, order, take projecta where. Operátor je povolen také v rámci toscalar()operátoru summarize .

Výkon odstranění

Hlavními aspekty, které můžou ovlivnit výkon procesu odstranění, jsou:

  • Spustit predikátový dotaz: Výkon tohoto kroku je velmi podobný výkonu samotného predikátu. V závislosti na predikátu může být mírně rychlejší nebo pomalejší, ale očekává se, že rozdíl bude nevýznamný.
  • Nahrazení rozsahů: Výkon tohoto kroku závisí na následujících:
    • Záznam distribuce napříč rozsahy dat v clusteru
    • Počet uzlů v clusteru

Na rozdíl od .purgepříkazu .delete neingestuje data. Označí jenom záznamy, které vrací predikát jako odstraněný, a proto je mnohem rychlejší.

Výkon dotazů po odstranění

Po odstranění záznamů se neočekává, že se výkon dotazů výrazně změní.

Snížení výkonu se neočekává, protože filtr, který se automaticky přidá na všechny dotazy, které odfiltrují odstraněné záznamy, je efektivní.

Výkon dotazů ale také není zaručen, že se zlepší. I když u některých typů dotazů může dojít ke zlepšení výkonu, nemusí se to stát u některých jiných. Aby se zlepšil výkon dotazů, rozsahy, ve kterých se většina záznamů odstraní, se pravidelně komprimují tak, že je nahradíte novými rozsahy, které obsahují pouze záznamy, které nebyly odstraněny.

Dopad na COGS (náklady na prodané zboží)

Ve většině případů odstranění záznamů nebude mít za následek změnu COGS.

  • Nedojde k žádnému poklesu, protože se ve skutečnosti nesmažou žádné záznamy. Záznamy jsou označeny pouze jako odstraněné pomocí skrytého sloupce typu bool, což je zanedbatelná velikost.
  • Ve většině případů nedojde ke zvýšení, protože .delete operace nevyžaduje zřizování dalších prostředků.
  • V některých případech se většina záznamů pravidelně komprimuje nahrazením novými rozsahy, které obsahují pouze záznamy, které nebyly odstraněny. To způsobí odstranění starých artefaktů úložiště, které obsahují velký počet odstraněných záznamů. Nové rozsahy jsou menší, a proto spotřebovávají méně místa v účtu úložiště i v horké mezipaměti. Ve většině případů je však účinek na COGS zanedbatelný.