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 Spark Deklarativa 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.

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 inmatning med automatisk inläsning med Lakeflow Spark Deklarativa pipelines

Databricks rekommenderar Auto Loader i Lakeflow Spark deklarativa pipelines för inkrementell datainmatning. Du behöver inte ange någon schema- eller kontrollpunktsplats eftersom Lakeflow Spark Declarative 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 datainmatning med Auto Loader och Lakeflow Spark Deklarativa 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

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

En fullständig lista över alternativ för automatisk inläsning finns i Alternativ för automatisk inläsning. Om du får oväntade prestanda kan du läsa vanliga frågor och svar.

Konfigurera Auto Loader filidentifieringslägen

Automatisk inläsning stöder två lägen för filidentifiering. 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 Spark Deklarativa pipelines med AUTO CDC

Om du använder Lakeflow Spark Deklarativa pipelines med Auto Loader och AUTO CDC, konfigurerar du tombstone-kvarhållning så att borttagna poster behålls tillräckligt länge för att hantera inkommande filer 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 Spark-deklarativa pipelines

Om du använder Apache Spark Structured Streaming direkt med Auto Loader (utan Lakeflow Spark deklarativa pipelines) bör du överväga följande mönster för att hantera data som kommer ur 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.