Vad är Auto Loader?

Automatisk inläsning bearbetar inkrementellt och effektivt nya datafiler när de tas emot i molnlagring utan ytterligare installation.

Hur fungerar automatisk inläsning?

Auto Loader bearbetar inkrementellt och effektivt nya datafiler när de anländer till molnlagringen. Den innehåller en structured streaming-källa med namnet cloudFiles. Med tanke på en sökväg till indatakatalogen i molnfillagringen cloudFiles bearbetar källan automatiskt nya filer när de tas emot, med möjlighet att även bearbeta befintliga filer i katalogen. Auto Loader har stöd för både Python och SQL i Lakeflow-pipelines.

Du kan använda Auto Loader för att bearbeta miljarder filer för att migrera eller fylla i en tabell. Automatisk lastning skalar för att stödja nära realtidsinmatning av miljontals filer varje timme.

Auto Loader-källor som stöds

Automatisk inläsning kan läsa in datafiler från följande källor:

  • Amazon S3 (s3://)

  • Azure Data Lake Storage (ADLS, abfss://)

  • Google Cloud Storage (GCS, gs://)

  • Unity Catalog-volymer (/Volumes/)

  • Azure Blob Storage (wasbs://)

    Note

    Den äldre Windows Azure Storage Blob-drivrutinen (WASB) har blivit inaktuell. ABFS har många fördelar jämfört med WASB. Se Azure dokumentationen om ABFS. Dokumentation om hur du arbetar med den äldre WASB-drivrutinen finns i Anslut till Azure Blob Storage med WASB (äldre).

Auto Loader kan mata in JSON, CSV, XML, PARQUET, AVRO, ORC, TEXT och BINARYFILE filformat. Automatisk inläsning stöder också läsning av förkomprimerade filer i dessa format. Information om komprimeringstyper som stöds efter format finns i Alternativ för dataformat.

Tillgängligt i beta kan du ta in filer som FILE referenser. Till exempel kan du kontinuerligt mata in dokument eller bilder från en katalog till en tabell när nya filer anländer. Se Ingest-filer som FIL-typen.

Hur spårar Auto Loader inläsningsförlopp?

När filer upptäcks sparas deras metadata i ett skalbart nyckelvärdeslager (RocksDB) i kontrollpunktsplatsen för din Auto Loader-pipeline. Det här nyckelvärdeslagret säkerställer att data bearbetas exakt en gång.

Vid fel kan autoinläsaren återuppta från den plats där den slutade med information som lagras på kontrollpunktsplatsen och fortsätta att ge garantier exakt en gång när du skriver data till Delta Lake. Du behöver inte underhålla eller hantera något tillstånd själv för att uppnå feltolerans eller exakt-en-gång-semantik.

Inkrementell datainhämtning med Auto Loader i Lakeflow-pipelines

Databricks rekommenderar Auto Loader i Lakeflow-pipelines för inkrementell datainhämtning. Du behöver inte ange någon schema- eller kontrollpunktsplats eftersom Lakeflow-pipelines automatiskt hanterar dessa inställningar för dina pipelines. Se Konfigurera Auto Loader för produktionsarbetsbelastningar för rekommenderad konfiguration.

Databricks rekommenderar också automatisk inläsning när du använder Apache Spark Structured Streaming för att mata in data från molnobjektlagring. API:er är tillgängliga i Python och Scala.

Kom igång med Databricks Auto Loader

Se följande artiklar för att komma igång med att konfigurera inkrementell datainhämtning med Auto Loader i Lakeflow-pipelines:

Exempel: Vanliga mönster för autoladdare

Exempel på vanliga mönster för automatisk inläsning finns i Vanliga datainläsningsmönster.

Konfigurera alternativ för automatisk inläsning

En fullständig referens till konfigurationsalternativen som styr hur autoinläsare läser och bearbetar filer finns i Automatisk inläsning.

Anpassa Auto Loader

Du kan justera automatisk inläsning baserat på datavolym, variation och hastighet.

Om du upplever oväntad prestanda, se Vanliga frågor om Auto Loader.

Konfigurera Auto Loader filidentifieringslägen

Automatisk inläsning stöder två lägen för filidentifiering. Som standard använder Auto Loader kataloglistningsläge. Databricks rekommenderar dock filmeddelandeläge med hjälp av filhändelser för de flesta arbetsbelastningar. See:

Hantera data som inte är i ordning

Automatisk inläsning garanterar inte i vilken ordning filer identifieras eller bearbetas, oavsett om du använder kataloglista eller filmeddelandeläge. Använd följande strategier för att utforma dina pipelines för att hantera filer som anländer i oordning.

Lakeflow-pipelines med AUTO CDC

Om du använder Lakeflow-pipelines med Auto Loader och AUTO CDC, konfigurera kvarhållningstiden för tombstone-poster så att borttagna poster behålls tillräckligt länge för att hantera filer som anländer i oordning. Ange tabellegenskapen pipelines.cdc.tombstoneGCThresholdInSeconds i måluppspelningstabellen till ett värde som överskrider den maximala förväntade fördröjningen mellan händelse ankomst och pipelinekörning. Standardkvarhållningen är två dagar. Mer information finns i create_auto_cdc_flow.

Strukturerad direktuppspelning utan Lakeflow-pipelines

Om du använder Apache Spark Structured Streaming direkt med Auto Loader (utan Lakeflow-pipelines) bör du överväga följande mönster för att hantera data som inte är i ordning:

  • Föredrar mjuka borttagningar framför hårda borttagningar: Spåra en deleted flagga och tidsstämpel i stället för att ta bort rader, så att en sen borttagning inte står i konflikt med tidigare poster.
  • Jämför tidsstämplar innan du tillämpar uppdateringar: Jämför den inkommande postens uppdateringstidsstämpel med målradens aktuella tidsstämpel för att undvika överskrivning med inaktuella data.

Fördelar med automatisk inläsning jämfört med att använda strukturerad direktuppspelning på filer

I Apache Spark kan du läsa filer stegvis med hjälp av spark.readStream.format(fileFormat).load(directory). Automatisk inläsning ger följande fördelar jämfört med filkällan:

  • Skalbarhet: Automatisk inläsare kan identifiera miljarder filer effektivt. Återfyllnad kan utföras asynkront för att undvika slöseri med beräkningsresurser.
  • Prestanda: Kostnaden för att identifiera filer med automatisk inläsning skalar med antalet filer som matas in i stället för antalet kataloger som filerna kan landa i. Se Konfigurera Auto Loader-strömmar i kataloglistningsläge.
  • Stöd för schemainferens och utveckling: Auto Loader kan identifiera schemaavvikelser, meddela dig när schemaändringar inträffar och rädda data som annars skulle ha ignorerats eller förlorats. Se Hur fungerar schemainferens för Auto Loader?.
  • Kostnad: Automatisk inläsning använder interna moln-API:er för att hämta listor över filer som finns i lagringen. Dessutom kan Auto Loaders filaviseringläge bidra till att minska molnkostnaderna ytterligare genom att helt undvika kataloglistning. Auto Loader kan automatiskt konfigurera filaviseringstjänster på lagringsutrymme för att avsevärt minska kostnaderna för filidentifiering.