Kde Azure Databricks zapisuje data?
Tento článek podrobně popisuje umístění, kde Azure Databricks zapisuje data s každodenními operacemi a konfiguracemi. Vzhledem k tomu, že Azure Databricks má sadu nástrojů, které zahrnují mnoho technologií a pracují s cloudovými prostředky v modelu sdílené odpovědnosti, výchozí umístění použitá k ukládání dat se liší v závislosti na spouštěcím prostředí, konfiguracích a knihovnách.
Informace v tomto článku vám pomůžou pochopit výchozí cesty pro různé operace a způsob změny těchto výchozích hodnot. Správci dat a správci, kteří hledají pokyny ke konfiguraci a řízení přístupu k datům, by měli vidět zásady správného řízení dat pomocí katalogu Unity.
Další informace o konfiguraci úložiště objektů a dalších zdrojů dat najdete v tématu Připojení ke zdrojům dat.
Co je úložiště objektů?
V cloud computingu odkazuje úložiště objektů nebo úložiště objektů blob na kontejnery úložiště, které udržují data jako objekty, přičemž každý objekt se skládá z dat, metadat a globálně jedinečného identifikátoru prostředku (URI). Operace manipulace s daty úložiště objektů jsou často omezené na vytváření, čtení, aktualizaci a odstraňování (CRUD) prostřednictvím rozhraní REST API. Některé nabídky úložiště objektů zahrnují funkce, jako je správa verzí a správy životního cyklu. Úložiště objektů má následující výhody:
- Vysoká dostupnost, stálost a spolehlivost.
- Nižší náklady na úložiště oproti většině ostatních možností úložiště.
- Neomezeně škálovatelné (omezené celkovým množstvím úložiště dostupného v dané cloudové oblasti).
Většina cloudových datových jezer je postavená na opensourcových formátech dat v cloudovém úložišti objektů.
Jak Azure Databricks používá úložiště objektů?
Úložiště objektů je hlavní formou úložiště používané službou Azure Databricks pro většinu operací. Přístup ke cloudovému úložišti objektů nakonfigurujete pomocí přihlašovacích údajů k úložišti katalogu Unity a externích umístění. Tato umístění se pak používají k ukládání datových souborů zálohovaných tabulek a svazků. Viz Připojení ke cloudovému úložišti objektů a službám pomocí katalogu Unity.
Pokud konkrétně nenakonfigurujete tabulku pro externí datový systém, všechny tabulky vytvořené v Azure Databricks ukládají data v cloudovém úložišti objektů.
Soubory Delta Lake uložené v cloudovém úložišti objektů poskytují základ dat pro Databricks Lakehouse.
Co je blokové úložiště?
V cloud computingu odkazuje blokové úložiště nebo diskové úložiště na svazky úložiště, které odpovídají tradičním pevným diskům (HDD) nebo diskům SSD (Solid-State Drive), označovaným také jako "pevné disky". Při nasazování blokového úložiště v prostředí cloud computingu se obvykle nasadí logický oddíl jednoho nebo více fyzických jednotek. Implementace se mírně liší mezi nabídkami produktů a dodavateli cloudu, ale mezi implementacemi se obvykle vyskytují následující charakteristiky:
- Všechny virtuální počítače vyžadují připojený svazek blokového úložiště.
- Soubory a programy nainstalované na svazku blokového úložiště se uchovávají, dokud blokový svazek úložiště přetrvává.
- Svazky blokového úložiště se často používají pro dočasné úložiště dat.
- Blokové svazky úložiště připojené k virtuálním počítačům se obvykle odstraňují společně s virtuálními počítači.
Jak Azure Databricks používá blokové úložiště?
Když zapnete výpočetní prostředky, Azure Databricks nakonfiguruje a nasadí virtuální počítače a připojí svazky blokového úložiště. Toto blokové úložiště slouží k ukládání dočasných datových souborů po celou dobu životnosti výpočetního prostředku. Mezi tyto soubory patří operační systém, nainstalované knihovny a data používaná mezipamětí disku. I když Apache Spark používá blokové úložiště na pozadí k efektivní paralelizaci a načítání dat, většina kódu běží v Azure Databricks, neukládá ani nenačítá data do blokového úložiště.
Můžete spustit libovolný kód, například příkazy Python nebo Bash, které používají blokové úložiště připojené k uzlu ovladače. Viz Práce se soubory v dočasném úložišti připojeném k uzlu ovladače.
Kde katalog Unity ukládá datové soubory?
Katalog Unity spoléhá na správce, kteří konfigurují vztahy mezi cloudovým úložištěm a relačními objekty. Přesné umístění, kde se nacházejí data, závisí na tom, jak správci nakonfigurovali vztahy.
Data zapsaná nebo nahraná do objektů, které se řídí katalogem Unity, se ukládají v jednom z následujících umístění:
- Spravované umístění úložiště přidružené k metastoru, katalogu nebo schématu Data zapsaná nebo nahraná do spravovaných tabulek a spravovaných svazků používají spravované úložiště. Viz Určení spravovaného umístění úložiště v katalogu Unity.
- Externí umístění nakonfigurované s přihlašovacími údaji úložiště. Data zapsaná nebo nahraná do externích tabulek a externích svazků používají externí úložiště. Viz Připojení ke cloudovému úložišti objektů a službám pomocí katalogu Unity.
Kde Databricks SQL ukládá zálohované tabulky dat?
Když spustíte CREATE TABLE
příkaz s Databricks SQL nakonfigurovaným s katalogem Unity, výchozím chováním je ukládání datových souborů do spravovaného umístění úložiště nakonfigurovaného pomocí katalogu Unity. Podívejte se , kde Katalog Unity ukládá datové soubory?.
Starší hive_metastore
katalog se řídí různými pravidly. Viz Práce s katalogem Unity a starší metastore Hive.
Kde delta živé tabulky ukládají datové soubory?
Databricks doporučuje při vytváření kanálů DLT používat katalog Unity. Data se ukládají v adresářích ve spravovaném umístění úložiště přidruženém k cílovému schématu.
Kanály DLT můžete volitelně nakonfigurovat pomocí metastoru Hive. Při konfiguraci metastoru Hive můžete zadat umístění úložiště v DBFS nebo cloudovém úložišti objektů. Pokud neurčíte umístění, přiřadí se ke kanálu umístění v kořenovém adresáři DBFS.
Kde Apache Spark zapisuje datové soubory?
Databricks doporučuje používat názvy objektů s katalogem Unity ke čtení a zápisu dat. Soubory můžete také zapisovat do svazků katalogu Unity pomocí následujícího vzoru: /Volumes/<catalog>/<schema>/<volume>/<path>/<file-name>
. Musíte mít dostatečná oprávnění k nahrání, vytvoření, aktualizaci nebo vložení dat do objektů, které se řídí katalogem Unity.
Volitelně můžete použít univerzální indikátory prostředků (URI) k určení cest k datovým souborům. Identifikátory URI se liší v závislosti na poskytovateli cloudu. Musíte mít také nakonfigurovaná oprávnění k zápisu aktuálního výpočetního prostředku pro zápis do cloudového úložiště objektů.
Azure Databricks používá systém souborů Databricks k mapování příkazů Apache Sparku pro čtení a zápis zpět do cloudového úložiště objektů. Každý pracovní prostor Azure Databricks má umístění kořenového úložiště DBFS nakonfigurované v cloudovém účtu přidělenému pracovnímu prostoru, ke kterému mají všichni uživatelé přístup ke čtení a zápisu dat. Databricks nedoporučuje používat kořen DBFS k ukládání produkčních dat. Podívejte se na článek Co je DBFS? a doporučení pro práci s kořenem DBFS.
Kde pandas zapisuje datové soubory v Azure Databricks?
Ve službě Databricks Runtime 14.0 a novějších je výchozím pracovním adresářem (CWD) pro všechny místní operace čtení a zápisu v Pythonu adresář obsahující poznámkový blok. Pokud při ukládání datového souboru zadáte jenom název souboru, knihovna pandas uloží tento datový soubor jako soubor pracovního prostoru paralelně s aktuálně spuštěným poznámkovým blokem.
Ne všechny verze Modulu runtime Databricks podporují soubory pracovních prostorů a některé verze Databricks Runtime se liší v závislosti na tom, jestli používáte poznámkové bloky nebo složky Git. Podívejte se, co je výchozí aktuální pracovní adresář?
Kde mám zapisovat dočasné soubory v Azure Databricks?
Pokud je nutné zapsat dočasné soubory, které nechcete zachovat po vypnutí clusteru, zapište dočasné soubory, aby $TEMPDIR
se zlepšil výkon než zápis do aktuálního pracovního adresáře (CWD), pokud je CWD v systému souborů pracovního prostoru. Pokud se kód spustí v úložišti, můžete se vyhnout překročení limitů velikosti větve. Další informace najdete v tématu Omezení souborů a úložiště.
/local_disk0
Pokud je velikost zapisovaných dat velká a chcete, aby se úložiště automaticky škáluje.