Séma- és adattípus-leképezés másolási tevékenységben
A következőkre vonatkozik: Azure Data Factory Azure Synapse Analytics
Tipp.
Próbálja ki a Data Factoryt a Microsoft Fabricben, amely egy teljes körű elemzési megoldás a nagyvállalatok számára. A Microsoft Fabric az adattovábbítástól az adatelemzésig, a valós idejű elemzésig, az üzleti intelligenciáig és a jelentéskészítésig mindent lefed. Ismerje meg, hogyan indíthat új próbaverziót ingyenesen!
Ez a cikk azt ismerteti, hogy az Azure Data Factory másolási tevékenysége hogyan hajtja végre a sémaleképezést és az adattípus-leképezést a forrásadatoktól a fogadó adatokig.
Séma-hozzárendelés
Alapértelmezett leképezés
Alapértelmezés szerint a másolási tevékenység a forrásadatokat oszlopnevek szerint, kis- és nagybetűk szerint leképezi. Ha a fogadó nem létezik, például fájlba ír, a forrásmezőnevek fogadónévként megmaradnak. Ha a fogadó már létezik, a forrásból másolt összes oszlopot tartalmaznia kell. Az ilyen alapértelmezett leképezés támogatja a rugalmas sémákat és a sémák forrásról fogadóra való eltérését a végrehajtástól a végrehajtásig – a forrásadattár által visszaadott összes adat átmásolható a fogadóba.
Ha a forrás fejlécsor nélküli szövegfájl, explicit leképezésre van szükség, mivel a forrás nem tartalmaz oszlopneveket.
Explicit leképezés
Explicit leképezést is megadhat az oszlop-/mezőleképezés forrásról fogadóra való testreszabásához az igényeinek megfelelően. Explicit leképezéssel csak részleges forrásadatokat másolhat a fogadóba, vagy leképezheti a forrásadatokat különböző nevű fogadóba, vagy átformálhatja a táblázatos/hierarchikus adatokat. Copy tevékenység:
- Beolvassa az adatokat a forrásból, és meghatározza a forrássémát.
- Alkalmazza a definiált leképezést.
- Az adatokat a fogadóba írja.
Learn more about:
- Táblázatos forrásból táblázatos fogadóba
- Hierarchikus forrás a táblázatos fogadóhoz
- Táblázatos/hierarchikus forrás a hierarchikus fogadóhoz
A leképezést konfigurálhatja a Szerzői felhasználói felületen –> másolási tevékenység –> leképezés lapon, vagy programozott módon megadhatja a leképezést a másolási tevékenységben –>translator
tulajdonságban. A következő tulajdonságok támogatottak a tömbökbenmappings
> –> objektumokban translator
–>source
és sink
, amelyek az adatok leképezéséhez az adott oszlopra/mezőre mutatnak.
Property | Leírás | Required |
---|---|---|
név | A forrás vagy fogadó oszlop/mező neve. Alkalmazzon táblázatos forrásra és fogadóra. | Igen |
Ordinális | Oszlopindex. 1-től kezdve. Ha elválasztójeles szöveget használ fejlécsor nélkül, alkalmazza és kötelező megadni. |
Nem |
ösvény | JSON-elérésiút-kifejezés minden kinyerni vagy leképíteni kívánt mezőhöz. Hierarchikus forrás és fogadó, például Azure Cosmos DB, MongoDB vagy REST-összekötők esetén alkalmazható. A gyökérobjektum alatti mezők esetében a JSON-elérési út gyökérrel $ kezdődik; a tulajdonság által collectionReference kiválasztott tömbben lévő mezők esetében a JSON-elérési út a tömbelemből $ indul ki. |
Nem |
típus | A forrás vagy fogadó oszlop köztes adattípusa. Általában nem kell megadnia vagy módosítania ezt a tulajdonságot. További információ az adattípus-leképezésről. | Nem |
Kultúra | A forrás vagy fogadó oszlop kultúrája. Akkor alkalmazható, ha a típus vagy Datetimeoffset a Datetime . Az alapértelmezett érték en-us .Általában nem kell megadnia vagy módosítania ezt a tulajdonságot. További információ az adattípus-leképezésről. |
Nem |
format | Formázási sztring, amelyet akkor kell használni, ha a típus vagy Datetimeoffset a Datetime . Tekintse meg az egyéni dátum- és időformátum-sztringeket a datetime formázásával kapcsolatban. Általában nem kell megadnia vagy módosítania ezt a tulajdonságot. További információ az adattípus-leképezésről. |
Nem |
A következő tulajdonságok a következők mellett támogatottak translator
mappings
:
Property | Leírás | Required |
---|---|---|
collectionReference | Alkalmazza az adatokat hierarchikus forrásból, például az Azure Cosmos DB-ből, a MongoDB-ből vagy a REST-összekötőkből való másoláskor. Ha ugyanazt a mintát tartalmazó tömbmezőben lévő objektumokból szeretne adatokat iterálni és kinyerni, és objektumonként soronként átalakítani, adja meg a tömb JSON-elérési útját, hogy kereszten alkalmazhassa a tömböt. |
Nem |
Táblázatos forrásból táblázatos fogadóba
Ha például adatokat szeretne másolni a Salesforce-ból az Azure SQL Database-be, és explicit módon megfeleltet három oszlopot:
A másolási tevékenység –> Leképezés lapon kattintson a Sémák importálása gombra a forrás- és fogadóséma importálásához.
Megfeleltetheti a szükséges mezőket, és kizárhatja/törölheti a többit.
Ugyanaz a leképezés konfigurálható, mint a másolási tevékenység hasznos adataiban (lásd 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" }
}
]
}
},
...
}
Ha a tagolt szövegfájl(ok)ból fejlécsor nélkül szeretne adatokat másolni, az oszlopokat a nevek helyett sorszám jelöli.
{
"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" }
}
]
}
},
...
}
Hierarchikus forrás a táblázatos fogadóhoz
Ha hierarchikus forrásból táblázatos fogadóba másol adatokat, a másolási tevékenység a következő képességeket támogatja:
- Adatok kinyerása objektumokból és tömbökből.
- A kereszt több objektumot alkalmaz ugyanazzal a mintával egy tömbből, ebben az esetben egy JSON-objektumot több rekordmá alakíthat táblázatos eredményként.
A fejlettebb hierarchikus-táblázatos átalakításhoz használhatja a Adatfolyam.
Ha például forrás MongoDB-dokumentuma a következő tartalommal rendelkezik:
{
"id": {
"$oid": "592e07800000000000000000"
},
"number": "01",
"date": "20170122",
"orders": [
{
"prod": "p1",
"price": 23
},
{
"prod": "p2",
"price": 13
},
{
"prod": "p3",
"price": 231
}
],
"city": [ { "name": "Seattle" } ]
}
A tömbben lévő adatok (order_pd és order_price) összesimításával és a gyakori gyökéradatokkal (szám, dátum és város) való keresztillesztéssel pedig a következő formátumú szövegfájlba szeretné másolni:
orderNumber | orderDate | order_pd | order_price | Város |
---|---|---|---|---|
01 | 20170122 | P1 | 23 | Seattle |
01 | 20170122 | P2 | 13 | Seattle |
01 | 20170122 | P3 | 231 | Seattle |
Az ilyen leképezést a Data Factory szerzői felhasználói felületén határozhatja meg:
A másolási tevékenység –> Leképezés lapon kattintson a Sémák importálása gombra a forrás- és fogadóséma importálásához. Mivel a szolgáltatás a séma importálásakor az első néhány objektumot mintaként használja, ha egy mező nem jelenik meg, felveheti a hierarchiában a megfelelő rétegbe – mutasson egy meglévő mező nevére, és válasszon csomópontot, objektumot vagy tömböt.
Jelölje ki azt a tömböt, amelyből adatokat szeretne iterálni és kinyerni. A rendszer automatikusan kitölti gyűjteményhivatkozásként. Vegye figyelembe, hogy az ilyen műveletekhez csak egyetlen tömb használható.
A szükséges mezők leképezése a fogadóhoz. A szolgáltatás automatikusan meghatározza a hierarchikus oldal megfelelő JSON-elérési útvonalait.
Megjegyzés:
Az olyan rekordok esetében, ahol a gyűjteményhivatkozásként megjelölt tömb üres, és a jelölőnégyzet be van jelölve, a rendszer kihagyja a teljes rekordot.
A Speciális szerkesztőre is válthat, ebben az esetben közvetlenül megtekintheti és szerkesztheti a mezők JSON-útvonalait. Ha új leképezést szeretne hozzáadni ebben a nézetben, adja meg a JSON elérési útját.
Ugyanaz a leképezés konfigurálható, mint a másolási tevékenység hasznos adataiban (lásd 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']"
}
},
...
}
Táblázatos/hierarchikus forrás a hierarchikus fogadóhoz
A felhasználói élmény folyamata a hierarchikus forráshoz és a táblázatos fogadóhoz hasonló.
Ha táblázatos forrásból hierarchikus fogadóba másol adatokat, az objektumon belüli tömbbe való írás nem támogatott.
Ha hierarchikus forrásból hierarchikus fogadóba másol adatokat, a teljes réteg hierarchiáját megőrizheti úgy, hogy kiválasztja az objektumot/tömböt, és a belső mezők érintése nélkül leképezi a fogadóba.
A fejlettebb adatátalakításhoz használhatja a Adatfolyam.
Megfeleltetés paraméterezése
Ha olyan templatizált folyamatot szeretne létrehozni, amely nagy számú objektumot szeretne dinamikusan másolni, határozza meg, hogy használhatja-e az alapértelmezett leképezést, vagy explicit leképezést kell meghatároznia a megfelelő objektumokhoz.
Ha explicit leképezésre van szükség, a következő műveleteket végezheti el:
Definiáljon egy olyan paramétert, amelynek objektumtípusa a folyamat szintjén van, például
mapping
: .A leképezés paraméterezése: másolási tevékenység –> leképezés lap, dinamikus tartalom hozzáadása és a fenti paraméter kiválasztása. A tevékenység hasznos adatai a következők:
{ "name": "CopyActivityHierarchicalToTabular", "type": "Copy", "typeProperties": { "source": {...}, "sink": {...}, "translator": { "value": "@pipeline().parameters.mapping", "type": "Expression" }, ... } }
Hozza létre a leképezési paraméterbe továbbítandó értéket. A definíció teljes objektumának
translator
kell lennie, tekintse meg az explicit leképezési szakaszban található mintákat. Például a táblázatos forrás és a táblázatos fogadó másolása esetén az értéknek a következőnek kell lennie{"type":"TabularTranslator","mappings":[{"source":{"name":"Id"},"sink":{"name":"CustomerID"}},{"source":{"name":"Name"},"sink":{"name":"LastName"}},{"source":{"name":"LastModifiedDate"},"sink":{"name":"ModifiedDate"}}]}
: .
Adattípus-leképezés
Copy tevékenység a következő folyamattal végez forrástípusokat a fogadótípusok leképezéséhez:
- Konvertálás a forrás natív adattípusaiból az Azure Data Factory és a Synapse-folyamatok által használt köztes adattípusokká.
- Szükség szerint automatikusan átalakítja a köztes adattípust a megfelelő fogadótípusoknak megfelelően, amelyek az alapértelmezett leképezésre és az explicit leképezésre is alkalmazhatók.
- Konvertálás köztes adattípusokról fogadó natív adattípusokká.
Copy tevékenység jelenleg a következő köztes adattípusokat támogatja: Logikai, Bájt, Bájttömb, Datetime, DatetimeOffset, Decimális, Dupla, GUID, Int16, Int32, Int64, SByte, Single, String, Timespan, UInt16, UInt32 és UInt64.
A forrástól a fogadóig tartó köztes típusok között az alábbi adattípus-átalakítások támogatottak.
Forrás\Fogadó | Logikai | Bájttömb | Decimális | Dátum/idő (1) | Lebegőpontos (2) | GUID | Egész szám (3) | Sztring | időtartam |
---|---|---|---|---|---|---|---|---|---|
Logikai | ✓ | ✓ | ✓ | ✓ | ✓ | ||||
Bájttömb | ✓ | ✓ | |||||||
Dátum/idő | ✓ | ✓ | |||||||
Decimális | ✓ | ✓ | ✓ | ✓ | ✓ | ||||
Lebegőpontos | ✓ | ✓ | ✓ | ✓ | ✓ | ||||
GUID | ✓ | ✓ | |||||||
Egész | ✓ | ✓ | ✓ | ✓ | ✓ | ||||
Sztring | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
időtartam | ✓ | ✓ |
(1) A dátum/idő tartalmazza a DateTime és a DateTimeOffset értéket.
(2) Az úszó pont magában foglalja az egy- és a dupla pontot.
(3) Az egész szám magában foglalja az SByte, a Bájt, az Int16, az UInt16, az Int32, az UInt32, az Int64 és az UInt64 értéket.
Megjegyzés:
- Jelenleg az ilyen adattípus-átalakítás támogatott a táblázatos adatok közötti másoláskor. A hierarchikus források/fogadók nem támogatottak, ami azt jelenti, hogy nincs rendszer által definiált adattípus-átalakítás a forrás és a fogadó köztes típusai között.
- Ez a funkció a legújabb adathalmaz-modellel működik. Ha nem látja ezt a beállítást a felhasználói felületen, próbáljon meg létrehozni egy új adatkészletet.
Az adattípus-átalakítás másolási tevékenységében a következő tulajdonságok támogatottak ( translator
a programozott szerzői műveletek szakaszában):
Property | Leírás | Required |
---|---|---|
typeConversion | Engedélyezze az új adattípus-átalakítási felületet. Az alapértelmezett érték a visszamenőleges kompatibilitás miatt hamis. A Data Factory felhasználói felületén 2020. június vége óta létrehozott új másolási tevékenységek esetében ez az adattípus-átalakítás alapértelmezés szerint engedélyezve van a legjobb élmény érdekében, és a másolási tevékenység alábbi típuskonvertálási beállításai láthatók –> a vonatkozó forgatókönyvek leképezési lapja. A folyamat programozott létrehozásához explicit módon igaz értékre kell állítania typeConversion a tulajdonságot az engedélyezéshez.A funkció megjelenése előtt létrehozott meglévő másolási tevékenységek esetében a szövegkonvertálási beállítások nem fognak megjelenni a szerzői felhasználói felületen a visszamenőleges kompatibilitás érdekében. |
Nem |
typeConversion Gépház | Típuskonvertálási beállítások csoportja. Alkalmazza, ha typeConversion be van állítva.true Az alábbi tulajdonságok mind ebbe a csoportba tartoznak. |
Nem |
Alatta typeConversionSettings |
||
allowDataTruncation | Az adatok csonkolásának engedélyezése, ha a forrásadatokat más típusú fogadóvá konvertálja a másolás során, például decimálisról egész számra, DatetimeOffsetről Datetime-ra. Az alapértelmezett érték igaz. |
Nem |
treatBooleanAsNumber | A logikai értékeket számként, például igazként, 1-ként kezelje. Az alapértelmezett érték hamis. |
Nem |
dateTimeFormat | Sztring formázása időzóna eltolás nélküli dátumok és sztringek közötti konvertáláskor, például yyyy-MM-dd HH:mm:ss.fff . Részletes információkért tekintse meg az egyéni dátum- és időformátum sztringeket . |
Nem |
dateTimeOffsetFormat | Sztring formázása az időzóna eltolásával és sztringekkel rendelkező dátumok közötti konvertáláskor, például yyyy-MM-dd HH:mm:ss.fff zzz . Részletes információkért tekintse meg az egyéni dátum- és időformátum sztringeket . |
Nem |
timeSpanFormat | Sztring formázása időszakok és sztringek közötti konvertáláskor, például dd\.hh\:mm . Részletes információkért tekintse meg a Custom TimeSpan Format Sztringeket . |
Nem |
Kultúra | A típusok konvertálásához használandó kulturális információk, például en-us fr-fr a . |
Nem |
Példa
{
"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"
}
}
},
...
}
Örökölt modellek
Megjegyzés:
A forrásoszlopok/mezők fogadóhoz való leképezéséhez az alábbi modellek továbbra is támogatottak, ahogyan a visszamenőleges kompatibilitás is. Javasoljuk, hogy a sémaleképezésben említett új modellt használja. A szerzői felhasználói felület az új modell létrehozására váltott.
Alternatív oszlopleképezés (örökölt modell)
A táblázatos alakzatú adatok közötti leképezéshez megadhatja a másolási tevékenységet .>translator
>columnMappings
Ebben az esetben a "struktúra" szakaszra mind a bemeneti, mind a kimeneti adatkészletek esetében szükség van. Az oszlopleképezés támogatja a forrásadatkészlet "struktúra" oszlopainak teljes vagy részhalmazának leképezését a fogadó adathalmaz "struktúra" összes oszlopára. A következő hibafeltételek kivételt eredményeznek:
- A forrásadattár lekérdezési eredménye nem rendelkezik a bemeneti adatkészlet "struktúra" szakaszában megadott oszlopnévvel.
- A fogadóadattár (ha előre definiált sémával rendelkezik) nem rendelkezik a kimeneti adathalmaz "struktúra" szakaszában megadott oszlopnévvel.
- A fogadó adathalmaz "szerkezetében" a leképezésben megadottnál kevesebb vagy több oszlop szerepel.
- Duplikált leképezés.
Az alábbi példában a bemeneti adatkészlet struktúrája egy helyszíni Oracle-adatbázisban lévő táblára mutat.
{
"name": "OracleDataset",
"properties": {
"structure":
[
{ "name": "UserId"},
{ "name": "Name"},
{ "name": "Group"}
],
"type": "OracleTable",
"linkedServiceName": {
"referenceName": "OracleLinkedService",
"type": "LinkedServiceReference"
},
"typeProperties": {
"tableName": "SourceTable"
}
}
}
Ebben a mintában a kimeneti adatkészlet struktúrája egy Salesforce-táblára mutat.
{
"name": "SalesforceDataset",
"properties": {
"structure":
[
{ "name": "MyUserId"},
{ "name": "MyName" },
{ "name": "MyGroup"}
],
"type": "SalesforceObject",
"linkedServiceName": {
"referenceName": "SalesforceLinkedService",
"type": "LinkedServiceReference"
},
"typeProperties": {
"tableName": "SinkTable"
}
}
}
Az alábbi JSON egy másolási tevékenységet határoz meg egy folyamatban. A forrásból a fogadóban lévő oszlopokra leképezett oszlopok a translator ->columnMappings tulajdonság használatával.
{
"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"
}
}
}
}
Ha az oszlopleképezés szintaxisát "columnMappings": "UserId: MyUserId, Group: MyGroup, Name: MyName"
használja, az továbbra is támogatott.
Alternatív sémaleképezés (örökölt modell)
Megadhatja a másolási tevékenységet –>translator
>schemaMapping
a hierarchikus alakú adatok és a táblázatos alakzatú adatok közötti leképezéshez, például a MongoDB/REST fájlból a szövegfájlba való másoláshoz, illetve az Oracle-ből a MongoDB-hez készült Azure Cosmos DB-be való másoláshoz. A másolási tevékenység translator
szakasz a következő tulajdonságokat támogatja:
Property | Leírás | Required |
---|---|---|
típus | A másolási tevékenység fordítójának típustulajdonságának a következőnek kell lennie: TabularTranslator | Igen |
schemaMapping | Kulcs-érték párok gyűjteménye, amely a forrás és a fogadó oldal közötti leképezési relációt jelöli. - Kulcs: a forrást jelöli. Táblázatos forrás esetén adja meg az adathalmaz szerkezetében definiált oszlopnevet; hierarchikus forrás esetén adja meg az egyes kinyerni és leképezendő mezőkhöz tartozó JSON-elérési utat. - Érték: a fogadót jelöli. Táblázatos fogadó esetén adja meg az adathalmaz szerkezetében definiált oszlopnevet; hierarchikus fogadó esetén adja meg az egyes kinyerni és leképezendő mezőkhöz tartozó JSON-elérési utat. Hierarchikus adatok esetén a gyökérobjektum alatti mezők esetében a JSON-elérési út a $gyökérrel kezdődik; a tulajdonság által collectionReference kiválasztott tömbben lévő mezők esetében a JSON-elérési út a tömbelemből indul ki. |
Igen |
collectionReference | Ha ugyanazt a mintát tartalmazó tömbmezőben lévő objektumokból szeretne adatokat iterálni és kinyerni, és objektumonként soronként átalakítani, adja meg a tömb JSON-elérési útját, hogy kereszten alkalmazhassa a tömböt. Ez a tulajdonság csak akkor támogatott, ha a hierarchikus adatok forrásként jelennek meg. | Nem |
Példa: másolás a MongoDB-ből az Oracle-be:
Ha például MongoDB-dokumentuma a következő tartalommal rendelkezik:
{
"id": {
"$oid": "592e07800000000000000000"
},
"number": "01",
"date": "20170122",
"orders": [
{
"prod": "p1",
"price": 23
},
{
"prod": "p2",
"price": 13
},
{
"prod": "p3",
"price": 231
}
],
"city": [ { "name": "Seattle" } ]
}
és a tömbön belüli adatok (order_pd és order_price) összesimításával és a gyakori gyökéradatokkal (szám, dátum és város) való keresztillesztéssel a következő formátumban szeretné átmásolni egy Azure SQL-táblába:
orderNumber | orderDate | order_pd | order_price | Város |
---|---|---|---|---|
01 | 20170122 | P1 | 23 | Seattle |
01 | 20170122 | P2 | 13 | Seattle |
01 | 20170122 | P3 | 231 | Seattle |
Konfigurálja a sémaleképezési szabályt a következő másolási tevékenység JSON-mintájaként:
{
"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"
}
}
}
Kapcsolódó tartalom
Lásd a másolási tevékenységről szóló további cikkeket: