Delen via


Veelgestelde vragen over automatisch laden

Veelgestelde vragen over Databricks Auto Loader.

Wordt het bestand opnieuw verwerkt wanneer het bestand wordt toegevoegd of overschreven?

Bestanden worden precies één keer verwerkt, tenzij cloudFiles.allowOverwrites deze is ingeschakeld. Wanneer een bestand wordt toegevoegd aan of overschreven, kan Azure Databricks niet garanderen welke versie van het bestand wordt verwerkt. U moet ook voorzichtig zijn bij het inschakelen van cloudFiles.allowOverwrites in de modus voor bestandsmeldingen, where Automatisch laden mogelijk nieuwe bestanden identificeert via zowel bestandsmeldingen als mapvermeldingen. Vanwege de discrepantie tussen de gebeurtenistijd van bestandsmeldingen en de tijd voor bestandswijziging, kan automatisch laden twee verschillende tijdstempels verkrijgen en daarom hetzelfde bestand twee keer opnemen, zelfs als het bestand maar één keer wordt geschreven.

Over het algemeen raadt Databricks u aan om autolaadprogramma's te gebruiken om alleen onveranderbare bestanden op te nemen en instelling cloudFiles.allowOverwriteste voorkomen. Als dit niet aan uw vereisten voldoet, neemt u contact op met uw Azure Databricks-accountteam.

Als mijn gegevensbestanden niet continu binnenkomen, maar met regelmatige tussenpozen, bijvoorbeeld één keer per dag, moet ik deze bron nog steeds gebruiken en zijn er voordelen?

In dit geval kunt u een Trigger.AvailableNow gestructureerde streamingtaak set opzetten (beschikbaar in Databricks Runtime 10.4 LTS en hoger) en deze inplannen om na de verwachte aankomsttijd van het bestand te worden uitgevoerd. Automatisch laadprogramma werkt goed met zowel onregelmatige als frequente updates. Zelfs als de uiteindelijke updates erg groot zijn, schaalt Auto Loader goed naar de invoergrootte. Auto Loader's efficiënte technieken voor het ontdekken van bestanden en schema-evolutiemogelijkheden maken Auto Loader de aanbevolen methode voor incrementele gegevensinvoer.

Wat gebeurt er als ik de controlepuntlocatie wijzig bij het opnieuw opstarten van de stream?

Een controlepuntlocatie onderhoudt belangrijke identificatiegegevens van een stroom. Als u de locatie van het controlepunt wijzigt, betekent dit dat u de vorige stream hebt verlaten en een nieuwe stream hebt gestart.

Moet ik vooraf gebeurtenismeldingsservices maken?

Nee Als u de modus voor bestandsmeldingen kiest en de vereiste machtigingen opgeeft, kan Automatisch laden bestandsmeldingsservices voor u maken. Zie Wat is de meldingsmodus voor het automatisch laden van bestanden?

Hoe kan ik de gebeurtenismeldingsbronnen opschonen die zijn gemaakt door Auto Loader?

U kunt de cloudresourcemanager- gebruiken om resources te list en te verwijderen. U kunt deze resources ook handmatig verwijderen met behulp van de gebruikersinterface of API's van de cloudprovider.

Kan ik meerdere streamingquery's uitvoeren vanuit verschillende invoermappen in dezelfde bucket/container?

Ja, zolang ze geen bovenliggende en onderliggende mappen zijn; Bijvoorbeeld, prod-logs/ en prod-logs/usage/ zou niet werken omdat /usage is een onderliggende map van /prod-logs.

Kan ik deze functie gebruiken wanneer er bestaande bestandsmeldingen zijn in mijn bucket of container?

Ja, zolang uw invoermap geen conflict veroorzaakt met het bestaande meldingsvoorvoegsel (bijvoorbeeld de bovenstaande bovenliggende en onderliggende mappen).

Hoe leidt Auto Loader schemaaf?

Wanneer het DataFrame voor het eerst is gedefinieerd, vermeldt Auto Loader uw bronmap en kiest de meest recente 50 GB aan gegevens of 1000 bestanden op basis van bestandswijzigingstijd, en gebruikt deze om uw gegevens af te leiden schema.

Automatisch laden zorgt er ook voor dat partitioncolumns wordt afgeleid door de structuur van de bronmap te controleren en te zoeken naar bestandspaden die de /key=value/ structuur bevatten. Als de bronmap een inconsistente structuur heeft, bijvoorbeeld:

base/path/partition=1/date=2020-12-31/file1.json
// inconsistent because date and partition directories are in different orders
base/path/date=2020-12-31/partition=2/file2.json
// inconsistent because the date directory is missing
base/path/partition=3/file3.json

Auto Loader leidt de partitioncolumns af als leeg. Gebruik cloudFiles.partitionColumns om expliciet columns te parseren vanuit de mapstructuur.

Hoe gedraagt autolaadprogramma zich wanneer de bronmap leeg is?

Als de bronmap leeg is, moet u een schema specificeren omdat er geen gegevens zijn om inferentie uit te voeren.

Wanneer leidt Autoloader schemaaf? Verandert het automatisch na elke microbatch?

De schema wordt afgeleid wanneer het DataFrame voor het eerst in uw code is gedefinieerd. Tijdens elke micro-batch worden schema wijzigingen op de fly geëvalueerd; daarom hoeft u zich geen zorgen te maken over prestatieverlies. Wanneer de stream opnieuw wordt opgestart, wordt de ontwikkelde schema opgehaald van de schema locatie en wordt deze uitgevoerd zonder overhead van deductie.

Wat is de invloed op de prestaties bij het opnemen van de gegevens bij het gebruik van Auto Loader schema inferentie?

U moet verwachten dat schema deductie een paar minuten duurt voor zeer grote bronmappen tijdens de eerste schema deductie. U moet geen significante prestatietreffers observeren, anders tijdens de uitvoering van de stream. Als u uw code uitvoert in een Azure Databricks-notebook, kunt u statusupdates zien die aangeven wanneer Auto Loader uw map doorzoekt voor steekproeven en het infereren van uw gegevens schema.

Vanwege een fout heeft een ongeldig bestand mijn schema drastisch gewijzigd. Wat moet ik doen om een schema wijziging terug te draaien?

Neem contact op met databricks-ondersteuning voor hulp.