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

A: Azure Data Factory Azure Synapse Analytics

Tipp.

Data Factory a Microsoft Fabric a Azure Data Factory következő generációja, egyszerűbb architektúrával, beépített AI-vel és új funkciókkal. Ha még nem ismerkedik az adatintegrációval, kezdje a Fabric Data Factoryvel. A meglévő ADF-számítási feladatok Fabric frissíthetnek az adatelemzés, a valós idejű elemzés és a jelentéskészítés új képességeinek eléréséhez.

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

A Azure Data Factory és a Synapse-folyamatokban a felhasználók átalakíthatják a CDM-entitásokból származó adatokat model.json és a Azure Data Lake 2. generációs tárolóban (ADLS Gen2) tárolt adatleké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 inline adathalmazként érhető el az adatfolyamok forrásként és fogadóként való leképezésében is.

Feljegyzé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.

Feljegyzés

Ha CDM-et használ a Change Data Capture (CDC) használatával az adatfolyamokban, a rendszer fájlalapú CDC-megközelítéssel észleli a frissítéseket, amelyet a legutóbb módosított időbélyegek hajtanak végre.

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.

Név Leírás Kötelező Megengedett értékek Adatfolyam-szkript tulajdonság
Formátum 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őtti CDM-verziót használ, válassza a model.json. Igen 'manifest' vagy 'model' manifestType
Gyökérhely: tároló A CDM-mappa tárolóneve igen Sztring fileSystem
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 Időbélyegző 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 GitHub Sztring github_repository
Entitáshivatkozási ág GitHub adattárág Igen, ha jegyzékfájlt és korpuszt használ GitHub 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 egyed
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 GitHub által fenntartott CDM-entitások standard kódtárából származó entitáshivatkozást fogja használni.

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.

entitásbeállítások

  • 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.

entitásformátum

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

cdm helye

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-fogadó beállításai

Feljegyzés

Ha model.json Power BI vagy Power Platform-adatfolyamokból származó forrástípust használ, a forrásátalakítás során "a korpusz elérési útja null vagy üres" hibaüzenet jelenhet meg. Ez valószínűleg a model.json fájl partícióhelyének elérési útjának formázási problémáinak köszönhető. 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-adatfolyamok használata esetén a partíciófájl elérési útjának speciális karaktereit alfa-numerikus értékekkel kell helyettesíteni, vagy át kell váltani Azure Synapse adatfolyamra

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 Beállítások lapon szerkesztheti.

Név Leírás Kötelező Megengedett értékek Adatfolyam-szkript tulajdonság
Formátum A formátumnak cdm igen cdm format
Gyökérhely: tároló A CDM-mappa tárolóneve igen Sztring fileSystem
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 GitHub Sztring github_repository
Entitáshivatkozási ág GitHub adattárág Igen, ha korpusz GitHub 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 egyed
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 csonkol
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.