Koncepty tabulek Azure Databricks

Azure Databricks podporuje tři primární typy tabulek (spravované, externí a cizí) a dva otevřené formáty úložiště (Delta Lake a Apache Iceberg). Volba správné kombinace určuje způsob ukládání, řízení a optimalizace dat.

Tabulka Azure Databricks se nachází ve schématu a obsahuje řádky dat. Výchozí typ tabulky vytvořený v Azure Databricks je spravovaná tabulka služby Unity Catalog.

Formáty úložiště

Formáty úložiště definují, jak jsou data fyzicky strukturovaná a sledována v úložišti objektů.

Azure Databricks podporuje dva primární otevřené formáty úložiště tabulek:

  • Delta Lake je výchozí formát úložiště pro spravované a externí tabulky v Azure Databricks. Delta je také podporována pro cizí tabulky.
  • Apache Iceberg se podporuje pro spravované a cizí tabulky v Azure Databricks. Tento formát je užitečný při integraci s ekosystémem Iceberg.

Oba formáty přidávají transakční vrstvu úložiště, která sleduje metadata a podporuje atomicitu, konzistenci, izolaci a odolnost (ACID), časovou cestu a další funkce.

Typy tabulek

Typy tabulek v Azure Databricks definují způsob vlastnictví a přístupu k datům.

Azure Databricks podporuje tři primární typy tabulek. Typy tabulek jsou určeny tím, který katalog vlastní a spravuje podkladové datové soubory, jak je popsáno v následující tabulce:

Typ tabulky Správa katalogu Podpora čtení a zápisu Optimalizace výkonu Optimalizace nákladů na úložiště
Spravované Katalog Unity Ano Ano Ano
Temporary Žádná (spravovaná tabulka s vymezeným oborem relace) Ano Ano Ano
Externí Žádné (pouze soubory) Ano Pouze ručně Pouze ručně
Zahraniční Externí systém nebo služba katalogu Jen pro čtení Ne Ne

Informace o tom, jak vybrat správný typ tabulky pro váš případ použití, najdete v tématu Výběr typu tabulky.

Spravované tabulky

U spravovaných tabulek spravuje Katalog Unity datové soubory i metadata tabulky. Datové soubory se ukládají do umístění spravovaného úložiště služby Unity Catalog v cloudovém úložišti. Spravované tabulky Unity Catalog jsou výchozí při vytváření tabulek v Azure Databricks.

Databricks doporučuje používat spravované tabulky při každém vytvoření nové tabulky. Spravované tabulky automaticky implementují vylepšení výkonu, snižují náklady na úložiště a výpočetní výkon a umožňují přístup k externím systémům, jako je Trino. Viz Spravované tabulky.

Následující příklad ukazuje spravovanou tabulku s názvem prod.people_ops_employees , která obsahuje data o pěti zaměstnanech:

Příklad tabulky obsahující data zaměstnanců

Externí tabulky

Externí tabulky, někdy označované jako nespravované tabulky, odkazují na data uložená v externím systému úložiště, jako je cloudové úložiště objektů. Azure Databricks zaregistruje metadata tabulky, ale nespravuje podkladové datové soubory. Unity Catalog podporuje externí tabulky v několika formátech, včetně Delta Lake, což umožňuje číst je s externími systémy. Viz Externí tabulky.

Cizí tabulky

Cizí tabulky představují data uložená v externích systémech připojených k Azure Databricks prostřednictvím federace Lakehouse. Cizí tabulky jsou v Azure Databricks jen pro čtení. Viz externí tabulky.

Dočasné tabulky

Dočasné tabulky jsou určeny k ukládání dat po dobu relace v Azure Databricks. Jsou užitečné pro materializaci průběžných výsledků bez vytváření trvalých tabulek v katalogu. Azure Databricks po skončení relace automaticky zahodí dočasné tabulky a k jejich vytvoření nepotřebujete oprávnění katalogu ani schématu. Viz Dočasné tabulky v Databricks SQL a Databricks Runtime.

Výběr typu tabulky

Používejte spravované tabulky pro většinu nových tabulek. Azure Databricks automatizuje optimalizaci, správu životního cyklu úložiště a externí přístup.

Externí tabulky použijte v následujících případech:

  • Potřebujete zaregistrovat existující data v cloudovém úložišti, aniž byste je přesunuli.
  • Vyžadujete přímý přístup pomocí cesty pro klienty mimo Azure Databricks.
  • Pracujete s formáty souborů, které spravované tabulky nepodporují, jako je CSV nebo JSON.
  • Vyřazení tabulky by nemělo odstraňovat podkladové datové soubory.

Cizí tabulky použijte v případě, že potřebujete přístup jen pro čtení k datům v externím systému připojeném prostřednictvím federace Lakehouse, jako je metastore Hive nebo katalog AWS Glue.

Pro formát úložiště je Delta Lake výchozí a doporučuje se pro většinu úloh. Apache Iceberg můžete použít při integraci s externími systémy, které vyžadují formát Iceberg.

Tabulky v katalogu Unity

Tabulky se v Unity Catalogu nacházejí na třetí úrovni tříúrovňového jmenného prostoru (catalog.schema.table), jak ukazuje následující diagram:

Diagram objektového modelu Unity, zaměřený na tabulku

Základní oprávnění tabulky

Většina operací tabulek vyžaduje USE CATALOG a USE SCHEMA oprávnění k katalogu a schématu obsahujícímu tabulku.

Následující tabulka shrnuje další oprávnění potřebná pro běžné operace tabulek v katalogu Unity:

Operation Povolení
Vytvoření tabulky CREATE TABLE na obsahujícím schématu
Dotazovat tabulku SELECT na stole
Aktualizace, odstranění, sloučení nebo vložení dat do tabulky SELECT a MODIFY na stole
Přesunout tabulku MANAGE na stole
Nahrazení tabulky MANAGE v tabulce, CREATE TABLE v nadřazeném schématu

Referenční informace o syntaxi SQL pro tyto operace najdete tady:

Další informace o oprávněních katalogu Unity najdete v tématu Správa oprávnění v katalogu Unity.