Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für:
Azure Data Factory
Azure Synapse Analytics
Tipp
Data Factory in Microsoft Fabric ist die nächste Generation von Azure Data Factory mit einer einfacheren Architektur, integrierter KI und neuen Features. Wenn Sie mit der Datenintegration noch nicht vertraut sind, beginnen Sie mit Fabric Data Factory. Vorhandene ADF-Workloads können auf Fabric aktualisiert werden, um auf neue Funktionen in der Datenwissenschaft, Echtzeitanalysen und Berichterstellung zuzugreifen.
In diesem Artikel wird beschrieben, wie die Azure Data Factory Kopieraktivität Schemazuordnung und Datentypzuordnung von Quelldaten zu Sinkdaten durchführt.
Schemazuordnung
Standardzuordnung
Standardmäßig werden Quelldaten standardmäßig auf Spalten-Sink-Namen abgebildet, und zwar in einer fallsensitiven Weise. Wenn der Sink nicht existiert, zum Beispiel beim Schreiben von Dateien, werden die Quellfeldnamen zu den Sink-Namen. Wenn die Senke bereits vorhanden ist, muss sie alle Spalten enthalten, die aus der Quelle kopiert werden. Diese Standardzuordnung unterstützt flexible Schemata und Schema-Drift von Quelle zu Sink von Ausführung zu Ausführung – alle vom Quelldatenspeicher zurückgegebenen Daten können auf Sink kopiert werden.
Wenn deine Quelle eine Textdatei ohne Kopfzeile ist, musst du explizite Zuordnung verwenden, weil die Quelle keine Spaltennamen enthält.
Explizite Zuordnung
Spezifiziere explizite Mapping, um die Spalten- und Feldzuordnung von Quelle zu Sink anzupassen. Durch explizite Mapping kann man nur einen Teil der Quelldaten in den Sink kopieren, Quelldaten mit verschiedenen Namen auf den Sink abbilden oder tabellarische oder hierarchische Daten umformen. Die Kopier-Aktivität:
- Liest die Daten aus der Quelle und bestimmt das Quellschema.
- Wendet Ihre definierte Zuordnung an.
- Schreibt die Daten in die Senke.
Weitere Informationen:
- Tabellarische Quelle zu tabellarischer Senke
- Von hierarchischer Quelle zu tabellarischer Senke
- Von tabellarischer/hierarchischer Quelle zur hierarchischen Senke
Konfigurieren Sie das Mapping in der Authoring UI, indem Sie zur Kopieraktivität gehen und den Mapping-Tab auswählen. Oder man spezifiziert das Mapping programmatisch in der Kopieraktivität mithilfe der Eigenschaft translator . Die folgenden Eigenschaften werden in translator -mappings> Array -> Objekte ->source und sinkunterstützt, die auf die spezifische Spalte oder das Feld zur Abbildung der Daten zeigen.
| Eigenschaft | Beschreibung | Erforderlich |
|---|---|---|
| name | Name der Quelle, der Senkensäule oder des Feldes. Gilt für tabellarische Quelle und Senke. | Ja |
| ordinal | Spaltenindex. Beginnt bei 1. | |
| Gilt und ist erforderlich, wenn man getrennten Text ohne Kopfzeile verwendet. | Nein | |
| Pfad | Der Ausdruck des JSON-Pfads für jedes Feld, das extrahiert oder zugeordnet werden soll. Gilt für hierarchische Quell- und Senkensysteme, zum Beispiel Azure Cosmos DB, Azure DocumentDB (mit MongoDB-Kompatibilität), MongoDB- oder REST-Connectors. | |
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. Um mehr zu erfahren, siehe Datentyp-Mapping. | Nein |
| Kultur | Kultur der Quell- oder Senkenspalte. Gilt, wenn Typ ist Datetime oder Datetimeoffset. Der Standardwert lautet en-us. |
|
| Im Allgemeinen müssen Sie diese Eigenschaft nicht angeben oder ändern. Um mehr zu erfahren, siehe Datentyp-Mapping. | Nein | |
| format | Format-Zeichenkette, die verwendet werden soll, wenn der Typ oder DatetimeoffsetistDatetime. 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. Um mehr zu erfahren, siehe Datentyp-Mapping. |
Nein |
Die folgenden Eigenschaften werden unter translator und unter mappings unterstützt:
| Eigenschaft | Beschreibung | Erforderlich |
|---|---|---|
| Sammlungsreferenz | Gilt beim Kopieren von Daten aus einer hierarchischen Quelle, wie z. B. Azure Cosmos DB, Azure DocumentDB (mit MongoDB-Kompatibilität), MongoDB oder REST-Connectoren. | |
| 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
Um beispielsweise Daten aus Salesforce in Azure SQL-Datenbank zu kopieren und drei Spalten explizit zuzuordnen:
Bei der Kopieraktivität wählen Sie den Mapping-Tab und dann Schemata importieren , um sowohl Quell- als auch Sinkschemata zu importieren.
Kartibe die benötigten Felder und schließe den Rest aus oder lösche sie.
Konfigurieren Sie dieselbe Abbildung in der Kopieraktivitätsnutzlast (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" }
}
]
}
},
...
}
Um Daten aus getrennten Textdateien ohne Kopfzeile zu kopieren, werden die Spalten mit Ordinalzahlen statt mit 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
Wenn Sie Daten von einer hierarchischen Quelle in eine tabellarische Senke kopieren, unterstützt die Kopieraktivität folgende Funktionen:
- 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 fortgeschrittenere Umwandlung von Hierarchie zu Tabelle verwenden Sie Datenfluss.
Zum Beispiel, wenn Sie ein Quelldokument von Azure DocumentDB oder MongoDB mit folgendem Inhalt haben:
{
"id": {
"$oid": "592e07800000000000000000"
},
"number": "01",
"date": "20170122",
"orders": [
{
"prod": "p1",
"price": 23
},
{
"prod": "p2",
"price": 13
},
{
"prod": "p3",
"price": 231
}
],
"city": [ { "name": "Seattle" } ]
}
Um die Daten in eine Textdatei zu kopieren, verwenden Sie folgendes Format mit einer Kopfzeile. Flachen Sie die Daten innerhalb der Arrays (order_pd und order_price) ab und verwenden Sie ein Cross-Join mit den gemeinsamen Wurzelinformationen (Nummer, Datum und Stadt):
| Bestellnummer | Bestelldatum | order_pd | Bestellpreis | Stadt |
|---|---|---|---|---|
| 01 | 20170122 | P1 | 23 | Seattle |
| 01 | 20170122 | P2 | 13 | Seattle |
| 01 | 20170122 | P3 | 231 | Seattle |
Definieren Sie diese Abbildung in der Data Factory-Authoring-Oberfläche:
Bei der Kopieraktivität gehen Sie zum Tab Mapping und wählen Sie Schemata importieren , um sowohl Quell- als auch Sink-Schemata zu importieren. Während der Dienst beim Import des Schemas die obersten Objekte sampelt: Wenn kein Feld erscheint, fügen Sie es der richtigen Ebene in der Hierarchie hinzu – fahren Sie mit der Maus über einen bestehenden Feldnamen und entscheiden Sie sich, ob Sie einen Knoten, ein Objekt oder ein Array hinzufügen.
Wählen Sie das Array, mit dem Sie iterieren und Daten extrahieren möchten. Die Benutzeroberfläche füllt automatisch die Collection-Referenz aus. Beachten Sie, dass diese Operation nur ein einziges Array unterstützt.
Ordnen Sie der Senke die erforderlichen Felder zu. Die zugehörigen JSON-Pfade für die hierarchische Seite werden automatisch vom Dienst bestimmt.
Hinweis
Bei Datensätzen, bei denen das als Sammlungsreferenz markierte Array leer ist und Sie das Kontrollkästchen auswählen, wird der gesamte Datensatz übersprungen.
Du kannst auch auf den erweiterten Editor wechseln. Sie können die JSON-Pfade der Felder direkt sehen und bearbeiten. Wenn Sie neue Zuordnungen in dieser Ansicht hinzufügen möchten, geben Sie den JSON-Pfad an.
Sie können dieselbe Abbildung im Kopieraktivitäts-Payload konfigurieren (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 von einer tabellarischen Quelle in einen hierarchischen Sink unterstützt der Dienst das Schreiben in ein Array innerhalb eines Objekts nicht.
Wenn man Daten von einer hierarchischen Quelle in einen hierarchischen Sink kopiert, kann man die gesamte Hierarchie einer Ebene erhalten, indem man das Objekt oder Array auswählt und auf den Sink mappt, ohne die inneren Felder zu berühren.
Für fortgeschrittenere Data Reshape Transformation verwenden Sie Datenfluss.
Parametrisieren von Zuordnungen
Um eine templatisierte Pipeline zu erstellen, die dynamisch eine große Anzahl von Objekten kopiert, sollten Sie zunächst bestimmen, ob Sie die Standardzuordnung verwenden können oder ob Sie für jedes Objekt explizite Zuordnungen definieren müssen.
Wenn Sie eine explizite Abbildung benötigen, folgen Sie diesen Schritten:
Definiere einen Parameter mit einem Objekttyp auf Pipeline-Ebene, wie zum
mappingBeispiel .Parametrisieren Sie die Mapping: In der Kopieraktivität gehen Sie zum Mapping-Tab, wählen Sie dynamische Inhalte und wählen Sie den von Ihnen erstellten Parameter aus. Die Aktivitätsnutzlast ist wie folgt:
{ "name": "CopyActivityHierarchicalToTabular", "type": "Copy", "typeProperties": { "source": {...}, "sink": {...}, "translator": { "value": "@pipeline().parameters.mapping", "type": "Expression" }, ... } }Erstellen Sie den Wert, der an den Parameter „mapping“ übergeben werden soll. Es sollte das gesamte Objekt der Definition
translatorsein. Für Beispiele siehe Abschnitt explizite Kartierung . 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
Copy-Aktivität mappt Quelltypen auf Sink-Typen, indem folgender Fluss verwendet wird:
- Konvertieren Sie von systemeigenen Quelldatentypen in Zwischendatentypen, die von Azure Data Factory- und Synapse-Pipelines verwendet werden.
- Konvertiere den Zwischendatentyp automatisch nach Bedarf an die entsprechenden Sink-Typen. Dieser Schritt gilt sowohl für die Standardzuordnung als auch für explizite Zuordnungen.
- Wandeln Sie die Interimsdatentypen in native Senkendatentypen um.
Copy-Aktivität unterstützt derzeit die folgenden Zwischendatentypen: Boolean, Byte, Byte array, Datetime, 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, Date und Time.
(2) „Float-point“ beinhaltet „Single“ und „Double“.
(3) „Integer“ beinhaltet „SByte“, „Byte“, „Int16“, „UInt16“, „Int32“, „UInt32“, „Int64“ und „UInt64“.
Hinweis
- Derzeit wird eine solche Datentyp-Konvertierung beim Kopieren zwischen tabellarischen Daten unterstützt. Hierarchische Quellen und Senken werden nicht unterstützt, was bedeutet, dass es keine systemdefinierte Datentyp-Konvertierung zwischen Quell- und Senken-Zwischentypen gibt.
- Dieses Feature funktioniert nur beim neuesten Datasetmodell. Wenn diese Option auf der Benutzeroberfläche nicht angezeigt wird, versuchen Sie, ein neues Dataset zu erstellen.
Copy-Aktivität unterstützt folgende Eigenschaften für die Datentypkonvertierung (unter dem translator Abschnitt für programmatisches Authoring):
| Immobilien | Beschreibung | Erforderlich | | -------------------------------- | ------------------------------------------------------------ | -------- | | typeConversion | Aktivieren Sie die neue Datentyp-Konvertierungserfahrung. Der Standardwert ist aufgrund der Abwärtskompatibilität false.
Für neue Kopieraktivitäten, die seit Ende Juni 2020 über die Data Factory Authoring UI erstellt wurden, ist diese Datentyp-Konvertierung standardmäßig aktiviert, um das beste Erlebnis zu erzielen. Sie können die folgenden Typ-Umwandlungseinstellungen im Reiter Kopieraktivität – Mapping für relevante Szenarien sehen> .
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 | | typeConversionSettings | Eine Gruppe von Typumwandlungseinstellungen. Wird angewendet, wenn typeConversion auf true festgelegt ist. Die folgenden Eigenschaften befinden sich in dieser Gruppe. | Nein | | Unter typeConversionSettings | | | | allowDataTruncation | Erlauben Sie Datentrunkierung beim Umwandeln von Quelldaten in Sink mit einem anderen Typ während des Kopierens, zum Beispiel von Dezimal- auf Ganzzahl, von DatetimeOffset auf Datetime.
Der Standardwert ist true. | Nein | | treatBooleanAsNumber | Behandle Boolesche Werte als Zahlen, zum Beispiel wahr als 1.
Der Standardwert ist „false“. | Nein | | DatumFormat | Format-String beim Umwandeln zwischen Daten und Zeichenketten, wie zum Beispiel yyyy-MM-dd. Ausführliche Informationen hierzu finden Sie unter Benutzerdefinierte Formatzeichenfolgen für Datum und Uhrzeit. | Nein | | dateTimeFormat | Formatiere Strings beim Umwandeln zwischen Daten ohne Zeitzonen-Offset und Strings, wie yyyy-MM-dd HH:mm:ss.fff. Ausführliche Informationen hierzu finden Sie unter Benutzerdefinierte Formatzeichenfolgen für Datum und Uhrzeit. | Nein | | dateTimeOffsetFormat | Formatiere eine Zeichenkette beim Umwandeln zwischen Daten mit Zeitzonenoffset und Zeichenfolgen, wie z. yyyy-MM-dd HH:mm:ss.fff zzzB. . Ausführliche Informationen hierzu finden Sie unter Benutzerdefinierte Formatzeichenfolgen für Datum und Uhrzeit. | Nein | | timeSpanFormat | Formatiere Strings beim Umwandeln zwischen Zeitperioden und Strings, wie zum Beispiel dd\.hh\:mm. Ausführliche Informationen hierzu finden Sie unter Benutzerdefinierte TimeSpan-Formatzeichenfolgen. | Nein | | timeFormat | Formatiere Zeichenfolgen beim Umwandeln zwischen Zeit und Zeichenketten, wie zum Beispiel HH:mm:ss.fff. Ausführliche Informationen hierzu finden Sie unter Benutzerdefinierte Formatzeichenfolgen für Datum und Uhrzeit. | Nein | | Kultur | Kulturinformationen, die bei der Umwandlung von Typen verwendet werden sollten, wie 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
Für Abwärtskompatibilität unterstützt der Dienst weiterhin folgende Modelle, um Quellspalten oder -felder auf Sink abzubilden. Verwenden Sie das neue Modell, das im Schema-Mapping beschrieben ist. Die Authoring-UI generiert nun das neue Modell.
Alternative Spaltenzuordnung (Legacy-Modell)
Um zwischen tabellenförmigen Daten abzubilden, geben Sie copy activity -> translator -> columnMappings. In diesem Fall benötigen sowohl Eingabe- als auch Ausgabedatensätze den Strukturabschnitt . Spaltenmapping unterstützt die Abbildung aller oder einer Teilmenge von Spalten in der Quelldatensatzstruktur auf alle Spalten in der Sink-Datensatzstruktur. Die folgenden Fehlerbedingungen führen zu einer Ausnahme:
- Das Abfrageergebnis des Quelldatenspeichers hat keinen Spaltennamen, den du im Abschnitt zur Struktur des Eingabedatensatzes angegeben hast.
- Der Sink-Datenspeicher (wenn mit vordefiniertem Schema) hat keinen Spaltennamen, den du im Abschnitt zur Ausgabe-Datensatzstruktur angegeben hast.
- Entweder weniger Spalten oder mehr Spalten in der Struktur des Sink-Datensatzes als in der Abbildung 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 von der Quellcode werden mit der> Eigenschaft -columnMappings zu den Spalten in Sink abgebildet.
{
"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 du die Syntax "columnMappings": "UserId: MyUserId, Group: MyGroup, Name: MyName" zur Spaltenzuordnung verwendest, wird sie weiterhin as-isunterstützt.
Alternative Schema-Abbildung (Altmodell)
Sie können Kopieraktivität festlegen –>translator um>schemaMapping zwischen hierarchisch geformten und tabellenförmigen Daten zu mappen. Zum Beispiel kannst du von MongoDB oder REST in eine Textdatei kopieren und von Oracle in Azure Cosmos DB für MongoDB oder Azure DocumentDB (mit MongoDB-Kompatibilität) kopieren. Der Abschnitt zur Kopieraktivität translator unterstützt folgende Eigenschaften:
| Eigenschaft | Beschreibung | Erforderlich |
|---|---|---|
| Typ | Setzen Sie die Typ-Eigenschaft des Kopieraktivitätsübersetzers auf: TabularTranslator | Ja |
| schemaMapping | Eine Sammlung von Schlüssel-Wert-Paaren, die die Abbildungsrelation von der Quellseite zur Senkenseite darstellt. |
- Schlüssel: steht für die Quelle. Für die tabellarische Quelle geben Sie den Spaltennamen wie in der Datensatzstruktur definiert an. Für die hierarchische Quelle geben Sie für jedes zu extrahierende und zubildende Feld den JSON-Pfadausdruck an.
-
Wert: steht für Sink . Für den tabulären Sink geben Sie den Spaltennamen wie in der Datensatzstruktur definiert an. Für den hierarchischen Sink spezifizieren Sie für jedes Feld den JSON-Pfadausdruck an, das extrahiert und abgebildet werden soll.
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 | | SammlungReferenz | Wenn Sie Daten aus den Objekten innerhalb eines Array-Feldes mit demselben Muster iterieren und in pro Zeile pro Objekt konvertieren möchten, geben Sie den JSON-Pfad dieses Arrays an, um Cross-Apply durchzuführen. Diese Eigenschaft wird nur unterstützt, wenn hierarchische Daten die Quelle sind. | Nein |
Beispiel: Kopieren aus MongoDB nach Oracle:
Zum Beispiel, wenn Sie ein MongoDB-Dokument mit folgendem Inhalt haben:
{
"id": {
"$oid": "592e07800000000000000000"
},
"number": "01",
"date": "20170122",
"orders": [
{
"prod": "p1",
"price": 23
},
{
"prod": "p2",
"price": 13
},
{
"prod": "p3",
"price": 231
}
],
"city": [ { "name": "Seattle" } ]
}
Und Sie möchten sie in eine Azure SQL Tabelle im folgenden Format kopieren, indem Sie die Daten im Array (order_pd und order_price) abflachen und mit den gemeinsamen Wurzelinformationen (Nummer, Datum und Stadt) kreuzen:
| Bestellnummer | Bestelldatum | order_pd | Bestellpreis | Stadt |
|---|---|---|---|---|
| 01 | 20170122 | P1 | 23 | Seattle |
| 01 | 20170122 | P2 | 13 | Seattle |
| 01 | 20170122 | P3 | 231 | Seattle |
Konfigurieren Sie die Schema-Mapping-Regel als folgendes Kopieraktivitäts-JSON-Beispiel:
{
"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"
}
}
}
Zugehöriger Inhalt
Weitere Informationen finden Sie in den anderen Artikeln zur Kopieraktivität:
- Übersicht über die Kopieraktivität