Common Data Model formátum az Azure Data Factoryben és a Synapse Analyticsben

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!

A Common Data Model (CDM) metaadat-rendszere lehetővé teszi az adatok és jelentésük egyszerű megosztását alkalmazások és üzleti folyamatok között. További információkért tekintse meg a Common Data Model áttekintését.

Az Azure Data Factoryben és a Synapse-folyamatokban a felhasználók átalakíthatják a CDM-entitásokból származó adatokat a model.json és az Azure Data Lake Store Gen2 -ben (ADLS Gen2) tárolt jegyzékű űrlapon is, leképezési adatfolyamok használatával. CDM formátumú adatokat cdM-entitáshivatkozások használatával is elnyelhet, amelyek CSV vagy Parquet formátumban, particionált mappákban fogják elhelyezni az adatokat.

Adatfolyam-tulajdonságok leképezése

A Common Data Model beágyazott adathalmazként érhető el az adatfolyamok forrásként és fogadóként való leképezésében is.

Megjegyzés:

CDM-entitások írásakor egy már definiált CDM-entitásdefinícióval (metaadatséma) kell rendelkeznie, amely hivatkozásként használható. Az adatfolyam-fogadó felolvassa ezt a CDM-entitásfájlt, és importálja a sémát a fogadóba a mezőleképezéshez.

Forrástulajdonságok

Az alábbi táblázat a CDM-forrás által támogatott tulajdonságokat sorolja fel. Ezeket a tulajdonságokat a Forrás beállításai lapon szerkesztheti.

Name Leírás Required Megengedett értékek Adatfolyam-szkript tulajdonság
Format A formátumnak cdm igen cdm format
Metaadatok formátuma Ahol az adatokra mutató entitáshivatkozás található. Ha a CDM 1.0-s verzióját használja, válassza a jegyzékfájlt. Ha 1.0 előtt használ CDM-verziót, válassza a model.json lehetőséget. Igen 'manifest' vagy 'model' manifestType
Gyökérhely: tároló A CDM-mappa tárolóneve igen Sztring Fájlrendszer
Gyökérhely: mappa elérési útja A CDM mappa gyökérmappájának helye igen Sztring folderPath
Jegyzékfájl: Entitás elérési útja Az entitás elérési útja a gyökérmappában nem Sztring entityPath
Jegyzékfájl: Jegyzékfájl neve A jegyzékfájl neve. Az alapértelmezett érték az "alapértelmezett" Nem Sztring manifestName
Szűrés utoljára módosítva Fájlok szűrésének kiválasztása az utolsó módosításuk időpontjától függően nem Timestamp modifiedAfter
modifiedBefore
Sémaalapú szolgáltatás Az a társított szolgáltatás, amelyben a korpusz található igen, ha jegyzékfájlt használ 'adlsgen2' vagy 'github' corpusStore
Entitás referenciatárolója A tároló korpusza benne van Igen, ha jegyzékfájlt és korpuszt használ az ADLS Gen2-ben Sztring adlsgen2_fileSystem
Entitáshivatkozási adattár GitHub-adattár neve Igen, ha jegyzékfájlt és korpuszt használ a GitHubon Sztring github_repository
Entitáshivatkozási ág GitHub-adattárág Igen, ha jegyzékfájlt és korpuszt használ a GitHubon Sztring github_branch
Corpus mappa a korpusz gyökérhelye igen, ha jegyzékfájlt használ Sztring corpusPath
Corpus entitás Entitáshivatkozás elérési útja igen Sztring Entitás
Nem található fájl engedélyezése Ha igaz, a rendszer nem ad hibát, ha nem található fájl nem true vagy false ignoreNoFilesFound

Ha az "Entitáshivatkozás" lehetőséget választja a Forrás- és fogadóátalakításokban is, az entitáshivatkozás helyének három lehetősége közül választhat:

  • A helyi a szolgáltatás által már használt jegyzékfájlban definiált entitást használja
  • A Custom arra kéri, hogy mutasson egy entitásjegyzékfájlra, amely eltér a szolgáltatás által használt jegyzékfájltól
  • A Standard a CDM-entitások standard kódtárából származó entitáshivatkozást fog használni.GitHub

Fogadó beállításai

  • Mutasson arra a CDM-entitás-referenciafájlra, amely tartalmazza az írni kívánt entitás definícióját.

entity settings

  • Adja meg az entitások írásához használni kívánt kimeneti fájlok partíciós elérési útját és formátumát.

entity format

  • Adja meg a kimeneti fájl helyét, valamint a jegyzékfájl helyét és nevét.

cdm location

Séma importálása

A CDM csak beágyazott adatkészletként érhető el, és alapértelmezés szerint nem rendelkezik társított sémával. Az oszlop metaadatainak lekéréséhez kattintson a Séma importálása gombra a Vetítés lapon. Így hivatkozhat a korpusz által megadott oszlopnevekre és adattípusokra. A séma importálásához az adatfolyam-hibakeresési munkamenetnek aktívnak kell lennie, és rendelkeznie kell egy meglévő CDM-entitásdefiníciós fájllal, amelyre mutatnia kell.

Amikor az adatfolyam-oszlopokat entitástulajdonságokra megfeleli a Fogadó transzformációban, kattintson a "Leképezés" fülre, és válassza a "Séma importálása" lehetőséget. A szolgáltatás felolvassa a Fogadó beállításai között hivatkozott entitáshivatkozást, amely lehetővé teszi a cél CDM-sémára való leképezést.

CDM sink settings

Megjegyzés:

Ha Power BI- vagy Power Platform-adatfolyamokból származó model.json forrástípust használ, a forrásátalakítás során "a korpusz elérési útja null értékű vagy üres" hibaüzenet jelenhet meg. Ennek oka valószínűleg a model.json fájl partícióhely-elérési útjának formázási problémái. A probléma megoldásához kövesse az alábbi lépéseket:

  1. A model.json fájl megnyitása szövegszerkesztőben
  2. Keresse meg a partíciókat. Hely tulajdonság
  3. A "blob.core.windows.net" módosítása "dfs.core.windows.net" értékre
  4. Javítsa ki a(z) "/" URL-cím "%2F" kódolását
  5. ADF-Adatfolyam használata esetén a partíciófájl elérési útjának speciális karaktereit alfa-numerikus értékekre kell cserélni, vagy az Azure Synapse Adatfolyam

PÉLDA CDM-forrás adatfolyam-szkriptre

source(output(
        ProductSizeId as integer,
        ProductColor as integer,
        CustomerId as string,
        Note as string,
        LastModifiedDate as timestamp
    ),
    allowSchemaDrift: true,
    validateSchema: false,
    entity: 'Product.cdm.json/Product',
    format: 'cdm',
    manifestType: 'manifest',
    manifestName: 'ProductManifest',
    entityPath: 'Product',
    corpusPath: 'Products',
    corpusStore: 'adlsgen2',
    adlsgen2_fileSystem: 'models',
    folderPath: 'ProductData',
    fileSystem: 'data') ~> CDMSource

Fogadó tulajdonságai

Az alábbi táblázat a CDM-fogadó által támogatott tulajdonságokat sorolja fel. Ezeket a tulajdonságokat a Gépház lapon szerkesztheti.

Name Leírás Required Megengedett értékek Adatfolyam-szkript tulajdonság
Format A formátumnak cdm igen cdm format
Gyökérhely: tároló A CDM-mappa tárolóneve igen Sztring Fájlrendszer
Gyökérhely: mappa elérési útja A CDM mappa gyökérmappájának helye igen Sztring folderPath
Jegyzékfájl: Entitás elérési útja Az entitás elérési útja a gyökérmappában nem Sztring entityPath
Jegyzékfájl: Jegyzékfájl neve A jegyzékfájl neve. Az alapértelmezett érték az "alapértelmezett" Nem Sztring manifestName
Sémaalapú szolgáltatás Az a társított szolgáltatás, amelyben a korpusz található igen 'adlsgen2' vagy 'github' corpusStore
Entitás referenciatárolója A tároló korpusza benne van Igen, ha korpusz az ADLS Gen2-ben Sztring adlsgen2_fileSystem
Entitáshivatkozási adattár GitHub-adattár neve Igen, ha korpusz a GitHubon Sztring github_repository
Entitáshivatkozási ág GitHub-adattárág Igen, ha korpusz a GitHubon Sztring github_branch
Corpus mappa a korpusz gyökérhelye igen Sztring corpusPath
Corpus entitás Entitáshivatkozás elérési útja igen Sztring Entitás
Partíció elérési útja A partíció írási helye nem Sztring partitionPath
A mappa törlése Ha a célmappa írás előtt törlődik nem true vagy false megcsonkít
Formátum típusa A parquet formátum megadása nem parquet ha meg van adva segédűrlap
Oszlopelválasztó Ha a DelimitedTextbe ír, hogyan kell elválasztani az oszlopokat Igen, ha a DelimitedTextbe ír Sztring columnDelimiter
Első sor fejlécként Ha DelimitedText parancsot használ, akkor az oszlopnevek fejlécként lesznek-e hozzáadva nem true vagy false columnNamesAsHeader

CDM-fogadó adatfolyam-szkriptje – példa

A társított adatfolyam-szkript a következő:

CDMSource sink(allowSchemaDrift: true,
    validateSchema: false,
    entity: 'Product.cdm.json/Product',
    format: 'cdm',
    entityPath: 'ProductSize',
    manifestName: 'ProductSizeManifest',
    corpusPath: 'Products',
    partitionPath: 'adf',
    folderPath: 'ProductSizeData',
    fileSystem: 'cdm',
    subformat: 'parquet',
    corpusStore: 'adlsgen2',
    adlsgen2_fileSystem: 'models',
    truncate: true,
    skipDuplicateMapInputs: true,
    skipDuplicateMapOutputs: true) ~> CDMSink

Forrásátalakítás létrehozása a leképezési adatfolyamban.