Sdílet prostřednictvím


Ingestování dat do Azure Databricks Lakehouse

Azure Databricks nabízí různé metody pro ingestování dat do lakehouse podporovaného Delta Lake. Tento článek obsahuje seznam podporovaných nástrojů pro příjem dat a pokyny k tomu, kterou metodu použít na základě kritérií, jako je zdroj dat a latence.

metody příjmu

Data do Databricks můžete ingestovat pomocí následujících metod:

  • Dávkové nahrávání sady datových řádků pro občasné zpracování
  • příjem dat jednotlivých řádků dat nebo sad řádků dat při jejich doručení pro zpracování v reálném čase

Ingestovaná data se načtou do tabulek Delta, které se pak dají použít napříč podřízenými daty a případy použití AI. Vzhledem k architektuře Databricks' Lakehouse nemusíte duplikovat data napříč různými případy použití a můžete využít Katalog Unity pro centralizované řízení přístupu, auditování, sledování původu dat a zjišťování dat ve všech svých datech.

příjem služby Batch

Při dávkovém příjmu dat načítáte data jako sady (nebo dávky) řádků do Databricks často na základě plánu (například každý den) nebo se aktivují ručně. To představuje část "extrakce" v tradičních případech použití procesu extrakce, transformace a načítání (ETL). Dávkový příjem dat můžete použít k načtení dat z:

  • Místní soubory jako CSV
  • Cloudové úložiště objektů, včetně Amazon S3, Azure Data Lake Storage a Google Cloud Storage
  • Aplikace SaaS, jako jsou Salesforce a databáze, jako je SQL Server

Dávkové příjem dat podporuje širokou škálu formátů zdroje souborů, včetně CSV, TSV, JSON, XML, Avro, ORC, Parquet a textových souborů.

Databricks podporuje tradiční dávkový příjem dat i přírůstkový dávkový příjem. Zatímco tradiční dávkové příjem dat zpracovává všechny záznamy při každém spuštění, přírůstkové příjem dat automaticky detekuje nové záznamy ve zdroji dat a ignoruje záznamy, které už byly ingestovány. To znamená, že méně dat je potřeba zpracovat, a proto úlohy příjmu dat běží rychleji a využívají výpočetní prostředky efektivněji.

Tradiční jednorázový dávkový příjem

Pomocí uživatelského rozhraní pro přidání dat můžete nahrát místní datové soubory nebo stáhnout soubory z veřejné adresy URL. Viz Nahrání souborů.

Přírůstkové zpracování dávek

Tato část popisuje podporované nástroje přírůstkového příjmu dávek.

Streamované tabulky

Příkaz CREATE STREAMING TABLE SQL umožňuje načíst data přírůstkově do streamovaných tabulek z cloudového úložiště objektů. Viz CREATE STREAMING TABLE.

Příklad : Inkrementální dávkové zpracování dat s využitím streamovaných tabulek

CREATE OR REFRESH STREAMING TABLE customers
AS SELECT * FROM read_files("/databricks-datasets/retail-org/customers/", "csv")
konektor cloudového objektového úložiště

Auto Loader, integrovaný konektor cloudového úložiště objektů, umožňuje přírůstkově a efektivně zpracovávat nové datové soubory při jejich příchodu do AmazonU S3 (S3), Azure Data Lake Storage Gen2 (ALDS2) nebo Google Cloud Storage (GCS). Viz automatického zavaděče.

Příklad : Přírůstkové načítání dávek pomocí Auto Loaderu

df = spark.readStream.format("cloudFiles")
  .option("cloudFiles.format", "csv")
  .option("rescuedDataColumn", "_rescued_data")
  .schema("/databricks-datasets/retail-org/customers/schema")
  .load("/databricks-datasets/retail-org/customers/")
plně spravované konektory

Lakeflow Connect poskytuje plně spravované konektory pro příjem z aplikací SaaS, jako jsou Salesforce a databáze, jako je SQL Server. Spravované konektory jsou k dispozici následujícím způsobem:

  • Uživatelské rozhraní Databricks
  • Databricks CLI
  • Rozhraní API Databricks
  • Sady SDK Databricks
  • Sady prostředků Databricks (DAB)

Viz Lakeflow Connect.

Příjem dat ze streamování

S průběžným příjmem dat nepřetržitě načítáte řádky dat nebo dávky řádků dat, jakmile jsou generovány, abyste je mohli dotazovat téměř v reálném čase, jak přicházejí. Příjem streamovaných dat můžete použít k načtení streamovaných dat ze zdrojů, jako jsou Apache Kafka, Amazon Kinesis, Google Pub/Sub a Apache Pulsear.

Databricks také podporuje streamování dat pomocí integrovaných konektorů. Tyto konektory umožňují přírůstkově a efektivně zpracovávat nová data při jejich příchodu ze streamovaných zdrojů. Viz Konfigurace streamovaných zdrojů dat.

Příklad : Streamovací příjem ze služby Kafka

spark.readStream
    .format("kafka")
    .option("kafka.bootstrap.servers", "<server:ip>")
    .option("subscribe", "topic1")
    .option("startingOffsets", "latest")
    .load()

Dávkový a streamovací příjem s využitím DLT

Databricks doporučuje používat DLT k vytváření spolehlivých a škálovatelných kanálů zpracování dat. DLT podporuje dávkový i streamový příjem dat a můžete vkládat data z libovolného zdroje dat podporovaného Auto Loaderem.

Příklad: Přírůstkové dávkové ingestování pomocí DLT

@dlt.table
def customers():
  return (
    spark.readStream.format("cloudFiles")
      .option("cloudFiles.format", "csv")
      .load("/databricks-datasets/retail-org/customers/")
  )

Příklad : Streamování příjmu dat ze systému Kafka pomocí DLT

@dlt.table
def kafka_raw():
  return (
    spark.readStream
      .format("kafka")
      .option("kafka.bootstrap.servers", "<server:ip>")
      .option("subscribe", "topic1")
      .option("startingOffsets", "latest")
      .load()
  )

plány příjmu dat

Data můžete zpracovávat jednorázově, pravidelně podle rozvrhu nebo nepřetržitě.

  • V případě případů použití streamování téměř v reálném čase použijte průběžný režim.
  • Pro případy použití dávkového příjmu dat ingestujte jednorázově nebo nastavte opakovaný plán.

Viz Příjem dat pomocí úloh a spuštěných vs. průběžný režim kanálu.

Partneři pro zpracování dat

Mnoho nástrojů třetích stran podporuje dávkové nebo streamování příjmu dat do Databricks. Databricks ověřuje různé integrace třetích stran, i když se postup konfigurace přístupu ke zdrojovým systémům a ingestování dat liší podle nástroje. Seznam ověřených nástrojů najdete v tématu partneři pro příjem dat. Někteří technologičtí partneři jsou také součástí Databricks Partner Connect, který poskytuje uživatelské rozhraní zjednodušující připojení nástrojů třetích stran k datům lakehouse.

DIY zpracování dat

Databricks poskytuje obecnou výpočetní platformu. V důsledku toho můžete vytvořit vlastní konektory pro příjem dat pomocí libovolného programovacího jazyka, který podporuje Databricks, jako je Python nebo Java. Můžete také importovat a využívat oblíbené opensourcové knihovny konektorů, jako je nástroj pro načítání dat, Airbyte a Debezium.

alternativy příjmu dat

Databricks doporučuje příjem dat pro většinu případů použití, protože se škáluje tak, aby vyhovoval vysokým objemům dat, dotazům s nízkou latencí a omezením rozhraní API třetích stran. Ingestování dat kopíruje data ze zdrojových systémů do Azure Databricks, což vede k duplicitním datům, která mohou časem zastarat. Pokud nechcete kopírovat data, můžete použít následující nástroje:

  • Lakehouse Federation umožňuje dotazovat se na externí zdroje dat bez přesouvání vašich dat.
  • Sdílení Delta umožňuje bezpečně sdílet data napříč platformami, cloudovými prostředími a regiony.

Pokud ale nechcete kopírovat data, použijte Lakehouse Federation nebo Delta Sharing.

Kdy použít Delta Sharing

Pro následující scénáře zvolte Delta Sharing:

  • Omezení duplikace dat
  • Dotazování na nejnovější možná data

Kdy použít Lakehouse Federation

Pro následující scénáře zvolte Federaci Lakehouse:

  • Ad hoc generování sestav nebo testování konceptu práce na kanálech ETL

Úvahy při výběru metody příjmu dat

Úvaha Vodítko
Zdroj dat Pokud pro zdroj dat existují nativní konektory Lakeflow Connect, bude to nejjednodušší způsob, jak ingestovat data. U zdrojů dat, které nejsou podporovány službou Lakeflow Connect, extrahujte data ze zdroje a poté použijte Auto Loader ke načtení dat do Databricks. Pro místní soubory použijte uživatelské rozhraní Databricks k nahrání dat.
Latence Pokud chcete analyzovat data téměř v reálném čase, použijte streamování k využití přírůstkového zpracování. Při streamování jsou data k dispozici pro dotazování, jakmile každý záznam dorazí. V opačném případě použijte dávkové zpracování.
Přesun dat Pokud nemůžete kopírovat data ze zdrojových systémů do Databricks, použijte Lakehouse Federation nebo Delta Sharing.

Migrace dat do Delta Lake

Informace o migraci existujících dat do Delta Lake najdete v tématu Migrace dat do Delta Lake.

COPY INTO (starší verze)

Příkaz CREATE STREAMING TABLE SQL je doporučenou alternativou ke starší verzi příkazu COPY INTO SQL pro přírůstkové příjem dat z cloudového úložiště objektů. Viz COPY INTO. Pro škálovatelnější a robustnější způsob příjmu souborů doporučuje Databricks, aby uživatelé SQL místo COPY INTOvyužívali streamingové tabulky.

Další zdroje informací

Jaký je rozdíl mezi proudovým zpracováním a přírůstkovým zpracováním dávek?