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 INTO
helyett.
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?