Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Čtení dat z cloudového objektového úložiště je pomalejší než čtení z lokálního disku. Bez cacheování dotazy a notebooky, které opakovaně čtou stejné datové soubory Parquet, je pokaždé načítají z cloudového objektového úložiště.
Azure Databricks používá diskovou cache k urychlení čtení dat. Když uzel načte datový soubor Parquet z vzdáleného úložiště, automaticky uloží kopii na své lokální úložiště v rychlém mezilehlém formátu. Pozdější načtení stejných dat probíhá lokálně a je výrazně rychlejší. Cache funguje pro všechny datové soubory Parquet, včetně tabulek Delta Lake.
Poznámka
Ve skladech SQL a v Databricks Runtime 14.2 a novějším se příkaz CACHE SELECT ignoruje. Místo toho se používá vylepšený algoritmus ukládání do mezipaměti disku.
Doporučené postupy
Disková cache nejvíce pomáhá při pracovních zátěžích, které čtou stejná data mnohokrát, například opakované nebo iterativní dotazy na stejné tabulky. Azure Databricks tuto funkci automaticky umožňuje u typů instancí pracovních uzlů, které ji podporují. Chcete-li pomocí diskové cache zrychlit čtení, postupujte podle těchto postupů:
- Vyberte typ worker instance, který podporuje diskové cache. Viz Výběr typů instancí pro použití ukládání do mezipaměti na disku.
- Pro opakované čtení dat z Parquet a Delta Lake používejte diskovou cache místo cache Apache Spark. Viz Porovnání diskové cache a cache Spark.
Rozdílová mezipaměť byla přejmenována na diskovou mezipaměť
Disková mezipaměť v Azure Databricks se dříve označovala jako mezipaměť Delta a mezipaměť DBIO. Chování při ukládání do mezipaměti na disku je proprietární funkce Azure Databricks. Tato změna názvu se snaží vyřešit nejasnosti, že je součástí protokolu Delta Lake.
Porovnejte diskovou cache a Spark cache
Mezipaměť disků Azure Databricks se liší od ukládání do mezipaměti Apache Spark. Databricks doporučuje používat automatické ukládání do mezipaměti na disku.
Následující tabulka shrnuje klíčové rozdíly mezi diskem a ukládáním do mezipaměti Apache Spark, abyste mohli zvolit nejlepší nástroj pro váš pracovní postup:
| Funkce | mezipaměť disku | Mezipaměť Apache Spark |
|---|---|---|
| Uloženo jako | Místní soubory na výpočetním uzlu | Jsou to bloky v paměti, ale záleží na úrovni úložiště. |
| Aplikováno na | Libovolná tabulka Parquet uložená v ABFS a jiných systémech souborů. | Libovolný DataFrame nebo RDD. |
| Spuštěno | Automaticky při prvním čtení (pokud je povolená mezipaměť). | Ručně, vyžaduje změny kódu. |
| Vyhodnocený | Líně. | Líně. |
| Dostupnost | Ve výchozím nastavení je zapnuto na určitých typech uzlů. Povolíte nebo zakážete to pomocí konfiguračních příznaků. | Vždy k dispozici. |
| Vyřazen | Automaticky způsobem LRU nebo při jakékoli změně souboru, ručně při restartování clusteru. | Automaticky v LRU módě, ručně s unpersist. |
Konzistence diskové mezipaměti
Mezipaměť disku automaticky rozpozná, kdy se datové soubory vytvoří, odstraní, upraví nebo přepíšou, a podle toho aktualizuje svůj obsah. Data tabulky můžete zapisovat, upravovat a odstraňovat bez nutnosti explicitně zneplatňovat data uložená v mezipaměti. Všechny zastaralé položky se automaticky zneplatní a vyřadí se z mezipaměti.
Výběr typů instancí pro použití diskové mezipaměti
Doporučeným (a nejsnadnějším) způsobem použití ukládání do mezipaměti na disku je zvolit typ pracovní stanice se svazky SSD při konfiguraci clusteru. Tito pracovníci jsou povoleni a nakonfigurováni pro ukládání do mezipaměti na disku.
Mezipaměť disku je nakonfigurovaná tak, aby používala nejvýše polovinu místa dostupného na místních discích SSD poskytovaných s pracovními uzly. Možnosti konfigurace najdete v tématu Konfigurace diskové mezipaměti.
Nakonfigurujte mezipaměť disku
Databricks doporučuje zvolit pro výpočetní účely typy worker instancí akcelerované cache. Takové instance jsou pro mezipaměť disku automaticky nakonfigurované optimálně.
Poznámka
Když dojde k vyřazení pracovního uzlu z provozu, dojde ke ztrátě mezipaměti Sparku uložené na daném pracovním uzlu. Takže pokud je povolené automatické škálování, je s mezipamětí nějaká nestabilita. Spark by pak musel podle potřeby znovu načíst chybějící oddíly ze zdroje.
Nastavit využití disku
Pro konfiguraci, jak disková cache využívá lokální úložiště pracovních uzlů, zadejte tato nastavení konfigurace Spark při vytváření clusteru:
-
spark.databricks.io.cache.maxDiskUsage: Místo na disku na uzel vyhrazené pro data uložená v mezipaměti v bajtech -
spark.databricks.io.cache.maxMetaDataCache: Místo na disku na uzel vyhrazené pro metadata uložená v mezipaměti v bajtech -
spark.databricks.io.cache.compression.enabled: zda mají být data v mezipaměti uložena v komprimovaném formátu
Příklad konfigurace:
spark.databricks.io.cache.maxDiskUsage 50g
spark.databricks.io.cache.maxMetaDataCache 1g
spark.databricks.io.cache.compression.enabled false
Povolte nebo zakažte mezipaměť disku
Pro zobrazení aktuálního nastavení diskové cache spusťte:
spark.conf.get("spark.databricks.io.cache.enabled")
Pokud chcete povolit a zakázat mezipaměť disku, spusťte:
spark.conf.set("spark.databricks.io.cache.enabled", "[true | false]")
Zakázáním mezipaměti nedojde k vyřazení dat, která už jsou v místním úložišti. Místo toho brání přidávání nových dat do mezipaměti prostřednictvím dotazů a čtení dat z mezipaměti prostřednictvím dotazů.