Freigeben über


Schema- und Datentypzuordnung in Kopieraktivität

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!

In diesem Artikel wird beschrieben, wie die Kopieraktivität in Azure Data Factory Schemazuordnung und Datentypzuordnung von Quelldaten zu Senkendaten ausführt.

Schemazuordnung

Standardzuordnung

Die Kopieraktivität ordnet standardmäßig einer Senke Quelldaten nach Spaltennamen und unter Beachtung der Groß-/Kleinschreibung zu. Wenn beispielsweise beim Schreiben in Dateien keine Senke vorhanden ist, werden die Quellfeldnamen als Senkennamen verwendet. Wenn die Senke bereits vorhanden ist, muss sie alle Spalten enthalten, die aus der Quelle kopiert werden. Bei einer Standardzuordnung dieser Art werden flexible Schemas und Schemaabweichungen von Quelle zu Senke und von Ausführung zu Ausführung unterstützt. Dabei können alle vom Quelldatenspeicher zurückgegebenen Daten in die Senke kopiert werden.

Wenn es sich bei Ihrer Quelle um eine Textdatei ohne Headerzeile handelt, ist eine explizite Zuordnung erforderlich, da die Quelle keine Spaltennamen enthält.

Explizite Zuordnung

Sie können auch eine explizite Zuordnung angeben, um die Spalten-Feld-Zuordnung von der Quelle zur Senke an Ihre Anforderungen anzupassen. Bei der expliziten Zuordnung können Sie Quelldaten nur partiell in die Senke kopieren, Quelldaten mit anderen Namen zur Senke zuordnen oder tabellarische/hierarchische Daten neu strukturieren. Kopieraktivität:

  1. Lesen von Daten aus der Quelle und Bestimmen des Quellschemas
  2. Wendet Ihre definierte Zuordnung an.
  3. Schreiben der Daten in die Senke

Weitere Informationen:

Sie können die Zuordnung über die Benutzeroberfläche für die Dokumenterstellung unter –> „Kopieraktivität“ –> Registerkarte „Zuordnung“ konfigurieren oder sie in der Kopieraktivität mithilfe der Eigenschaft –>translator programmgesteuert angeben. Die folgenden Eigenschaften werden in translator – >mappings-Array – >-Objekte – >source und sink unterstützt, die auf die jeweilige Spalte bzw. das Feld zum Zuordnen von Daten verweisen.

Eigenschaft Beschreibung Erforderlich
name Name der Quell- oder Senkenspalte bzw. des Quell- oder Senkenfelds. Für tabellarische Quelle und Senke anwenden. Ja
ordinal Spaltenindex. Bei 1 beginnen.
Anwenden und erforderlich, wenn Text mit Trennzeichen und ohne Kopfzeile verwendet wird.
Nein
Pfad Der Ausdruck des JSON-Pfads für jedes Feld, das extrahiert oder zugeordnet werden soll. Wird für hierarchische Quelle und Senke (z. B. Azure Cosmos DB-, MongoDB- oder REST-Connectors) angewendet.
Der JSON-Pfad für Felder unter dem Stammobjekt beginnt mit dem Stamm „$“. Für Felder innerhalb des von der collectionReference-Eigenschaften ausgewählten Arrays beginnt der JSON-Pfad mit dem Arrayelement ohne $.
Nein
Typ Interimsdatentyp der Quell- oder Senkenspalte. Im Allgemeinen müssen Sie diese Eigenschaft nicht angeben oder ändern. Weitere Informationen zu Datentypzuordnung. Nein
Kultur Kultur der Quell- oder Senkenspalte. Anwenden, wenn der Typ Datetime oder Datetimeoffset ist. Der Standardwert lautet en-us.
Im Allgemeinen müssen Sie diese Eigenschaft nicht angeben oder ändern. Weitere Informationen zu Datentypzuordnung.
Nein
format Zu verwendende Formatzeichenfolge, wenn der Typ Datetime oder Datetimeoffset ist. Informationen zum Formatieren von Datum und Uhrzeit finden Sie unter Benutzerdefinierte Formatzeichenfolgen für Datum und Uhrzeit. Im Allgemeinen müssen Sie diese Eigenschaft nicht angeben oder ändern. Weitere Informationen zu Datentypzuordnung. Nein

Die folgenden Eigenschaften werden unter translator und unter mappings unterstützt:

Eigenschaft Beschreibung Erforderlich
Sammlungsreferenz Wird beim Kopieren von Daten aus einer hierarchischen Quelle (z. B. Azure Cosmos DB-, MongoDB- oder REST-Connectors) angewendet.
Wenn Sie Daten durchlaufen und Objekte innerhalb eines Arrayfelds mit demselben Muster extrahieren, und wenn Sie möchten, dass jedes Objekt in einer neuen Zeile steht, geben Sie den JSON-Pfad dieses Arrays für die übergreifende Anwendung an.
Nein

Tabellarische Quelle zu tabellarischer Senke

Beispielsweise zum Kopieren von Daten aus Salesforce in Azure SQL-Datenbank und zum expliziten Zuordnen von drei Spalten:

  1. Klicken Sie in der Kopieraktivität auf der Registerkarte –>„Zuordnung“ auf die Schaltfläche Schemas importieren, um das Quell- und das Senkenschema zu importieren.

  2. Ordnen Sie die erforderlichen Felder zu, und schließen Sie die restlichen Felder aus bzw. löschen Sie sie.

Zuordnung von tabellarisch zu tabellarisch

Dieselbe Zuordnung kann im Payload der Kopieraktivität wie folgt konfiguriert werden (siehe translator):

{
    "name": "CopyActivityTabularToTabular",
    "type": "Copy",
    "typeProperties": {
        "source": { "type": "SalesforceSource" },
        "sink": { "type": "SqlSink" },
        "translator": {
            "type": "TabularTranslator",
            "mappings": [
                {
                    "source": { "name": "Id" },
                    "sink": { "name": "CustomerID" }
                },
                {
                    "source": { "name": "Name" },
                    "sink": { "name": "LastName" }
                },
                {
                    "source": { "name": "LastModifiedDate" },
                    "sink": { "name": "ModifiedDate" }
                }
            ]
        }
    },
    ...
}

Beim Kopieren von Daten aus durch Trennzeichen getrennten Textdateien ohne Kopfzeile werden die Spalten durch Ordnungszahlen statt durch Namen dargestellt.

{
    "name": "CopyActivityTabularToTabular",
    "type": "Copy",
    "typeProperties": {
        "source": { "type": "DelimitedTextSource" },
        "sink": { "type": "SqlSink" },
        "translator": {
            "type": "TabularTranslator",
            "mappings": [
                {
                    "source": { "ordinal": "1" },
                    "sink": { "name": "CustomerID" }
                }, 
                {
                    "source": { "ordinal": "2" },
                    "sink": { "name": "LastName" }
                }, 
                {
                    "source": { "ordinal": "3" },
                    "sink": { "name": "ModifiedDate" }
                }
            ]
        }
    },
    ...
}

Hierarchische Quelle zu tabellarischer Senke

Beim Kopieren von Daten aus einer hierarchischen Quelle in eine tabellarische Senke werden von der Kopieraktivität die folgenden Funktionen unterstützt:

  • Extrahieren von Daten aus Objekten und Arrays.
  • Übergreifendes Anwenden mehrerer Objekte mit demselben Muster aus einem Array, wobei im tabellarischen Ergebnis ein JSON-Objekt in mehrere Datensätze konvertiert wird.

Für eine erweiterte Transformation von hierarchisch zu tabellarisch können Sie Datenfluss verwenden.

Sie besitzen zum Beispiel ein MongoDB-Quelldokument mit folgendem Inhalt:

{
    "id": {
        "$oid": "592e07800000000000000000"
    },
    "number": "01",
    "date": "20170122",
    "orders": [
        {
            "prod": "p1",
            "price": 23
        },
        {
            "prod": "p2",
            "price": 13
        },
        {
            "prod": "p3",
            "price": 231
        }
    ],
    "city": [ { "name": "Seattle" } ]
}

Wenn Sie es in eine Textdatei im folgenden Format mit Kopfzeile kopieren möchten, indem Sie die Daten im Array (order_pd und order_price) vereinfachen und mit den allgemeinen Stamminformationen (Anzahl, Datum und Stadt) überkreuzt verknüpfen, dann gilt Folgendes:

Bestellnummer Bestelldatum order_pd Bestellpreis Stadt
01 20170122 P1 23 Seattle
01 20170122 P2 13 Seattle
01 20170122 P3 231 Seattle

Sie können eine Zuordnung dieser Art über die Data Factory-Benutzeroberfläche für die Erstellung definieren:

  1. Klicken Sie in der Kopieraktivität auf der Registerkarte –>„Zuordnung“ auf die Schaltfläche Schemas importieren, um das Quell- und das Senkenschema zu importieren. Da der Dienst beim Importieren eines Schemas die obersten Objekte abfragt, können Sie, falls ein Feld nicht angezeigt wird, dieses der entsprechenden Ebene in der Hierarchie hinzufügen. Zeigen Sie hierzu auf einen vorhandenen Feldnamen, und geben Sie an, dass Sie einen Knoten, ein Objekt oder ein Array hinzufügen möchten.

  2. Wählen Sie das Array, mit dem Sie iterieren und Daten extrahieren möchten. Das Feld wird automatisch als Sammlungsreferenz ausgefüllt. Bei diesem Vorgang wird nur ein einzelnes Array unterstützt.

  3. Ordnen Sie der Senke die erforderlichen Felder zu. Die zugehörigen JSON-Pfade für die hierarchische Seite werden automatisch vom Dienst bestimmt.

Hinweis

Wenn bei einem Datensatz das als Sammlungsverweis markierte Array leer und das Kontrollkästchen aktiviert ist, wird der gesamte Datensatz übersprungen.

Hierarchie in Tabellenform umwandeln mithilfe der Benutzeroberfläche

Sie können auch zum erweiterten Editor wechseln. Dann können Sie die JSON-Pfade der Felder direkt anzeigen und bearbeiten. Wenn Sie neue Zuordnungen in dieser Ansicht hinzufügen möchten, geben Sie den JSON-Pfad an.

Hierarchische Daten tabellarisch abbilden mit dem erweiterten Editor

Dieselbe Zuordnung kann als folgende Nutzlast der Kopieraktivität konfiguriert werden (siehe translator):

{
    "name": "CopyActivityHierarchicalToTabular",
    "type": "Copy",
    "typeProperties": {
        "source": { "type": "MongoDbV2Source" },
        "sink": { "type": "DelimitedTextSink" },
        "translator": {
            "type": "TabularTranslator",
            "mappings": [
                {
                    "source": { "path": "$['number']" },
                    "sink": { "name": "orderNumber" }
                },
                {
                    "source": { "path": "$['date']" },
                    "sink": { "name": "orderDate" }
                },
                {
                    "source": { "path": "['prod']" },
                    "sink": { "name": "order_pd" }
                },
                {
                    "source": { "path": "['price']" },
                    "sink": { "name": "order_price" }
                },
                {
                    "source": { "path": "$['city'][0]['name']" },
                    "sink": { "name": "city" }
                }
            ],
            "collectionReference": "$['orders']"
        }
    },
    ...
}

** Tabellarische oder hierarchische Datenquelle zu hierarchischer Datensenke

Der Ablauf für den Benutzer ist mit dem bei der Zuordnung einer hierarchischen Quelle zu einer tabellarischen Senke vergleichbar.

Beim Kopieren von Daten aus einer tabellarischen Quelle in eine hierarchische Senke wird das Schreiben in ein Array innerhalb des Objekts nicht unterstützt.

Beim Kopieren von Daten aus einer hierarchischen Quelle in eine hierarchische Senke können Sie zusätzlich die gesamte Hierarchie der Ebene beibehalten, indem Sie das Objekt/Array auswählen und der Senke zuordnen, ohne die internen Felder bearbeiten zu müssen.

Für eine erweiterte Transformation zur Umstrukturierung von Daten können Sie Datenfluss verwenden.

Parametrisieren von Zuordnungen

Wenn Sie eine vorlagenbasierte Pipeline zum dynamischen Kopieren einer großen Anzahl von Objekten erstellen möchten, ermitteln Sie, ob Sie die Standardzuordnung nutzen können oder expliziten Zuordnungen für die jeweiligen Objekte definieren müssen.

Wenn eine explizite Zuordnung erforderlich ist, haben Sie folgende Möglichkeiten:

  1. Definieren Sie einen Parameter mit einem Objekttyp auf Pipelineebene, z. B. mapping.

  2. Parametrisieren Sie die Zuordnung: Wählen Sie in der Kopieraktivität auf der Registerkarte –>„Zuordnung“, dass Sie dynamischen Inhalt hinzufügen möchten, und wählen Sie den oben angegebenen Parameter aus. Die Nutzlast der Aktivität lautet wie folgt:

    {
        "name": "CopyActivityHierarchicalToTabular",
        "type": "Copy",
        "typeProperties": {
            "source": {...},
            "sink": {...},
            "translator": {
                "value": "@pipeline().parameters.mapping",
                "type": "Expression"
            },
            ...
        }
    }
    
  3. Erstellen Sie den Wert, der an den Parameter „mapping“ übergeben werden soll. Hierbei muss es sich um das gesamte Objekt der Definition von translator handeln. Informieren Sie sich über die Beispiele im Abschnitt Explizite Zuordnung. Beim Kopieren von einer tabellarischen Quelle in eine tabellarische Senke muss der Wert beispielsweise {"type":"TabularTranslator","mappings":[{"source":{"name":"Id"},"sink":{"name":"CustomerID"}},{"source":{"name":"Name"},"sink":{"name":"LastName"}},{"source":{"name":"LastModifiedDate"},"sink":{"name":"ModifiedDate"}}]} lauten.

Datentypzuordnung

Bei der Kopieraktivität werden Zuordnungen von Quelltypen zu Senkentypen mit dem folgenden Schritten durchgeführt:

  1. Wandeln Sie die nativen Quelldatentypen in Interimsdatentypen um, die von Azure Data Factory- und Synapse-Pipelines verwendet werden.
  2. Automatisches Konvertieren von Zwischendatentypen zu entsprechenden Senkentypen bei der Standardzuordnung und bei der expliziten Zuordnung
  3. Wandeln Sie die Interimsdatentypen in native Senkendatentypen um.

Von der Kopieraktivität werden derzeit die folgenden Zwischendatentypen unterstützt: Boolean, Byte, Byte-Array, Datum/Uhrzeit, DatetimeOffset, Decimal, Double, GUID, Int16, Int32, Int64, SByte, Single, String, Timespan, UInt16, UInt32 und UInt64.

Unter den Zwischentypen von Quelle zu Senke werden die folgenden Datentypkonvertierungen unterstützt.

Quelle\Senke Boolean Byte-Array Datum/Uhrzeit Dezimal Float-point GUID Ganzzahl String TimeSpan
Boolean
Byte-Array
Datum/Uhrzeit
Dezimal
Float-point
GUID
Ganzzahl
String
TimeSpan

(1) Datum/Uhrzeit umfasst DateTime, DateTimeOffset, Datum und Uhrzeit.

(2) „Float-point“ beinhaltet „Single“ und „Double“.

(3) „Integer“ beinhaltet „SByte“, „Byte“, „Int16“, „UInt16“, „Int32“, „UInt32“, „Int64“ und „UInt64“.

Hinweis

  • Diese Datentypkonvertierung wird derzeit beim Kopieren von tabellarischen Daten unterstützt. Hierarchische Quellen/Senken werden nicht unterstützt. Das bedeutet, dass keine systemdefinierte Datentypkonvertierung zwischen den Zwischendatentypen von Quelle zu Senke erfolgt.
  • Dieses Feature funktioniert nur beim neuesten Datasetmodell. Wenn diese Option auf der Benutzeroberfläche nicht angezeigt wird, versuchen Sie, ein neues Dataset zu erstellen.

Die folgenden Eigenschaften werden in der Kopieraktivität für die Datentypkonvertierung unterstützt (im Abschnitt translator für die programmatische Erstellung):

Eigenschaft Beschreibung Erforderlich
Typkonvertierung Aktiviert den neuen Workflow für die Datentypkonvertierung.
Der Standardwert ist aufgrund der Abwärtskompatibilität false.

Bei neuen Kopieraktivitäten, die seit Ende Juni 2020 über die Data Factory-Benutzeroberfläche für die Dokumenterstellung erstellt wurden, ist diese Datentypkonvertierung für die optimale Nutzung standardmäßig aktiviert. Außerdem werden in der Kopieraktivität auf der Registerkarte –>„Zuordnung“ die folgenden Einstellungen zur Typkonvertierung für entsprechende Szenarien angezeigt.
Wenn Sie Pipelines programmgesteuert erstellen möchten, müssen Sie die Eigenschaft typeConversion explizit auf TRUE festlegen, um sie zu aktivieren.
Bei vorhandenen Kopieraktivitäten, die vor der Einführung dieses Features erstellt wurden, werden in der Benutzeroberfläche für die Erstellung aus Gründen der Abwärtskompatibilität keine Optionen für die Datentypkonvertierung angezeigt.
Nein
Typkonvertierungseinstellungen Eine Gruppe von Datentypkonvertierungseinstellungen. Wird angewendet, wenn typeConversion auf true festgelegt ist. Die folgenden Eigenschaften befinden sich in dieser Gruppe. Nein
Unter typeConversionSettings
allowDataTruncation Ermöglicht das Abschneiden von Daten, wenn beim Kopieren Quelldaten in Senkendaten mit unterschiedlichem Datentyp konvertiert werden, beispielsweise von „Decimal“ zu „Integer“ bzw. von „DatetimeOffset“ zu „Datetime“.
Der Standardwert ist true.
Nein
treatBooleanAsNumber Behandelt boolesche Werte wie Zahlen, z. B. TRUE wie 1.
Der Standardwert ist „false“.
Nein
dateFormat Formatieren von Zeichenfolgen beim Konvertieren zwischen Datumsangaben und Zeichenfolgen, z. B. yyyy-MM-dd. Ausführliche Informationen hierzu finden Sie unter Benutzerdefinierte Formatzeichenfolgen für Datum und Uhrzeit. Nein
Datumszeitformat Formatzeichenfolge beim Konvertieren von Datumsangaben ohne Zeitzonenoffset und Zeichenfolgen, z. B. yyyy-MM-dd HH:mm:ss.fff. Ausführliche Informationen hierzu finden Sie unter Benutzerdefinierte Formatzeichenfolgen für Datum und Uhrzeit. Nein
dateTimeOffsetFormat Formatzeichenfolge beim Konvertieren von Datumsangaben mit Zeitzonenoffset und Zeichenfolgen, z. B. yyyy-MM-dd HH:mm:ss.fff zzz. Ausführliche Informationen hierzu finden Sie unter Benutzerdefinierte Formatzeichenfolgen für Datum und Uhrzeit. Nein
timeSpanFormat Formatzeichenfolge beim Konvertieren von Zeiträumen und Zeichenfolgen, z. B. dd\.hh\:mm. Ausführliche Informationen hierzu finden Sie unter Benutzerdefinierte TimeSpan-Formatzeichenfolgen. Nein
timeFormat Formatzeichenfolge bei der Konvertierung zwischen Zeit und Zeichenketten, z. B. HH:mm:ss.fff. Ausführliche Informationen hierzu finden Sie unter Benutzerdefinierte Formatzeichenfolgen für Datum und Uhrzeit. Nein
Kultur Kulturinformationen, die beim Konvertieren von Datentypen verwendet werden sollen, z. B. en-us oder fr-fr. Nein

Beispiel:

{
    "name": "CopyActivity",
    "type": "Copy",
    "typeProperties": {
        "source": {
        	"type": "ParquetSource"
        },
        "sink": {
            "type": "SqlSink"
        },
        "translator": {
            "type": "TabularTranslator",
            "typeConversion": true,
            "typeConversionSettings": {
                "allowDataTruncation": true,
                "treatBooleanAsNumber": true,
                "dateTimeFormat": "yyyy-MM-dd HH:mm:ss.fff",
                "dateTimeOffsetFormat": "yyyy-MM-dd HH:mm:ss.fff zzz",
                "timeSpanFormat": "dd\.hh\:mm",
                "culture": "en-gb"
            }
        }
	},
    ...
}

Legacy-Modelle

Hinweis

Die folgenden Modelle zum Zuordnen von Quellspalten/-feldern zur Senke werden aus Gründen der Abwärtskompatibilität weiterhin unverändert unterstützt. Es wird empfohlen, das unter Schemazuordnung erwähnte neue Modell zu verwenden. Die Benutzeroberfläche für die Erstellung wurde auf die Erzeugung des neuen Modells umgestellt.

Alternative Spaltenzuordnung (Legacy-Modell)

Sie können die Kopieraktivität –>translator –>columnMappings angeben, um tabellarisch strukturierte Daten zuzuordnen. In diesem Fall ist der Abschnitt „structure“ für Eingabe- und Ausgabedatasets erforderlich. Die Spaltenzuordnung unterstützt das Zuordnen aller oder einer Teilmenge von Spalten in der "Struktur" des Quelldatasets zu allen Spalten in der "Struktur" des Senkendatasets. Im Folgenden sind Fehlerbedingungen angegeben, die zu einer Ausnahme führen:

  • Das Ergebnis der Abfrage des Quelldatenspeichers enthält keinen Spaltennamen, der im Abschnitt „structure“ des Eingabedatasets angegeben wird.
  • Der Senkendatenspeicher (sofern mit vordefiniertem Schema) enthält keinen Spaltennamen, der im Abschnitt „structure“ des Ausgabedatasets angegeben wird.
  • Entweder sind weniger Spalten oder mehr Spalten in „structure“ des Senkendatasets, als in der Zuordnung angegeben.
  • Doppelte Zuordnung.

Im folgenden Beispiel verfügt das Eingabedataset über eine Struktur, die auf eine Tabelle in einer lokalen Oracle-Datenbank verweist.

{
    "name": "OracleDataset",
    "properties": {
        "structure":
         [
            { "name": "UserId"},
            { "name": "Name"},
            { "name": "Group"}
         ],
        "type": "OracleTable",
        "linkedServiceName": {
            "referenceName": "OracleLinkedService",
            "type": "LinkedServiceReference"
        },
        "typeProperties": {
            "tableName": "SourceTable"
        }
    }
}

In diesem Beispiel verfügt das Ausgabedataset über eine Struktur, und diese verweist auf eine Tabelle in Salesforce.

{
    "name": "SalesforceDataset",
    "properties": {
        "structure":
        [
            { "name": "MyUserId"},
            { "name": "MyName" },
            { "name": "MyGroup"}
        ],
        "type": "SalesforceObject",
        "linkedServiceName": {
            "referenceName": "SalesforceLinkedService",
            "type": "LinkedServiceReference"
        },
        "typeProperties": {
            "tableName": "SinkTable"
        }
    }
}

Der folgende JSON-Code definiert eine Kopieraktivität in einer Pipeline. Die Spalten der Quelle werden mithilfe der Eigenschaft translator –>columnMappings den Spalten der Senke zugeordnet.

{
    "name": "CopyActivity",
    "type": "Copy",
    "inputs": [
        {
            "referenceName": "OracleDataset",
            "type": "DatasetReference"
        }
    ],
    "outputs": [
        {
            "referenceName": "SalesforceDataset",
            "type": "DatasetReference"
        }
    ],
    "typeProperties":    {
        "source": { "type": "OracleSource" },
        "sink": { "type": "SalesforceSink" },
        "translator":
        {
            "type": "TabularTranslator",
            "columnMappings":
            {
                "UserId": "MyUserId",
                "Group": "MyGroup",
                "Name": "MyName"
            }
        }
    }
}

Wenn Sie zum Angeben der Spaltenzuordnung die Syntax "columnMappings": "UserId: MyUserId, Group: MyGroup, Name: MyName" verwenden, wird sie weiterhin unverändert unterstützt.

Alternative Schemazuordnung (Älteres Modell)

Sie können die Kopieraktivität ->translator ->schemaMapping angeben, um hierarchisch und tabellarisch strukturierte Daten zuzuordnen, z. B. Kopieren aus MongoDB/REST in eine Textdatei oder aus Oracle zu Azure Cosmos DB for MongoDB. Folgende Eigenschaften werden im Abschnitt translator der Kopieraktivität unterstützt:

Eigenschaft Beschreibung Erforderlich
Typ Die type-Eigenschaft der Kopieraktivität „translator“ muss auf Folgendes festgelegt werden: TabularTranslator Ja
schemaMapping Eine Sammlung von Schlüssel-Wert-Paaren, die die Zuordnungsbeziehung von der Quelle zur Zielseite darstellt.
- Schlüssel: stellt die Quelle dar. Für eine tabellarische Quelle legen Sie den Spaltennamen wie in der Datasetstruktur definiert fest. Für eine hierarchische Quelle legen Sie den Ausdruck des JSON-Pfads für jedes zu extrahierende und zuzuordnende Feld fest.
- Wert: repräsentiert einen Sink. Für eine tabellarische Senke legen Sie den Spaltennamen wie in der Datasetstruktur definiert fest. Für eine hierarchische Senke legen Sie den Ausdruck des JSON-Pfads für jedes zu extrahierende und zuzuordnende Feld fest.
Bei hierarchischen Daten beginnt der JSON-Pfad für Felder unter dem Stammobjekts mit dem Stamm „$“. Für Felder innerhalb des von der collectionReference-Eigenschaft ausgewählten Arrays beginnt der JSON-Pfad mit dem Array-Element.
Ja
Sammlungsreferenz Wenn Sie Daten durchlaufen und Objekte innerhalb eines Arrayfelds mit demselben Muster extrahieren, und wenn Sie möchten, dass jedes Objekt in einer neuen Zeile steht, geben Sie den JSON-Pfad dieses Arrays für die übergreifende Anwendung an. Diese Eigenschaft wird nur unterstützt, wenn hierarchische Daten die Quelle sind. Nein

Beispiel: Kopieren aus MongoDB nach Oracle:

Sie besitzen zum Beispiel ein MongoDB-Dokument mit folgendem Inhalt:

{
    "id": {
        "$oid": "592e07800000000000000000"
    },
    "number": "01",
    "date": "20170122",
    "orders": [
        {
            "prod": "p1",
            "price": 23
        },
        {
            "prod": "p2",
            "price": 13
        },
        {
            "prod": "p3",
            "price": 231
        }
    ],
    "city": [ { "name": "Seattle" } ]
}

Wenn Sie es in eine Azure SQL-Tabelle im folgenden Format kopieren möchten, indem Sie die Daten im Array (order_pd und order_price) vereinfachen und mit den allgemeinen Stamminformationen (Anzahl, Datum und Stadt) überkreuzt verknüpfen, dann gilt Folgendes:

Bestellnummer Bestelldatum order_pd Bestellpreis Stadt
01 20170122 P1 23 Seattle
01 20170122 P2 13 Seattle
01 20170122 P3 231 Seattle

Konfigurieren Sie die Regel für die Schemazuordnung wie im folgenden JSON-Beispiel für die Kopieraktivität:

{
    "name": "CopyFromMongoDBToOracle",
    "type": "Copy",
    "typeProperties": {
        "source": {
            "type": "MongoDbV2Source"
        },
        "sink": {
            "type": "OracleSink"
        },
        "translator": {
            "type": "TabularTranslator",
            "schemaMapping": {
                "$.number": "orderNumber",
                "$.date": "orderDate",
                "prod": "order_pd",
                "price": "order_price",
                "$.city[0].name": "city"
            },
            "collectionReference":  "$.orders"
        }
    }
}

Weitere Informationen finden Sie in den anderen Artikeln zur Kopieraktivität: