Přehled obnovitelného odstranění

Azure Data Explorer jako datová platforma podporuje možnost odstraňovat jednotlivé záznamy. K odstranění záznamů se běžně používá jedna z následujících metod:

  • Pokud chcete odstranit záznamy se systémovou zárukou, ž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 postup popsaný 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 nějakou dobu hlásí poškozenou telemetrii, 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í duplicitních dat nebo aktualizace, doporučujeme použít materializovaná zobrazení. Informace o odstranění duplicitních dat najdete v tématu Volba 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átový dotaz: Tabulka se kontroluje za účelem identifikace rozsahů dat obsahujících záznamy, které se mají odstranit. Identifikované rozsahy jsou rozsahy s jedním nebo více záznamy vrácenými predikátem dotazu.
  2. Nahrazení rozsahů: Zjištěné rozsahy se nahradí novými rozsahy, které odkazují na původní objekty blob dat, a také mají nový skrytý sloupec typu bool , který u každého záznamu označuje, jestli byl odstraněn nebo ne. Po dokončení, pokud nejsou ingestovaná žádná nová data, predikátový dotaz při opětovném spuštění nevrátí žádné záznamy.

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ě nemusí být po operaci nutně odstraněny.

  • Obnovitelné odstranění se podporuje u nativních tabulek a materializovaných zobrazení. U externích tabulek se nepodporuje.

  • 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í.

  • Neprovozujte ve stejné tabulce několik paralelních operací obnovitelného odstranění, protože to může mít za následek 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í ve stejné tabulce paralelně. Nejprve počkejte, až se jeden příkaz dokončí, a teprve pak spusťte druhý příkaz.

  • Obnovitelné odstranění se provádí s vaším identifikátorem 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 odstraněné záznamy ještě nebyly zpracovány materializačním cyklem, budou 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, takeprojecta where. V rámci toscalar()je summarize povolen také operátor.

Výkon odstraňování

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

  • Spustit dotaz predikátu: Výkon tohoto kroku je velmi podobný výkonu samotného predikátu. V závislosti na predikátu může být o něco 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:
    • Distribuce záznamů napříč rozsahy dat v clusteru
    • Počet uzlů v clusteru

.delete Na rozdíl od .purgepříkazu nedochází k opětovnému příjmu dat. Pouze označí záznamy, které jsou vráceny predikátem dotazu jako odstraněné, a proto jsou mnohem rychlejší.

Výkon dotazů po odstranění

Neočekává se, že by se výkon dotazů po odstranění záznamů výrazně změnil.

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

Není však zaručeno zlepšení výkonu dotazů. I když u některých typů dotazů může dojít ke zlepšení výkonu, u některých jiných k tomu nemusí dojít. Za účelem zvýšení výkonu dotazů se rozsahy, ve kterých je většina záznamů odstraněna, pravidelně komprimují tak, že je nahradí novými rozsahy, které obsahují pouze záznamy, které nebyly odstraněny.

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

Odstranění záznamů ve většině případů nemá za následek změnu COGS.

  • Nedojde k žádnému poklesu, protože ve skutečnosti nejsou odstraněny žádné záznamy. Záznamy jsou označeny jako odstraněné pouze pomocí skrytého sloupce typu bool, jehož velikost je zanedbatelná.
  • Ve většině případů nedojde k žádnému .delete navýšení, protože operace nevyžaduje zřizování dalších prostředků.
  • V některých případech se rozsahy, ve kterých je většina záznamů odstraněna, pravidelně komprimují 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 tento účinek na COGS zanedbatelný.