Megosztás a következőn keresztül:


Adatok betöltése egy Azure Databricks-tóházba

Az Azure Databricks különböző módszereket kínál az adatok Delta Lake által támogatott tóépületbe való betöltéséhez. Ez a cikk a támogatott betöltési eszközöket és útmutatást sorolja fel, hogy milyen módszert használjon olyan feltételek alapján, mint az adatforrás és a késés.

Bevitel módszerei

A Databricksbe az alábbi módszerekkel lehet adatokat beszúrni:

  • Kötegelt adatbetöltés egy adatsor-készlet ritkább feldolgozásához
  • Folyamatos adatbevitel az egyes adatsorok vagy adatsorkészletek érkezésekor valós idejű feldolgozás céljából.

Az adatokat betöltik a Delta-táblákba, amelyek aztán felhasználhatók a további adathasználati és AI-alkalmazásokban. A Databricks Lakehouse-architektúrája miatt nem kell duplikálnia az adatokat a használati esetek között, és a Unity Catalog használatával központosított hozzáférés-vezérlést, naplózást, életútot és adatfelderítést végezhet az összes adaton.

Batch-betöltés

Kötegbetöltés során kötegekként tölti be az adatokat a Databricksbe, gyakran ütemezés alapján (például minden nap), vagy manuális indítással. Ez a hagyományos kinyerési, átalakítási, terhelési (ETL-) használati esetek "kinyerési" részét jelöli. A kötegbetöltéssel adatokat tölthet be a következőkből:

  • Helyi fájlok, például CSV-k
  • Felhőalapú objektumtárolás, beleértve az Amazon S3-at, az Azure Data Lake Storage-t és a Google Cloud Storage-t
  • SaaS-alkalmazások, például a Salesforce és az olyan adatbázisok, mint az SQL Server

A Batch-betöltés számos fájlforrásformátumot támogat, például CSV, TSV, JSON, XML, Avro, ORC, Parquet és szövegfájlokat.

A Databricks támogatja a hagyományos kötegbetöltési és növekményes kötegbetöltési lehetőségeket is. Míg a hagyományos kötegbetöltés minden futtatáskor feldolgozza az összes rekordot, a növekményes kötegbetöltés automatikusan észleli az adatforrás új rekordjait, és figyelmen kívül hagyja a már betöltött rekordokat. Ez azt jelenti, hogy kevesebb adatot kell feldolgozni, és ennek eredményeképpen a betöltési feladatok gyorsabban futnak, és hatékonyabban használják a számítási erőforrásokat.

hagyományos (egyszeri) kötegbetöltés

Az adatok hozzáadása felhasználói felületen feltöltheti a helyi adatfájlokat, vagy letölthet fájlokat egy nyilvános URL-címről. Lásd: Fájlok feltöltése.

növekményes kötegbetöltés

Ez a szakasz a támogatott növekményes kötegbetöltési eszközöket ismerteti.

Adatfolyam táblák

A CREATE STREAMING TABLE SQL-parancs lehetővé teszi az adatok növekményes betöltését a felhőobjektum-tárolóból származó streamtáblákba. Lásd a(z) CREATE STREAMING TABLE.

Példa: Növekményes kötegbetöltés streamelési táblák használatával

CREATE OR REFRESH STREAMING TABLE customers
AS SELECT * FROM read_files("/databricks-datasets/retail-org/customers/", "csv")
Cloud Object Storage-összekötő

Az Auto Loader, a felhőalapú objektumtároló beépített összekötője lehetővé teszi az új adatfájlok növekményes és hatékony feldolgozását az Amazon S3 (S3), az Azure Data Lake Storage Gen 2 (ALDS2) vagy a Google Cloud Storage (GCS) érkezésekor. Lásd: Automatikus betöltő.

Példa: Növekményes kötegbetöltés Auto Loader segítségével

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/")
teljes körűen felügyelt csatlakozók

A Lakeflow Connect teljes körűen felügyelt csatlakozókat biztosít SaaS-alkalmazásokból, mint a Salesforce, és adatbázisokból, mint az SQL Server. A felügyelt összekötők a következőkkel érhetők el:

  • Databricks felhasználói felület
  • A Databricks parancssori felülete
  • Databricks API-k
  • Databricks SDK-k
  • Databricks-eszközcsomagok (DAB-k)

Lásd: Lakeflow Connect.

Folyamatos adatbetöltés

A streambetöltéssel folyamatosan betöltheti az adatsorokat vagy adatsorok kötegeit a generálásuk során, hogy közel valós időben lekérdezhesse azokat. Streamelési betöltés segítségével betölthet streaming adatokat olyan forrásokból, mint az Apache Kafka, az Amazon Kinesis, a Google Pub/Sub és az Apache Pulsar.

A Databricks a beépített összekötők használatával is támogatja a streambetöltést. Ezek az összekötők lehetővé teszik az új adatok növekményes és hatékony feldolgozását a streamelési forrásokból érkező adatok esetében. Lásd: Streamelési adatforrások konfigurálása.

Példa: Streaming adatok betöltése a Kafkából

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

Batch- és streambetöltés DLT-vel

A Databricks DLT használatát javasolja megbízható és méretezhető adatfeldolgozási folyamatok létrehozásához. A DLT támogatja a kötegelt és az adatfolyam-betöltést is, és az Auto Loader által támogatott bármely adatforrásból is betölthet adatokat.

Példa: Növekményes kötegbetöltés DLT- használatával

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

Példa: Streamfeldolgozás a Kafkából DLT használatával

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

Beviteli ütemezések

Az adatokat egyszeri műveletként, ismétlődő ütemezés szerint vagy folyamatosan is betöltheti.

  • A közel valós idejű streamelési használati esetekhez használjon folyamatos módot.
  • Kötegelt adatbetöltési használati eseteknél válasszon egyszeri betöltést, vagy állítson be ismétlődő ütemezést.

Lásd: Betöltési feladatok és Aktivált és folyamatos folyamat módú.

Adatfeldolgozási partnerek

Számos külső eszköz támogatja a batch vagy streaming alapú adatbevitelt a Databricksbe. A Databricks ellenőrzi a különböző külső integrációkat, bár a forrásrendszerekhez való hozzáférés és az adatok betöltésének konfigurálásának lépései eszközenként eltérőek. Lásd a Ingestion partnerek részt az érvényesített eszközök listájáért. Egyes technológiai partnerek Databricks Partner Connectis megtalálhatóak, amely egy olyan felhasználói felületet biztosít, amely leegyszerűsíti a külső eszközök csatlakoztatását a lakehouse-adatokhoz.

Csináld magad bevitel

A Databricks általános számítási platformot biztosít. Ennek eredményeképpen létrehozhat saját betöltési összekötőket a Databricks által támogatott bármely programozási nyelv használatával, például Python vagy Java használatával. Olyan népszerű nyílt forráskódú összekötőkódtárakat is importálhat és használhat, mint az adatbetöltési eszköz, az Airbyte és a Debezium.

betöltési alternatívák

A Databricks a legtöbb használati esetben a betöltést javasolja, mert nagy adatmennyiségek, alacsony késésű lekérdezések és külső API-korlátok fogadására skálázható. A betöltés adatokat másol a forrásrendszerekből az Azure Databricksbe, ami ismétlődő adatokat eredményez, amelyek idővel elavulttá válhatnak. Ha nem szeretne adatokat másolni, az alábbi eszközöket használhatja:

  • Lakehouse Federation lehetővé teszi külső adatforrások lekérdezését az adatok áthelyezése nélkül.
  • Delta Sharing lehetővé teszi az adatok biztonságos megosztását platformok, felhők és régiók között.

Ha azonban nem szeretne adatokat másolni, használja a Lakehouse Federation vagy a Delta Sharing szolgáltatást.

Mikor érdemes használni a Delta Sharingt?

Válassza a Delta Sharing lehetőséget a következő forgatókönyvekhez:

  • Az adatkettőzés korlátozása
  • A lehető legfrissebb adatok lekérdezése

Mikor érdemes használni a Lakehouse Federationt?

Válassza a Lakehouse Federation lehetőséget a következő forgatókönyvekhez:

  • Alkalmi jelentéskészítési vagy megvalósíthatósági igazolási munka az ETL-folyamatokon

A betöltési módszer kiválasztásakor megfontolandó szempontok

Megfontolás Útmutatás
Adatforrás Ha a Lakeflow Connect natív összekötők léteznek az adatforráshoz, ez lesz a legegyszerűbb módja az adatok betöltésének. A Lakeflow Connect által nem támogatott adatforrások esetében bontsa ki az adatokat a forrásból, majd az Automatikus betöltő használatával töltse be az adatokat a Databricksbe. Helyi fájlok esetén a Databricks felhasználói felületén töltse fel az adatokat.
Késleltetés Ha közel valós időben szeretné elemezni az adatokat, használja a streamelést a növekményes feldolgozás kihasználásához. A streamelés során az adatok az egyes rekordok érkezésekor azonnal lekérdezhetők. Ellenkező esetben használjon kötegbetöltést.
Adatáthelyezés Ha nem tud adatokat másolni a forrásrendszerekből a Databricksbe, használja a Lakehouse Federation vagy a Delta Sharing szolgáltatást.

Adatok migrálása a Delta Lake-be

A meglévő adatok Delta Lake-be való migrálásáról további információt az Adatok áttelepítése a Delta Lake-be című témakörben talál.

COPY INTO (örökölt)

A CREATE STREAMING TABLE SQL-parancs az ajánlott alternatíva az örökölt COPY INTO SQL-parancs helyett a felhőalapú objektumtárolóból való növekményes betöltéshez. Lásd a(z) COPY INTO. A skálázhatóbb és robusztusabb fájlbetöltési élmény érdekében a Databricks azt javasolja, hogy az SQL-felhasználók a streamelési táblákat használják COPY INTOhelyett.

További erőforrások

Mi a különbség a streamelés és a növekményes kötegbetöltés között?