Das Avro-Format in Azure Data Factory und Synapse Analytics
GILT FÜR: Azure Data Factory Azure Synapse Analytics
Tipp
Testen Sie Data Factory in Microsoft Fabric, eine All-in-One-Analyselösung für Unternehmen. Microsoft Fabric deckt alle Aufgaben ab, von der Datenverschiebung bis hin zu Data Science, Echtzeitanalysen, Business Intelligence und Berichterstellung. Erfahren Sie, wie Sie kostenlos eine neue Testversion starten!
Nutzen Sie diesen Artikel, wenn Sie Avro-Dateien analysieren oder Daten im Avro-Format schreiben möchten.
Das Avro-Format wird für die folgenden Connectors unterstützt: Amazon S3, Amazon S3-kompatibler Speicher, Azure Blob, Azure Data Lake Storage Gen1, Azure Data Lake Storage Gen2, Azure Files, Dateisystem, FTP, Google Cloud Storage, Hadoop Distributed File System, HTTP, Oracle Cloud Storage und SFTP.
Dataset-Eigenschaften
Eine vollständige Liste mit den Abschnitten und Eigenschaften, die zum Definieren von Datasets zur Verfügung stehen, finden Sie im Artikel zu Datasets. Dieser Abschnitt enthält eine Liste der Eigenschaften, die vom Avro-Dataset unterstützt werden.
Eigenschaft | Beschreibung | Erforderlich |
---|---|---|
type | Die type-Eigenschaft des Datasets muss auf Avro festgelegt werden. | Ja |
location | Speicherorteinstellungen der Datei(en) Jeder dateibasierte Connector verfügt unter location über seinen eigenen Speicherorttyp und unterstützte Eigenschaften. Informationen hierzu finden Sie im Abschnitt > „Dataset-Eigenschaften“ des Artikels über Connectors. |
Ja |
avroCompressionCodec | Der Komprimierungscodec, der beim Schreiben in Avro-Dateien verwendet werden soll. Beim Lesen von Daten aus Avro-Dateien bestimmt der Dienst den Codec für die Komprimierung automatisch anhand der Dateimetadaten. Unterstützte Typen sind none (Standard), deflate und snappy. Hinweis: „Snappy“ wird derzeit von der Kopieraktivität für das Lesen/Schreiben von Avro-Dateien nicht unterstützt. |
Nein |
Hinweis
Leerzeichen im Spaltennamen werden bei Avro-Dateien nicht unterstützt.
Nachfolgend sehen Sie ein Beispiel für ein Avro-Dataset in Azure Blob Storage:
{
"name": "AvroDataset",
"properties": {
"type": "Avro",
"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",
},
"avroCompressionCodec": "snappy"
}
}
}
Eigenschaften der Kopieraktivität
Eine vollständige Liste mit den Abschnitten und Eigenschaften zum Definieren von Aktivitäten finden Sie im Artikel Pipelines. Dieser Abschnitt enthält eine Liste der Eigenschaften, die von der Avro-Quelle und -Senke unterstützt werden.
Avro als Quelle
Die folgenden Eigenschaften werden im Abschnitt *source* der Kopieraktivität unterstützt.
Eigenschaft | Beschreibung | Erforderlich |
---|---|---|
type | Die type-Eigenschaft der Quelle der Kopieraktivität muss auf AvroSource festgelegt werden. | Ja |
storeSettings | Eine Gruppe von Eigenschaften für das Lesen von Daten aus einem Datenspeicher. Jeder dateibasierte Connector verfügt unter storeSettings über eigene unterstützte Leseeinstellungen. Informationen hierzu finden Sie im Abschnitt über die >Eigenschaften der Copy-Aktivität im Artikel über Connectors. |
Nein |
Avro als Senke
Die folgenden Eigenschaften werden im Abschnitt *sink* der Kopieraktivität unterstützt.
Eigenschaft | Beschreibung | Erforderlich |
---|---|---|
type | Die type-Eigenschaft der Quelle der Kopieraktivität muss auf AvroSink festgelegt werden. | Ja |
formatSettings | Eine Gruppe von Eigenschaften. Weitere Informationen zu Avro-Schreibeinstellungen finden Sie in der Tabelle unten. | Nein |
storeSettings | Eine Gruppe von Eigenschaften für das Schreiben von Daten in einen Datenspeicher. Jeder dateibasierte Connector verfügt unter storeSettings über eigene unterstützte Schreibeinstellungen. Informationen hierzu finden Sie im Abschnitt über die >Eigenschaften der Copy-Aktivität im Artikel über Connectors. |
Nein |
Unterstützte Avro-Schreibeinstellungen unter formatSettings
:
Eigenschaft | Beschreibung | Erforderlich |
---|---|---|
Typ | Der Typ von „formatSettings“ muss auf AvroWriteSettings festgelegt werden. | Ja |
maxRowsPerFile | Wenn Sie Daten in einen Ordner schreiben, können Sie in mehrere Dateien zu schreiben und die maximale Anzahl von Zeilen pro Datei angeben. | Nein |
fileNamePrefix | Gilt, wenn maxRowsPerFile konfiguriert ist.Geben Sie das Dateinamenpräfix beim Schreiben von Daten in mehrere Dateien an, das zu diesem Muster führt: <fileNamePrefix>_00000.<fileExtension> . Wenn keine Angabe erfolgt, wird das Dateinamenpräfix automatisch generiert. Diese Eigenschaft findet keine Anwendung, wenn die Quelle ein dateibasierter Speicher oder ein Datenspeicher mit aktivierter Partitionsoption ist. |
Nein |
Eigenschaften von Mapping Data Flow
Bei Zuordnungsdatenflüssen können Sie in den folgenden Datenspeichern das Avro-Format lesen und schreiben: Azure Blob Storage, Azure Data Lake Storage Gen1, Azure Data Lake Storage Gen2 und SFTP. Darüber hinaus können Sie das Avro-Format in Amazon S3 lesen.
Quelleigenschaften
In der folgenden Tabelle sind die von einer Avro-Quelle unterstützten Eigenschaften aufgeführt. Sie können diese Eigenschaften auf der Registerkarte Quelloptionen bearbeiten.
Name | BESCHREIBUNG | Erforderlich | Zulässige Werte | Datenflussskript-Eigenschaft |
---|---|---|---|---|
Platzhalterpfade | Alle Dateien, die dem Platzhalterpfad entsprechen, werden verarbeitet. Überschreibt den Ordner und den Dateipfad, die im Dataset festgelegt sind. | nein | String[] | wildcardPaths |
Partitionsstammpfad | Für partitionierte Dateidaten können Sie einen Partitionsstammpfad eingeben, um partitionierte Ordner als Spalten zu lesen. | nein | String | partitionRootPath |
Liste mit den Dateien | Gibt an, ob Ihre Quelle auf eine Textdatei verweist, in der die zu verarbeitenden Dateien aufgelistet sind. | nein | true oder false |
fileList |
Spalte, in der der Dateiname gespeichert wird | Erstellt eine neue Spalte mit dem Namen und Pfad der Quelldatei. | nein | String | rowUrlColumn |
Nach Abschluss | Löscht oder verschiebt die Dateien nach der Verarbeitung. Dateipfad beginnt mit dem Containerstamm | nein | Löschen: true oder false Verschieben: ['<from>', '<to>'] |
purgeFiles moveFiles |
Nach der letzten Änderung filtern | Filtern Sie Dateien nach dem Zeitpunkt ihrer letzten Änderung. | nein | Zeitstempel | modifiedAfter modifiedBefore |
Finden keiner Dateien zulässig | „true“ gibt an, dass kein Fehler ausgelöst wird, wenn keine Dateien gefunden werden. | nein | true oder false |
ignoreNoFilesFound |
Senkeneigenschaften
In der folgenden Tabelle sind die von einer Avro-Senke unterstützten Eigenschaften aufgeführt. Sie können diese Eigenschaften auf der Registerkarte Einstellungen bearbeiten.
Name | BESCHREIBUNG | Erforderlich | Zulässige Werte | Datenflussskript-Eigenschaft |
---|---|---|---|---|
Ordner löschen | Wenn der Zielordner vor dem Schreiben gelöscht wird. | nein | true oder false |
truncate |
Dateinamenoption | Das Namensformat der geschriebenen Daten. Standardmäßig eine Datei pro Partition im Format part-#####-tid-<guid> . |
Nein | Muster: Zeichenfolge Pro Partition: Zeichenfolge[] Als Daten in Spalte: Zeichenfolge Ausgabe in eine einzelne Datei: ['<fileName>'] |
filePattern partitionFileNames rowUrlColumn partitionFileNames |
Alle in Anführungszeichen | Gibt an, ob alle Werte in Anführungszeichen eingeschlossen werden. | nein | true oder false |
quoteAll |
Datentypunterstützung
Copy-Aktivität
Komplexe Datentypen von Avro (Datensätze, Enumerationen, Arrays, Zuordnungen, Unions und Konstanten) werden in der Kopieraktivität nicht unterstützt.
Datenflüsse
Beim Arbeiten mit Avro-Dateien in Datenflüssen können Sie komplexe Datentypen lesen und schreiben, Sie müssen aber zuerst unbedingt das physische Schema aus dem Dataset löschen. In Datenflüssen können Sie die logische Projektion festlegen und Spalten ableiten, bei denen es sich um komplexe Strukturen handelt. Anschließend können diese Felder einer Avro-Datei automatisch zugeordnet werden.