Sdílet prostřednictvím


Osvědčené postupy pro optimalizaci nákladů

Tento článek se zabývá osvědčenými postupy, které podporují principy optimalizace nákladů uspořádané podle principu.

1. Volba optimálních prostředků

Použití formátů dat optimalizovaných pro výkon

Pokud chcete využít platformu Databricks Data Intelligence Platform na maximum, musíte jako architekturu úložiště použít Delta Lake. Pomáhá vytvářet jednodušší a spolehlivější kanály ETL a přináší mnoho vylepšení výkonu, která můžou výrazně zrychlit úlohy v porovnání s používáním Parquet, ORC a JSON. Viz doporučení optimalizace v Azure Databricks. Pokud úloha běží také na výpočetních prostředcích úlohy, tato úloha se přímo přeloží na kratší dobu provozu výpočetních prostředků, což vede k nižším nákladům.

Použití výpočetních prostředků úloh

Úloha je způsob, jak spustit neinteraktivní kód na výpočetní instanci Databricks. Můžete například interaktivně nebo podle plánu spustit úlohu extrakce, transformace a načítání (ETL). Samozřejmě můžete úlohy spouštět interaktivně také v uživatelském rozhraní poznámkového bloku. Na výpočetních prostředcích úloh ale neinteraktivní úlohy budou výrazně nižší než u výpočetních prostředků pro všechny účely. Podívejte se na přehled cen pro porovnání výpočetních úloh a výpočetních prostředků pro všechny účely.

Další výhodou některých úloh je to, že každá úloha nebo pracovní postup může běžet v nové výpočetní instanci a izoluje úlohy mezi sebou. Pracovní postupy s více úkoly ale můžou opakovaně používat výpočetní prostředky pro všechny úkoly, takže doba spuštění výpočetních prostředků probíhá pouze jednou pro každý pracovní postup. Viz Konfigurace výpočetních prostředků pro úlohy.

Použití SQL Warehouse pro úlohy SQL

Pro interaktivní úlohy SQL je databricks SQL Warehouse nákladově nejefektivnějším modulem. Podívejte se na přehled cen. Všechny sklady SQL jsou ve výchozím nastavení součástí Photonu, což urychluje vaše stávající volání rozhraní SQL a DataFrame API a snižuje celkové náklady na každou úlohu.

Bezserverové sklady SQL navíc podporují inteligentní správu úloh (IWM), sadu funkcí, které vylepšují bezserverovou schopnost Databricks SQL zpracovávat velký počet dotazů rychle a nákladově efektivně.

Použití aktuálních modulů runtime pro vaše úlohy

Platforma Azure Databricks poskytuje různé moduly runtime, které jsou optimalizované pro úlohy přípravy dat (Databricks Runtime) nebo úlohy strojového učení (Databricks Runtime pro Machine Learning). Moduly runtime jsou vytvořené tak, aby poskytovaly nejlepší výběr knihoven pro úkoly a zajistily, že všechny poskytované knihovny jsou aktuální a fungují optimálně. Moduly Databricks Runtime se vydávají v pravidelných intervalech a poskytují vylepšení výkonu mezi hlavními verzemi. Tato vylepšení výkonu často vedou k úsporám nákladů z důvodu efektivnějšího využití výpočetních prostředků.

Pro správné úlohy používejte pouze GPU.

Virtuální počítače s grafickými procesory můžou výrazně zrychlit výpočty hlubokého učení, ale jsou výrazně dražší než počítače jen s procesorem. Instance GPU používejte jenom pro úlohy s akcelerovanými knihovnami GPU.

Většina úloh nepoužívá akcelerované knihovny GPU, takže nemají prospěch z instancí s podporou GPU. Správci pracovních prostorů můžou omezit počítače GPU a výpočetní prostředky, aby se zabránilo zbytečnému využití. Podívejte se na blog příspěvek "Jsou GPU opravdu drahé? Srovnávací testy GPU pro odvozování v clusterech Databricks

Použití bezserverových služeb pro úlohy

Případy použití BI

Úlohy BI obvykle zpracovávají data v nárazech a generují více souběžných dotazů. Někdo, kdo používá nástroj BI, může například aktualizovat řídicí panel nebo napsat dotaz a pak jednoduše analyzovat výsledky bez další interakce s platformou. V tomto scénáři datová platforma:

  • Ukončí nečinné výpočetní prostředky, aby se ušetřily náklady.
  • Rychle poskytuje výpočetní prostředky, když uživatel požádá o nová nebo aktualizovaná data pomocí nástroje BI.

Bezserverové služby Azure Databricks SQL Warehouse mají dobu spuštění několika minut, takže mnoho uživatelů obvykle přijímá vyšší náklady a během období nečinnosti je neukončuje. Na druhé straně se bezserverové sklady SQL spouštějí a škálují v sekundách, takže je možné dosáhnout okamžité dostupnosti i nečinnosti. Výsledkem je skvělé uživatelské prostředí a celkové úspory nákladů.

Bezserverové sklady SQL navíc vertikálně navyšují kapacitu dříve než bezserverové sklady, což vede k nižším nákladům.

Obsluha modelů ML a AI

Většina modelů se obsluhuje jako rozhraní REST API pro integraci do webové nebo klientské aplikace; Služba obsluhy modelu přijímá různou zátěž požadavků v průběhu času a model obsluhující platformu by měl vždy poskytovat dostatečné prostředky, ale pouze tolik, kolik skutečně potřebujete (vertikální a snížení kapacity).

Služba rozhraní AI Model Service s využitím bezserverového výpočetního prostředí a poskytuje vysoce dostupnou službu s nízkou latencí pro nasazování modelů. Služba automaticky vertikálně navyšuje nebo snižuje kapacitu tak, aby splňovala změny v poptávce, což snižuje náklady na infrastrukturu při optimalizaci výkonu latence.

Použití správného typu instance

Použití nejnovější generace typů cloudových instancí téměř vždy poskytuje výhody výkonu, protože nabízejí nejlepší výkon a nejnovější funkce.

Na základě vašich pracovních zátěží je také důležité zvolit správný typ instance, abyste získali nejlepší poměr výkon/cena. Některá jednoduchá pravidla palce jsou:

  • Paměť optimalizovaná pro ml, těžké přehazování a přelévání úloh
  • Výpočty optimalizované pro úlohy strukturovaného streamování a úlohy údržby (například optimalizace a úklid)
  • Úložiště optimalizované pro úlohy, které využívají ukládání do mezipaměti, jako je ad hoc a interaktivní analýza dat
  • GPU optimalizované pro konkrétní úlohy ML a DL
  • Obecné účely v případě, že nejsou splněny specifické požadavky

Volba nejúčinnější velikosti výpočetních prostředků

Azure Databricks spustí jeden exekutor na pracovní uzel. Proto se termíny exekutor a pracovní proces používají v kontextu architektury Azure Databricks zaměnitelně. Lidé často uvažují o velikosti clusterů z hlediska počtu pracovních procesů, ale je potřeba vzít v úvahu další důležité faktory:

  • Total Executor cores (compute): Celkový počet jader napříč všemi exekutory. Určuje maximální paralelismus výpočetní instance.
  • Celková paměť exekutoru: Celková velikost paměti RAM napříč všemi exekutory. Určuje, kolik dat může být uloženo v paměti před jejich přelitím na disk.
  • Místní úložiště exekutoru: Typ a množství místního diskového úložiště. Místní disk se primárně používá v případě přelití během náhodného prohazování a ukládání do mezipaměti.

Mezi další aspekty patří typ a velikost instance pracovního procesu, které také ovlivňují předchozí faktory. Při nastavování velikosti výpočetních prostředků zvažte následující:

  • Kolik dat bude vaše úloha spotřebovávat?
  • Jaká je výpočetní složitost vaší úlohy?
  • Odkud čtete data?
  • Jak jsou data rozdělená do externího úložiště?
  • Kolik paralelismu potřebujete?

Podrobnosti a příklady najdete v části Aspekty velikosti výpočetních prostředků.

Vyhodnocení dotazovacích modulů optimalizovaných pro výkon

Photon je vysoce výkonný vektorizovaný dotazovací modul nativní pro Databricks, který zrychluje volání úloh SQL a rozhraní DATAFrame API (pro příjem dat, ETL, streamování, datové vědy a interaktivní dotazy). Photon je kompatibilní s rozhraními Apache Spark API, takže začínáme je stejně snadné jako jeho zapnutí – bez změn kódu a bez uzamčení.

Pozorované zrychlení může vést k významným úsporám nákladů a úlohy, které běží pravidelně, by se měly vyhodnotit a zjistit, jestli jsou nejen rychlejší, ale také levnější s Photonem.

2. Dynamické přidělování prostředků

Použití automatického škálování výpočetních prostředků

Díky automatickému škálování databricks dynamicky relokuje pracovní procesy, aby zohlednily charakteristiky vaší úlohy. Některé části kanálu můžou být výpočetně náročnější než ostatní a Databricks během těchto fází vaší úlohy automaticky přidá další pracovní procesy (a odebere je, když už nejsou potřeba). Automatické škálování může snížit celkové náklady v porovnání se statickou velikostí výpočetní instance.

Automatické škálování výpočetních prostředků má omezení při vertikálním snížení kapacity clusteru pro úlohy strukturovaného streamování. Databricks doporučuje používat dynamické tabulky Delta s vylepšeným automatickým škálováním pro streamovací úlohy.

Použití automatického ukončení

Azure Databricks poskytuje několik funkcí, které pomáhají řídit náklady snížením nečinných prostředků a řízením, kdy je možné nasadit výpočetní prostředky.

  • Nakonfigurujte automatické ukončení pro všechny interaktivní výpočetní prostředky. Po zadané době nečinnosti se výpočetní prostředek vypne. Viz Automatické ukončení.
  • V případech, kdy je výpočetní prostředky potřeba jenom během pracovní doby, je možné nakonfigurovat výpočetní prostředky s automatickým ukončením a naplánovaný proces může restartovat výpočetní prostředky (a případně předběžná data v případě potřeby) ráno předtím, než se uživatelé vrátí ke svým stolním počítačům. Viz CACHE SELECT.
  • Pokud jsou časy spuštění výpočetních prostředků příliš dlouhé, zvažte použití fondů clusterů, přečtěte si osvědčené postupy fondu. Pooly Azure Databricks jsou sada instancí, které jsou nečinné, ale připravené k použití. Když se uzly clusteru vytvářejí pomocí nečinných instancí, sníží se časy spuštění clusteru a automatického škálování. Pokud fondy nemají žádné nečinné instance, fondy se rozbalí přidělením nové instance od poskytovatele instance, aby se přizpůsobily žádosti clusteru.

Azure Databricks neúčtuje jednotky Databricks (DBU), zatímco instance jsou ve fondu nečinné, což vede k úsporám nákladů. Platí fakturace poskytovatele instancí.

Řízení nákladů pomocí zásad výpočetních prostředků

Zásady výpočetních prostředků můžou vynucovat mnoho omezení specifických pro náklady pro výpočetní prostředky. Viz Efektivita provozu – Použití výpočetních zásad. Příklad:

  • Povolte automatické škálování clusteru s nastaveným minimálním počtem pracovních uzlů.
  • Povolte automatické ukončení clusteru s rozumnou hodnotou (například 1 hodinu), abyste se vyhnuli placení za nečinné časy.
  • Ujistěte se, že je možné vybrat pouze nákladově efektivní instance virtuálních počítačů. Postupujte podle osvědčených postupů pro konfiguraci clusteru. Viz doporučení pro konfiguraci výpočetních prostředků.
  • Použijte strategii spotové instance.

3. Monitorování a řízení nákladů

Monitorování nákladů

Pomocí Azure Cost Manageru můžete analyzovat náklady na Azure Databricks. Značky výpočetních prostředků a pracovních prostorů se také doručují do Azure Cost Manageru. Informace o přiřazení nákladů najdete v clusterech značek.

Označování clusterů pro přisuzování nákladů

Pokud chcete monitorovat náklady obecně a přesně přiřazovat využití Azure Databricks k obchodním jednotkám a týmům vaší organizace za účelem vrácení peněz, můžete označit clustery, sklady SQL a fondy. Tyto značky se šíří do podrobných jednotek Databricks (DBU) a virtuálních počítačů poskytovatele cloudu a využití úložiště objektů blob pro analýzu nákladů.

Při nastavování pracovních prostorů a clusterů pro týmy a případy použití se ujistěte, že se při nastavování pracovních prostorů a clusterů zvažují řízení nákladů a jejich přisuzování. Zjednoduší se označování a zlepší se přesnost přisuzování nákladů.

Celkové náklady zahrnují virtuální počítač, disk a související náklady na síť DBU. U bezserverových skladů SQL už náklady na DBU zahrnují náklady na virtuální počítač a disk.

Značky prostředků Azure Databricks je možné použít v nástrojích pro analýzu nákladů na webu Azure Portal.

Implementace pozorovatelnosti pro sledování a vracení nákladů na vrácení peněz

Při práci se složitými technickými ekosystémy je proaktivní pochopení neznámých informací klíčem k udržování stability platformy a řízení nákladů. Pozorovatelnost poskytuje způsob, jak analyzovat a optimalizovat systémy na základě dat, která vygenerují. To se liší od monitorování, které se zaměřuje na identifikaci nových vzorů, nikoli na sledování známých problémů.

Databricks poskytuje skvělé možnosti pozorovatelnosti pomocí systémových tabulek , které jsou analytickými úložišti provozních dat zákaznického účtu hostovanými službou Databricks, nalezenými v katalogu systému. Poskytují historickou pozorovatelnost v rámci účtu a zahrnují uživatelsky přívětivé tabulkové informace o telemetrii platformy.

Viz blog: Inteligentní vyvážení optimalizace nákladů a spolehlivosti v Databricks

Pravidelné sdílení sestav nákladů

Generování sestav měsíčních nákladů ke sledování růstu spotřeby a anomálií Tyto sestavy můžete sdílet podle případu použití nebo týmu s týmy, které vlastní úlohy pomocí označování clusteru. To eliminuje překvapení a umožňuje týmům proaktivně upravit své úlohy, pokud se náklady stanou příliš vysokou.

Monitorování a správa nákladů na výchozí přenos dat rozdílového sdílení

Sdílení Delta Sharing, na rozdíl od jiných platforem sdílení dat, nevyžaduje replikaci dat. Tento model má mnoho výhod, ale znamená to, že dodavatel cloudu může účtovat poplatky za výchozí přenos dat při sdílení dat mezi cloudy nebo oblastmi. Viz Monitorování a správa nákladů za přenos dat Delta Sharing (pro poskytovatele) pro monitorování a správu poplatků za výchozí přenos dat.

4. Návrh nákladově efektivních úloh

Vyvážení always-on a aktivovaného streamování

Tradičně, když lidé uvažují o streamování, termíny jako "v reálném čase", "24/7" nebo "vždy zapnuto". Pokud k příjmu dat dochází v reálném čase, musí základní výpočetní prostředky běžet 24/7 a každou hodinu dne účtují náklady.

Ne každý případ použití, který spoléhá na nepřetržitý proud událostí, ale vyžaduje, aby se tyto události okamžitě přidaly do sady analytických dat. Pokud obchodní požadavek pro případ použití vyžaduje pouze čerstvá data každých několik hodin nebo každý den, může být tento požadavek splněn pouze s několika spuštěními za den, což vede k významnému snížení nákladů na úlohy. Databricks doporučuje používat strukturované streamování s triggerem AvailableNow pro přírůstkové úlohy, které nemají nízké požadavky na latenci. Viz Konfigurace přírůstkového dávkového zpracování.

Vyvážení mezi nadbytečnými instancemi na vyžádání a nadbytečnými instancemi kapacity

Spotové instance využívají nadbytečné prostředky virtuálních počítačů v cloudu, které jsou k dispozici za nižší cenu. Pokud chcete ušetřit náklady, Azure Databricks podporuje vytváření clusterů pomocí spotových instancí. Databricks doporučuje, aby první instance (ovladač Sparku) měla být vždy virtuálním počítačem na vyžádání. Spotové instance jsou dobrou volbou pro úlohy, kde je přijatelné trvat déle, protože poskytovatel cloudu vyřadil jednu nebo více spotových instancí.