Zpracování duplicitních dat v Azure Data Exploreru
Zařízení odesílající data do cloudu udržují místní mezipaměť dat. V závislosti na velikosti dat může místní mezipaměť ukládat data po dobu dnů nebo dokonce měsíců. Chcete chránit analytické databáze před nefunkčními zařízeními, která znovu odposílala data uložená v mezipaměti a způsobovala duplikaci dat v analytické databázi. Duplicity můžou ovlivnit počet záznamů vrácených dotazem. To je relevantní, pokud potřebujete přesný počet záznamů, například počítání událostí. Toto téma popisuje osvědčené postupy pro zpracování duplicitních dat v těchto typech scénářů.
Nejlepším řešením pro duplikaci dat je zabránění duplikaci. Pokud je to možné, vyřešte tento problém dříve v datovém kanálu, čímž se šetří náklady spojené s přesunem dat v rámci datového kanálu a vyhnete se výdajům na prostředky spojené s vyrovnáním se s duplicitními daty přijatými do systému. V situacích, kdy zdrojový systém není možné upravit, existují různé způsoby, jak tento scénář vyřešit.
Vysvětlení dopadu duplicitních dat
Monitorujte procento duplicitních dat. Jakmile zjistíte procento duplicitních dat, můžete analyzovat rozsah problému a obchodní dopad a zvolit vhodné řešení.
Ukázkový dotaz pro identifikaci procenta duplicitních záznamů:
let _sample = 0.01; // 1% sampling
let _data =
DeviceEventsAll
| where EventDateTime between (datetime('10-01-2018 10:00') .. datetime('10-10-2018 10:00'));
let _totalRecords = toscalar(_data | count);
_data
| where rand()<= _sample
| summarize recordsCount=count() by hash(DeviceId) + hash(EventId) + hash(StationId) // Use all dimensions that make row unique. Combining hashes can be improved
| summarize duplicateRecords=countif(recordsCount > 1)
| extend duplicate_percentage = (duplicateRecords / _sample) / _totalRecords
Řešení pro zpracování duplicitních dat
Řešení č. 1: Neodstraňujte duplicitní data
Seznamte se s vašimi obchodními požadavky a s tolerancí duplicitních dat. Některé datové sady se dají spravovat s určitým procentem duplicitních dat. Pokud duplicitní data nemají významný dopad, můžete jejich přítomnost ignorovat. Výhodou neodebraní duplicitních dat není žádná další režie na proces příjmu dat nebo výkon dotazů.
Řešení č. 2: Zpracování duplicitních řádků během dotazu
Další možností je vyfiltrovat duplicitní řádky v datech během dotazu. Agregovanou arg_max()
funkci můžete použít k odfiltrování duplicitních záznamů a vrácení posledního záznamu na základě časového razítka (nebo jiného sloupce). Výhodou použití této metody je rychlejší příjem dat, protože k odstranění duplicit dochází během doby dotazování. Kromě toho jsou všechny záznamy (včetně duplicit) k dispozici pro auditování a řešení potíží. Nevýhodou použití arg_max
funkce je další doba dotazu a zatížení procesoru při každém dotazování dat. V závislosti na množství dotazovaných dat může toto řešení přestat fungovat nebo využívat paměť a bude vyžadovat přepnutí na jiné možnosti.
V následujícím příkladu se na poslední přijatý záznam dotazujeme na sadu sloupců, které určují jedinečné záznamy:
DeviceEventsAll
| where EventDateTime > ago(90d)
| summarize hint.strategy=shuffle arg_max(EventDateTime, *) by DeviceId, EventId, StationId
Tento dotaz je také možné umístit do funkce místo přímého dotazování tabulky:
.create function DeviceEventsView
{
DeviceEventsAll
| where EventDateTime > ago(90d)
| summarize arg_max(EventDateTime, *) by DeviceId, EventId, StationId
}
Řešení č. 3: Odstranění duplicit pomocí materializovaných zobrazení
Materializovaná zobrazení se dají použít k odstranění duplicitních dat pomocí agregačních funkcí take_any()/arg_min()/arg_max() (viz příklad č. 4 v příkazu pro vytvoření materializovaného zobrazení).
Poznámka
Materializovaná zobrazení mají náklady na využívání prostředků clusteru, které nemusí být zanedbatelné. Další informace najdete v tématu Důležité informace o výkonu materializovaných zobrazení.
Řešení č. 4: Odstranění duplicit pomocí obnovitelného odstranění
Obnovitelné odstranění podporuje možnost odstranit jednotlivé záznamy, a proto se dá použít k odstranění duplicit. Tato možnost se doporučuje pouze u občasných odstraňování, a ne v případě, že neustále potřebujete odstranit duplicity všech příchozích záznamů.
Volba mezi materializovanými zobrazeními a obnovitelném odstraněním pro odstranění duplicitních dat
Existuje několik aspektů, které vám můžou pomoct při výběru mezi použitím materializovaných zobrazení nebo obnovitelného odstranění pro odstranění duplicit:
- Správa a orchestrace: Materializovaná zobrazení představují plně spravované řešení. Zobrazení je definováno jednou a systém zpracovává odstranění duplicitních dat všech příchozích záznamů. Obnovitelné odstranění vyžaduje orchestraci a správu. Proto pokud materializovaná zobrazení fungují pro váš případ použití, měli byste vždy zvolit tuto možnost.
- Kdy jsou záznamy odstraněny: Při obnovitelném odstranění jsou duplicitní záznamy nejprve přidány do tabulky a poté odstraněny; Mezi procesy příjmu dat a obnovitelného odstranění proto tabulka obsahuje duplicitní položky. U materializovaných zobrazení budou záznamy v zobrazení vždy odstraněny, protože jsou před vstupem do zobrazení odstraněny.
- Frekvence: Pokud je potřeba tabulku neustále deduplikovat, použijte materializovaná zobrazení. Pokud předpokládáte, že duplicity budou málo časté a během příjmu dat je dokážete identifikovat, proces obnovitelného odstranění obvykle funguje lépe než materializovaná zobrazení. Například v situaci, kdy vaše ingestování obvykle nemají duplicitní položky, ale občas ingestujete datový proud, o kterém je známo, že obsahuje duplicity. V tomto scénáři je lepší zpracovat tyto duplicity pomocí obnovitelného odstranění, než definovat materializované zobrazení, které se bude neustále pokoušet o odstranění duplicit všech záznamů.
Řešení č. 5: ingest-by
Značky rozsahu
Značky rozsahu ingest-by: je možné použít k zabránění duplicit během příjmu dat. To je relevantní pouze v případech použití, kdy je zaručeno, že každá dávka příjmu dat nebude mít žádné duplicity, a duplicity se očekávají pouze v případě, že se stejná dávka příjmu dat ingestuje více než jednou.
Souhrn
Duplikaci dat je možné zpracovat několika způsoby. Pečlivě vyhodnoťte možnosti s ohledem na cenu a výkon a určete správnou metodu pro vaši firmu.
Související obsah
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro