Formato Common Data Model en Azure Data Factory y Azure Synapse Analytics
SE APLICA A: Azure Data Factory Azure Synapse Analytics
Sugerencia
Pruebe Data Factory en Microsoft Fabric, una solución de análisis todo en uno para empresas. Microsoft Fabric abarca todo, desde el movimiento de datos hasta la ciencia de datos, el análisis en tiempo real, la inteligencia empresarial y los informes. ¡Obtenga más información sobre cómo iniciar una nueva evaluación gratuita!
El sistema de metadatos de Common Data Model (CDM) permite que los datos y su significado se compartan fácilmente entre las aplicaciones y los procesos empresariales. Para obtener más información, consulte la información general de Common Data Model.
En las canalizaciones de Azure Data Factory y Synapse, los usuarios pueden transformar datos de entidades CDM tanto en model.json como en formato de manifiesto almacenadas en Azure Data Lake Store Gen2 (ADLS Gen2) mediante flujos de datos de asignación. También puede recibir datos en formato CDM mediante referencias de entidad CDM que van a colocar los datos en formato CSV o Parquet en las carpetas con particiones.
Propiedades de Asignación de instancias de Data Flow
Common Data Model está disponible como conjunto de datos en línea en el flujo de datos de asignación como origen y receptor.
Nota
Al escribir entidades CDM, debe tener una definición de entidad CDM existente (esquema de metadatos) ya definida para usarla como referencia. El receptor de flujo de datos leerá ese archivo de entidad CDM e importará el esquema en el receptor para la asignación de campos.
Propiedades de origen
En la tabla siguiente se enumeran las propiedades que admite un origen CDM. Puede editar estas propiedades en la pestaña Source options (Opciones del origen).
Nombre | Descripción | Obligatorio | Valores permitidos | Propiedad de script de flujo de datos |
---|---|---|---|---|
Formato | El formato debe ser cdm . |
sí | cdm |
format |
Formato de metadatos | Donde se encuentra la referencia de entidad de los datos. Si utiliza la versión 1.0 de CDM, elija manifiesto. Si usa una versión de CDM anterior a la 1.0, elija model.json. | Sí | 'manifest' o 'model' |
manifestType |
Ubicación raíz: contenedor | Nombre del contenedor de la carpeta CDM | sí | String | fileSystem |
Ubicación raíz: ruta de acceso de la carpeta | Ubicación de la carpeta raíz de la carpeta CDM | sí | String | folderPath |
Archivo de manifiesto: Ruta de acceso de entidad | Ruta de acceso de la carpeta de la entidad dentro de la carpeta raíz | no | String | entityPath |
Archivo de manifiesto: Nombre del manifiesto | Nombre del archivo de manifiesto. El valor predeterminado es "default" | No | String | manifestName |
Filtrar por última modificación | Elija si desea filtrar los archivos en función de cuándo se modificaron por última vez. | no | Marca de tiempo | modifiedAfter modifiedBefore |
Servicio vinculado de esquema | El servicio vinculado en el que se encuentra el corpus | Sí, si se utiliza el manifiesto | 'adlsgen2' o 'github' |
corpusStore |
Contenedor de referencia de entidad | El contenedor corpus está en | sí, si utiliza el manifiesto y el Corpus en ADLS Gen2 | String | adlsgen2_fileSystem |
Repositorio de referencia de entidad | Nombre del repositorio de GitHub | sí, si utiliza el manifiesto y el Corpus en GitHub | String | github_repository |
Rama de referencia de entidad | Rama del repositorio de GitHub | sí, si utiliza el manifiesto y el corpus en GitHub | String | github_branch |
Carpeta Corpus | la ubicación raíz de Corpus | Sí, si se utiliza el manifiesto | String | corpusPath |
Entidad Corpus | Ruta de acceso a la referencia de entidad | sí | String | Entidad |
No permitir que se encuentren archivos | Si es true, no se devuelve un error si no se encuentra ningún archivo. | no | true o false |
ignoreNoFilesFound |
Al seleccionar "Referencia de entidad" en las transformaciones de origen y receptor, puede seleccionar entre estas tres opciones para la ubicación de la referencia de entidad:
- La opción local usa la entidad definida en el archivo de manifiesto que el servicio usa.
- La opción personalizada le pedirá que apunte a un archivo de manifiesto de entidad diferente del archivo de manifiesto que el servicio usa.
- La opción estándar usará una referencia de entidad de la biblioteca estándar de entidades CDM mantenidas en
GitHub
.
Configuración del receptor
- Seleccione el archivo de referencia de la entidad CDM que contiene la definición de la entidad que quiere escribir.
- Defina la ruta de acceso de la partición y el formato de los archivos de salida que desea que el servicio use para escribir las entidades.
- Establezca la ubicación del archivo de salida y la ubicación y el nombre del archivo de manifiesto.
Importar esquema
CDM solo está disponible como un conjunto de datos insertado y, de forma predeterminada, no tiene un esquema asociado. Para obtener los metadatos de columna, haga clic en el botón Importar esquema en la pestaña Proyección. Esto le permitirá hacer referencia a los nombres de columna y los tipos de datos especificados por corpus. Para importar el esquema, una sesión de depuración de flujo de datos debe estar activa y debe tener un archivo de definición de entidad CDM existente al que apuntar.
Al asignar columnas de flujo de datos a las propiedades de entidad en la transformación del receptor, haga clic en la pestaña "Asignación" y seleccione "Importar esquema". El servicio leerá la referencia a la entidad a la que apunta en las opciones del receptor, permitiéndole asignar al esquema CDM de destino.
Nota:
Cuando se usa el tipo de origen model.json que se origina en Power BI o en los flujos de datos de Power Platform, es posible que se produzcan errores de "la ruta de acceso de Corpus es null o está vacía" de la transformación de origen. Esto se debe probablemente a problemas de formato de la ruta de acceso de la partición en el archivo model.json. Para solucionarlo, siga estos pasos.
- Abra el archivo de model.json con un editor de texto
- Busque las propiedades partitions.Location
- Cambie "blob.core.windows.net" a "dfs.core.windows.net"
- Corrija cualquier codificación "% 2F" de la dirección URL a "/"
- Si usa flujos de datos de ADF, los caracteres especiales de la ruta de acceso del archivo de partición deben reemplazarse por valores alfanuméricos o cambiar a flujos de datos de Azure Synapse.
Ejemplo de script de flujo de datos del origen de CDM
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
Propiedades del receptor
En la tabla siguiente se enumeran las propiedades que admite un receptor CDM. Puede editar estas propiedades en la pestaña Configuración.
Nombre | Descripción | Obligatorio | Valores permitidos | Propiedad de script de flujo de datos |
---|---|---|---|---|
Formato | El formato debe ser cdm . |
sí | cdm |
format |
Ubicación raíz: contenedor | Nombre del contenedor de la carpeta CDM | sí | String | fileSystem |
Ubicación raíz: ruta de acceso de la carpeta | Ubicación de la carpeta raíz de la carpeta CDM | sí | String | folderPath |
Archivo de manifiesto: Ruta de acceso de entidad | Ruta de acceso de la carpeta de la entidad dentro de la carpeta raíz | no | String | entityPath |
Archivo de manifiesto: Nombre del manifiesto | Nombre del archivo de manifiesto. El valor predeterminado es "default" | No | String | manifestName |
Servicio vinculado de esquema | El servicio vinculado en el que se encuentra el corpus | sí | 'adlsgen2' o 'github' |
corpusStore |
Contenedor de referencia de entidad | El contenedor corpus está en | sí, si el corpus está en ADLS Gen2 | String | adlsgen2_fileSystem |
Repositorio de referencia de entidad | Nombre del repositorio de GitHub | sí, si el corpus está en GitHub | String | github_repository |
Rama de referencia de entidad | Rama del repositorio de GitHub | sí, si el corpus está en GitHub | String | github_branch |
Carpeta Corpus | la ubicación raíz del corpus | sí | String | corpusPath |
Entidad Corpus | Ruta de acceso a la referencia de entidad | sí | String | Entidad |
Ruta de acceso a la partición | Ubicación donde se escribirá la partición | no | String | partitionPath |
Borrar la carpeta | Si la carpeta de destino se borra antes de escribir. | no | true o false |
truncate |
Tipo de formato | Elija esta opción para especificar el formato Parquet | no | parquet si se especifica |
subformat |
Delimitador de columna | Si se escribe en DelimitedText, cómo se delimitan las columnas | sí, si escribe en DelimitedText | String | columnDelimiter |
Primera fila como encabezado | Si se utiliza DelimitedText, si los nombres de las columnas se agregan como un encabezamiento | no | true o false |
columnNamesAsHeader |
Ejemplo de script de flujo de datos del receptor de CDM
El script de flujo de datos asociado es:
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
Contenido relacionado
Cree una Transformación de origen en flujo de datos de asignación.