Vad är automatisk inläsning?
Automatisk inläsning bearbetar inkrementellt och effektivt nya datafiler när de tas emot i molnlagring utan ytterligare installation.
Hur fungerar automatisk inläsning?
Automatisk inläsning bearbetar inkrementellt och effektivt nya datafiler när de tas emot i 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 Delta Live Tables.
Du kan använda Auto Loader för att bearbeta miljarder filer för att migrera eller fylla i en table. Automatisk inläsning skalar för att stödja inmatning i nära realtid av miljontals filer per timme.
Källor för automatisk inläsning som stöds
Automatisk inläsning kan läsa in datafiler från följande källor:
Amazon S3 (
s3://
)Azure Data Lake Storage Gen2 (ADLS Gen2,
abfss://
)Google Cloud Storage (GCS,
gs://
)Azure Blob Storage (
wasbs://
)Kommentar
Den äldre Windows Azure Storage Blob-drivrutinen (WASB) har föråldrats. ABFS har många fördelar jämfört med WASB. Se Azure-dokumentationen på ABFS. Dokumentation om hur du arbetar med den äldre WASB-drivrutinen finns i Ansluta till Azure Blob Storage med WASB (äldre).
ADLS Gen1 (
adl://
)Kommentar
Azure har meddelat att Azure Data Lake Storage Gen1 ska dras tillbaka. Databricks rekommenderar att du migrerar alla data från Azure Data Lake Storage Gen1 till Azure Data Lake Storage Gen2. Om du inte har migrerat ännu kan du läsa Komma åt Azure Data Lake Storage Gen1 från Azure Databricks.
Databricks File System (DBFS,
dbfs:/
).
Automatisk inläsning kan mata in JSON
, CSV
, XML
, PARQUET
, AVRO
, ORC
, TEXT
och BINARYFILE
filformat.
Hur spårar automatisk inläsning förlopp?
När filer identifieras sparas deras metadata i ett skalbart nyckelvärdeslager (RocksDB) på kontrollpunktsplatsen för din autoinläsningspipeline. Det här nyckelvärdeslagret säkerställer att data bearbetas exakt en gång.
Vid fel kan autoinläsaren återupptas från where den slutade med information som lagras på kontrollpunktsplatsen och fortsätter 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 Auto Loader och Delta Live Tables
Databricks rekommenderar Auto Loader i Delta Live Tables för inkrementell datainmatning. Delta Live Tables utökar funktionerna i Apache Spark Structured Streaming och gör att du bara kan skriva några rader deklarativ Python eller SQL för att distribuera en datapipeline av produktionskvalitet med:
- Beräkningsinfrastruktur för automatisk skalning för kostnadsbesparingar
- Datakvalitetskontroller med förväntningar
- Automatisk schema utveckling hantering
- Övervakning via mått i händelseloggen
Du behöver inte ange någon schema eller kontrollpunktsplats eftersom Delta Live Tables automatiskt hanterar dessa inställningar för dina pipelines. Se Läs in data med Delta Live Tables.
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.
Get började med Databricks Auto Loader.
Se följande artiklar för att get började konfigurera inkrementell datainmatning med automatisk inläsning med Delta Live Tables:
Exempel: Vanliga mönster för automatisk inläsning
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 schema inferens och utveckling i Auto Loader
- Konfigurera automatisk inläsning för produktionsarbetsbelastningar
En fullständig list med alternativ för automatisk inläsning finns i:
Om du får oväntade prestanda kan du läsa vanliga frågor och svar.
Konfigurera filidentifieringslägen för automatisk inläsning
Automatisk inläsning stöder två lägen för filidentifiering. Se:
- Vad är kataloglistningsläge för automatisk inläsning?
- Vad är meddelandeläge för automatisk inläsning av fil?
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 Vad är kataloglistningsläge för automatisk inläsning?.
- Schema Stöd för inferens och utveckling: Autoladdare kan identifiera schema förändringar, meddela dig när schema ändringar inträffar, och återställa data som annars skulle ha ignorerats eller förlorats. Se Hur fungerar automatisk inläsningsslutsats schema ?.
- Kostnad: Auto Loader använder inbyggda moln-API:er för att get listor över filer som finns i lagringen. Dessutom kan autoinläsarens läge för filavisering bidra till att minska molnkostnaderna ytterligare genom att undvika kataloglistor helt och hållet. Auto Loader kan automatiskt set upp filaviseringstjänster i lagringssystem för att göra upptäckten av filer mycket billigare.