Delen via


Tekstindeling met scheidingstekens in Azure Data Factory en Azure Synapse Analytics

VAN TOEPASSING OP: Azure Data Factory Azure Synapse Analytics

Tip

Probeer Data Factory uit in Microsoft Fabric, een alles-in-één analyseoplossing voor ondernemingen. Microsoft Fabric omvat alles, van gegevensverplaatsing tot gegevenswetenschap, realtime analyses, business intelligence en rapportage. Meer informatie over het gratis starten van een nieuwe proefversie .

Volg dit artikel als u de tekstbestanden met scheidingstekens wilt parseren of de gegevens wilt schrijven in een tekstindeling met scheidingstekens.

Tekstindeling met scheidingstekens wordt ondersteund voor de volgende connectors:

Eigenschappen van gegevensset

Zie het artikel Gegevenssets voor een volledige lijst met secties en eigenschappen die beschikbaar zijn voor het definiëren van gegevenssets . Deze sectie bevat een lijst met eigenschappen die worden ondersteund door de gegevensset met scheidingstekens.

Eigenschappen Beschrijving Vereist
type De typeeigenschap van de gegevensset moet worden ingesteld op DelimitedText. Ja
locatie Locatie-instellingen van de bestanden. Elke op bestanden gebaseerde connector heeft een eigen locatietype en ondersteunde eigenschappen onder location. Ja
columnDelimiter De tekens die worden gebruikt om kolommen in een bestand te scheiden.
De standaardwaarde is komma ,. Wanneer het kolomscheidingsteken is gedefinieerd als lege tekenreeks, wat betekent dat er geen scheidingsteken is, wordt de hele regel als één kolom genomen.
Op dit moment wordt kolomscheidingsteken als lege tekenreeks alleen ondersteund voor toewijzingsgegevensstroom, maar niet Copy-activiteit.
Nee
rowDelimiter Voor Copy-activiteit wordt het enkele teken of \r\n gebruikt om rijen in een bestand te scheiden. De standaardwaarde is een van de volgende waarden die worden gelezen: ["\r\n", "\r", "\n"]; op schrijven: "\r\n". \r\n wordt alleen ondersteund in de kopieeropdracht.
Voor de toewijzingsgegevensstroom worden de enkele of twee tekens gebruikt om rijen in een bestand te scheiden. De standaardwaarde is een van de volgende waarden die worden gelezen: ["\r\n", "\r", "\n"]; op schrijven: "\n".
Wanneer het rijscheidingsteken is ingesteld op geen scheidingsteken (lege tekenreeks), moet het kolomscheidingsteken worden ingesteld als geen scheidingsteken (lege tekenreeks), wat betekent dat de hele inhoud als één waarde moet worden behandeld.
Op dit moment wordt rijscheidingsteken als lege tekenreeks alleen ondersteund voor toewijzingsgegevensstroom, maar niet Copy-activiteit.
Nee
quoteChar Het enkele teken om kolomwaarden aan te geven als het kolomscheidingsteken bevat.
De standaardwaarde is dubbele aanhalingstekens".
Wanneer quoteChar is gedefinieerd als lege tekenreeks, betekent dit dat er geen aanhalingstekens en kolomwaarde niet tussen aanhalingstekens staan en escapeChar wordt gebruikt om het kolomscheidingsteken en zichzelf te ontsnappen.
Nee
escapeChar Het enkele teken om aanhalingstekens binnen een aanhalingstekens te ontsnappen.
De standaardwaarde is backslash \.
Wanneer escapeChar deze is gedefinieerd als lege tekenreeks, moet de quoteChar tekenreeks ook als lege tekenreeks worden ingesteld. In dat geval moet u ervoor zorgen dat alle kolomwaarden geen scheidingstekens bevatten.
Nee
firstRowAsHeader Hiermee geeft u op of de eerste rij moet worden behandeld/als koptekstregel met namen van kolommen.
Toegestane waarden zijn waar en onwaar (standaard).
Wanneer de eerste rij als veldnamen onwaar is, worden kolomnamen automatisch gegenereerd als voorbeeld van ui-gegevens en opzoekactiviteit als Prop_{n} (beginnend vanaf 0), vereist kopieeractiviteit expliciete toewijzing van bron naar sink en zoekt u kolommen op rangschikken (beginnend vanaf 1), en toewijzingsgegevensstroomlijsten en zoekt u kolommen met de naam als Column_{n} (beginnend vanaf 1).
Nee
nullValue Hiermee geeft u de tekenreeksweergave van null-waarde.
De standaardwaarde is een lege tekenreeks.
Nee
encodingName Het coderingstype dat wordt gebruikt voor het lezen/schrijven van testbestanden.
Toegestane waarden zijn als volgt: "UTF-8","UTF-8 zonder BOM", "UTF-16", "UTF-16BE", "UTF-32", "UTF-32BE", "US-ASCII", "UTF-7", "BIG5", "EUC-JP", "EUC-KR", "GB2312", "GB18030", "JOHAB", "SHIFT-JIS", "CP875", "CP866", "IBM00858", "IBM037", "IBM273", "IBM437", "IBM500", "IBM737", "IBM775", "IBM850", "IBM852", "IBM855", "IBM857", "IBM860", "IBM861", "IBM863", "IBM864", "IBM865", "IBM865", "IBM869", "IBM870", "IBM01140", "IBM01141", "IBM01142", "IBM01143", "IBM01144", "IBM01145", "IBM01146", "IBM01147", "IBM01148", "IBM01149", "ISO-2022-JP", "ISO-2022-KR", "ISO-8859-1", "ISO-8859-2", "ISO-8859-3", "ISO-8859-4", "ISO-8859-5", "ISO-8859-6", "ISO-8859-7", "ISO-8859-8", "ISO-8859-9", "ISO-8859-13", "ISO-8859-15", "WINDOWS-874", "WINDOWS-1250", "WINDOWS-1251", "WINDOWS-1255"2", "WINDOWS-1253", "WINDOWS-1254", "WINDOWS-1255", "WINDOWS-1256", "WINDOWS-1257", "WINDOWS-1258".
Opmerking: toewijzingsgegevensstroom biedt geen ondersteuning voor UTF-7-codering.
Opmerking: toewijzingsgegevensstroom biedt geen ondersteuning voor UTF-8-codering met Byte Order Mark (BOM).
Nee
compressionCodec De compressiecodec die wordt gebruikt voor het lezen/schrijven van tekstbestanden.
Toegestane waarden zijn bzip2, gzip, deflate, ZipDeflate, TarGzip, Tar, snappy of lz4. De standaardwaarde wordt niet gecomprimeerd.
Opmerking momenteel Copy-activiteit geen ondersteuning biedt voor 'snappy' en 'lz4', en toewijzingsgegevensstroom biedt geen ondersteuning voor 'ZipDeflate', 'TarGzip' en 'Tar'.
Opmerking wanneer u kopieeractiviteit gebruikt om ZipDeflate TarGzip/Tar-bestanden te decomprimeren /en schrijven naar een of meer op bestanden gebaseerde sinkgegevensopslag. Standaard worden bestanden uitgepakt in de map:<path specified in dataset>/<folder named as source compressed file>/, gebruikt/preserveCompressionFileNameAsFolder preserveZipFileNameAsFolderu bij de kopieeractiviteitsbron om te bepalen of u de naam van de gecomprimeerde bestanden als mapstructuur wilt behouden.
Nee
compressionLevel De compressieverhouding.
Toegestane waarden zijn Optimaal of Snelste.
- Snelste: De compressiebewerking moet zo snel mogelijk worden voltooid, zelfs als het resulterende bestand niet optimaal is gecomprimeerd.
- Optimaal: De compressiebewerking moet optimaal worden gecomprimeerd, zelfs als het langer duurt om de bewerking te voltooien. Zie het onderwerp Compressieniveau voor meer informatie.
Nee

Hieronder ziet u een voorbeeld van een gegevensset met scheidingstekens in Azure Blob Storage:

{
    "name": "DelimitedTextDataset",
    "properties": {
        "type": "DelimitedText",
        "linkedServiceName": {
            "referenceName": "<Azure Blob Storage linked service name>",
            "type": "LinkedServiceReference"
        },
        "schema": [ < physical schema, optional, retrievable during authoring > ],
        "typeProperties": {
            "location": {
                "type": "AzureBlobStorageLocation",
                "container": "containername",
                "folderPath": "folder/subfolder",
            },
            "columnDelimiter": ",",
            "quoteChar": "\"",
            "escapeChar": "\"",
            "firstRowAsHeader": true,
            "compressionCodec": "gzip"
        }
    }
}

Eigenschappen van de kopieeractiviteit

Zie het artikel Pijplijnen voor een volledige lijst met secties en eigenschappen die beschikbaar zijn voor het definiëren van activiteiten. Deze sectie bevat een lijst met eigenschappen die worden ondersteund door de tekstbron en sink met scheidingstekens.

Tekst met scheidingstekens als bron

De volgende eigenschappen worden ondersteund in de sectie kopieeractiviteit *source* .

Eigenschappen Beschrijving Vereist
type De typeeigenschap van de bron van de kopieeractiviteit moet worden ingesteld op DelimitedTextSource. Ja
formatSettings Een groep eigenschappen. Raadpleeg de onderstaande tabel met leesinstellingen voor tekst met scheidingstekens. Nee
storeSettings Een groep eigenschappen over het lezen van gegevens uit een gegevensarchief. Elke op bestanden gebaseerde connector heeft zijn eigen ondersteunde leesinstellingen onder storeSettings. Nee

Ondersteunde leesinstellingen voor tekst met scheidingstekens onder formatSettings:

Eigenschappen Beschrijving Vereist
type Het type formatSettings moet worden ingesteld op DelimitedTextReadSettings. Ja
skipLineCount Geeft het aantal niet-lege rijen aan dat moet worden overgeslagen bij het lezen van gegevens uit invoerbestanden.
Als zowel skipLineCount als firstRowAsHeader is opgegeven, worden de regels eerst overgeslagen en wordt de headerinformatie gelezen uit het invoerbestand.
Nee
compressionProperties Een groep eigenschappen over het decomprimeren van gegevens voor een bepaalde compressiecodec. Nee
preserveZipFileNameAsFolder
(onder compressionProperties->type als ZipDeflateReadSettings)
Is van toepassing wanneer de invoergegevensset is geconfigureerd met ZipDeflate-compressie . Hiermee wordt aangegeven of de naam van het zip-bronbestand moet worden bewaard als mapstructuur tijdens het kopiëren.
- Als deze is ingesteld op true (standaard), schrijft de service uitgepakte bestanden naar <path specified in dataset>/<folder named as source zip file>/.
- Als deze is ingesteld op onwaar, schrijft de service uitgepakte bestanden rechtstreeks naar <path specified in dataset>. Zorg ervoor dat u geen dubbele bestandsnamen in verschillende zip-bronbestanden hebt om racen of onverwacht gedrag te voorkomen.
Nee
preserveCompressionFileNameAsFolder
(onder compressionProperties->type als TarGZipReadSettings of TarReadSettings)
Is van toepassing wanneer de invoergegevensset is geconfigureerd met Tar-compressie van Tar./ Geeft aan of de gecomprimeerde bronbestandsnaam behouden moet blijven als mapstructuur tijdens het kopiëren.
- Als deze is ingesteld op true (standaard), schrijft de service gedecomprimeerde bestanden naar <path specified in dataset>/<folder named as source compressed file>/.
- Als deze is ingesteld op onwaar, schrijft de service gedecomprimeerde bestanden rechtstreeks naar <path specified in dataset>. Zorg ervoor dat u geen dubbele bestandsnamen in verschillende bronbestanden hebt om racen of onverwacht gedrag te voorkomen.
Nee
"activities": [
    {
        "name": "CopyFromDelimitedText",
        "type": "Copy",
        "typeProperties": {
            "source": {
                "type": "DelimitedTextSource",
                "storeSettings": {
                    "type": "AzureBlobStorageReadSettings",
                    "recursive": true
                },
                "formatSettings": {
                    "type": "DelimitedTextReadSettings",
                    "skipLineCount": 3,
                    "compressionProperties": {
                        "type": "ZipDeflateReadSettings",
                        "preserveZipFileNameAsFolder": false
                    }
                }
            },
            ...
        }
        ...
    }
]

Tekst met scheidingstekens als sink

De volgende eigenschappen worden ondersteund in de sectie kopieeractiviteit *sink* .

Eigenschappen Beschrijving Vereist
type De typeeigenschap van de bron van de kopieeractiviteit moet worden ingesteld op DelimitedTextSink. Ja
formatSettings Een groep eigenschappen. Raadpleeg de tabel met instellingen voor tekst met scheidingstekens hieronder. Nee
storeSettings Een groep eigenschappen over het schrijven van gegevens naar een gegevensarchief. Elke op bestanden gebaseerde connector heeft zijn eigen ondersteunde schrijfinstellingen onder storeSettings. Nee

Ondersteunde instellingen voor het schrijven van tekst met scheidingstekens onder formatSettings:

Eigenschappen Beschrijving Vereist
type Het type formatSettings moet worden ingesteld op DelimitedTextWriteSettings. Ja
fileExtension De bestandsextensie die wordt gebruikt om de uitvoerbestanden een naam te geven, bijvoorbeeld .csv, .txt. Deze moet worden opgegeven wanneer de fileName gegevens niet zijn opgegeven in de uitvoergegevensset DelimitedText. Wanneer de bestandsnaam is geconfigureerd in de uitvoergegevensset, wordt deze gebruikt als de naam van het sinkbestand en wordt de instelling voor de bestandsextensie genegeerd. Ja wanneer de bestandsnaam niet is opgegeven in de uitvoergegevensset
maxRowsPerFile Wanneer u gegevens in een map schrijft, kunt u ervoor kiezen om naar meerdere bestanden te schrijven en de maximumrijen per bestand op te geven. Nee
fileNamePrefix Van toepassing wanneer maxRowsPerFile deze is geconfigureerd.
Geef het voorvoegsel voor de bestandsnaam op bij het schrijven van gegevens naar meerdere bestanden, wat resulteert in dit patroon: <fileNamePrefix>_00000.<fileExtension> Als dit niet is opgegeven, wordt het voorvoegsel van de bestandsnaam automatisch gegenereerd. Deze eigenschap is niet van toepassing wanneer de bron een op bestanden gebaseerd archief of gegevensarchief met partitieopties is.
Nee

Eigenschappen van toewijzingsgegevensstroom

In toewijzingsgegevensstromen kunt u de tekstindeling met scheidingstekens lezen en schrijven in de volgende gegevensarchieven: Azure Blob Storage, Azure Data Lake Storage Gen1, Azure Data Lake Storage Gen2 en SFTP, en u kunt de tekstindeling met scheidingstekens lezen in Amazon S3.

Inlinegegevensset

Toewijzingsgegevensstromen ondersteunen 'inlinegegevenssets' als optie voor het definiëren van uw bron en sink. Een inline gescheiden gegevensset wordt rechtstreeks in de bron- en sinktransformaties gedefinieerd en wordt niet gedeeld buiten de gedefinieerde gegevensstroom. Het is handig om gegevensseteigenschappen rechtstreeks in uw gegevensstroom te parameteriseren en kan profiteren van verbeterde prestaties van gedeelde ADF-gegevenssets.

Wanneer u grote aantallen bronmappen en bestanden leest, kunt u de prestaties van de detectie van gegevensbestanden verbeteren door de optie 'Door gebruiker geprojecteerd schema' in de projectie in te stellen | Dialoogvenster Schemaopties. Met deze optie wordt de automatische detectie van het standaardschema van ADF uitgeschakeld en worden de prestaties van bestandsdetectie aanzienlijk verbeterd. Voordat u deze optie instelt, moet u ervoor zorgen dat u de projectie importeert, zodat ADF een bestaand schema voor projectie heeft. Deze optie werkt niet met schemadrift.

Broneigenschappen

De onderstaande tabel bevat de eigenschappen die worden ondersteund door een tekstbron met scheidingstekens. U kunt deze eigenschappen bewerken op het tabblad Bronopties .

Name Beschrijving Vereist Toegestane waarden Eigenschap gegevensstroomscript
Paden met jokertekens Alle bestanden die overeenkomen met het jokertekenpad worden verwerkt. Hiermee overschrijft u de map en het bestandspad dat is ingesteld in de gegevensset. nee Tekenreeks[] jokertekenpaden
Hoofdpad voor partitie Voor bestandsgegevens die zijn gepartitioneerd, kunt u een partitiehoofdpad invoeren om gepartitioneerde mappen als kolommen te lezen nee String partitionRootPath
Lijst met bestanden Of uw bron verwijst naar een tekstbestand waarin bestanden worden vermeld die moeten worden verwerkt nee true of false fileList
Tekst met meerdere regels Bevat het bronbestand rijen die meerdere regels omvatten. Waarden met meerdere regels moeten tussen aanhalingstekens staan. nee true of false multiLineRow
Kolom voor het opslaan van de bestandsnaam Een nieuwe kolom maken met de naam en het pad van het bronbestand nee String rowUrlColumn
Na voltooiing Verwijder of verplaats de bestanden na verwerking. Bestandspad begint vanuit de hoofdmap van de container nee Verwijderen: true of false
Bewegen: ['<from>', '<to>']
purgeFiles
moveFiles
Filteren op laatst gewijzigd Kiezen om bestanden te filteren op basis van wanneer ze voor het laatst zijn gewijzigd nee Tijdstempel modifiedAfter
modifiedBefore
Geen bestanden gevonden toestaan Indien waar, wordt er geen fout gegenereerd als er geen bestanden worden gevonden nee true of false ignoreNoFilesFound
Maximum aantal kolommen De standaardwaarde is 20480. Deze waarde aanpassen wanneer het kolomnummer meer dan 20480 is nee Geheel getal maxColumns

Notitie

Ondersteuning voor gegevensstroombronnen voor een lijst met bestanden is beperkt tot 1024 vermeldingen in uw bestand. Als u meer bestanden wilt opnemen, gebruikt u jokertekens in de lijst met bestanden.

Bronvoorbeeld

De onderstaande afbeelding is een voorbeeld van een configuratie van een tekstbron met scheidingstekens in toewijzingsgegevensstromen.

DelimitedText-bron

Het gekoppelde gegevensstroomscript is:

source(
    allowSchemaDrift: true,
	validateSchema: false,
	ignoreNoFilesFound: false,
	multiLineRow: true,
	wildcardPaths:['*.csv']) ~> CSVSource

Notitie

Gegevensstroombronnen ondersteunen een beperkte set Linux-globbing die wordt ondersteund door Hadoop-bestandssystemen

Sink-eigenschappen

De onderstaande tabel bevat de eigenschappen die worden ondersteund door een tekstsink met scheidingstekens. U kunt deze eigenschappen bewerken op het tabblad Instellingen .

Name Beschrijving Vereist Toegestane waarden Eigenschap gegevensstroomscript
Ga naar de map Als de doelmap is gewist voordat u gaat schrijven nee true of false truncate
Optie voor bestandsnaam De naamgevingsindeling van de geschreven gegevens. Standaard één bestand per partitie in indeling part-#####-tid-<guid> nee Patroon: Tekenreeks
Per partitie: Tekenreeks[]
Naambestand als kolomgegevens: Tekenreeks
Uitvoer naar één bestand: ['<fileName>']
Naammap als kolomgegevens: Tekenreeks
filePattern
partitionFileNames
rowUrlColumn
partitionFileNames
rowFolderUrlColumn
Alles citeren Alle waarden tussen aanhalingstekens plaatsen nee true of false quoteAll
Koptekst Klantheaders toevoegen aan uitvoerbestanden nee [<string array>] koptekst

Sink-voorbeeld

De onderstaande afbeelding is een voorbeeld van een configuratie van een tekstsink met scheidingstekens in toewijzingsgegevensstromen.

DelimitedText-sink

Het gekoppelde gegevensstroomscript is:

CSVSource sink(allowSchemaDrift: true,
    validateSchema: false,
    truncate: true,
    skipDuplicateMapInputs: true,
    skipDuplicateMapOutputs: true) ~> CSVSink

Hier volgen enkele algemene connectors en indelingen met betrekking tot de tekstindeling met scheidingstekens: