Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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:
- Självstudie: Skapa en ETL-pipeline med Lakeflow Spark Deklarativa pipelines
- Ställ in inkrementell dataingestering från Azure Data Lake Storage
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.
- Konfigurera schemainferens och utveckling i Auto Loader: Konfigurera hur automatisk inläsning härleder och utvecklar schemat för dina data över tid, inklusive hantering av nya kolumner och typändringar.
- Automatisk typutvidgning med Auto Loader
- Konfigurera automatisk inläsning för produktionsarbetsbelastningar: Optimera automatisk inläsning för tillförlitlighet och prestanda i produktion, inklusive kontrollpunkter, felhantering och hantering av filkvarhållning.
- Källdatakvarhållning: Arkivera eller ta bort filer automatiskt efter inmatning för att minska lagringskostnaderna och påskynda filidentifieringen.
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:
- Konfigurera Auto Loader-strömmar i kataloglistningsläge
- Konfigurera autoladdningsströmmar i filnotifieringsläge
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
deletedflagga 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.