Los metadatos nos brindan una información muy valiosa de nuestros datos, de ahí su nombre “los datos de los datos”, en ocasiones para enriquecer nuestros datos es muy importante capturar esta información desde nuestras fuentes, ahora bien como lo hacemos en Azure Data Factory.
En este ejercicio vamos a crear un flujo en ADF que nos obtenga los metadatos de un archivo plano alojado en un Azure Blob Storage y nos materialice este archivo con sus datos y la información de los Metadatos en un Azure SQL Synapse.
¡un vistazo a nuestra infraestructura requerida!
Información importante,
ADF Get Metadata: esta funcionalidad de ADF nos permite obtener los metadatos de cualquier dato mediante los diferentes tipos de conectores que ofrece Azure Data Factory, esta actividad toma un conjunto de datos como entrada y devuelve la información de los metadatos como salida
si quieres ver los tipos de conectores están disponibles consulta este enlace: https://docs.microsoft.com/en-us/azure/data-factory/control-flow-get-metadata-activity#supported-connectors
Puedes obtener los siguientes tipos de metadatos en la información de tus datos:
La actividad Get Metadata de ADF puede leer de los sistemas de bases de datos locales y en Azure, como Microsoft SQL Server, Azure SQL database, Azure Synapse, etc. En cuanto a los sistemas de archivos, puede leer la mayoría de los repositorios locales y en Azure.
¡Manos a la Obra!
Crear actividad Copydata para leer archivo plano
crearemos un Pipeline que nos lea el archivo plano y lo cargue en Azure Synapse con la metadata de la fecha de modificación del archivo:
Pipeline de carga archivo plano a Azure Synapse en un esquema de Stage.
¡verifiquemos que información cargamos al Azure Synapse!
Ahora debemos crear: la lectura del metadato, la asignaciónon de metadato a una variable y la carga del los datos y la variable al Azure Synapse.
Crear actividad Obtener metadatos
agregamos en nuestro Pipeline la actividad Get Metadata del grupo General (la he nombrado como Metadata1). Esta actividad leerá la fecha en la cual se cargaron los archivos al blob storage.
¡Vamos a configurar la Actividad!
en las pestañas de la actividad Get Metadata seleccione:
- Conjunto de datos: la conexión del Blob Storage(conexión al archivo plano)
- Haga clic en el botón + Nuevo para agregar el campo de metadatos y seleccione: LastModified
de esta forma obtendremos la fecha de la ultima modificación del archivo plano.
Crear variable del Pipeline
En nuestro Pipeline, en la pestaña de variables creamos una variable Fecha de tipo String, donde guardaremos la información del metadato. LastModified
Crear actividad Set Variable
agregamos en nuestro Pipeline la actividad Set variable del grupo General (la he nombrado como get_Fecha). para guardar en la variable Fecha la información del metadato LastModified(Metadata 1).
En el campo Value agregamos el contenido dinámico @activity(‘Metadata1’).output.lastModified
Crear Copydata Tabla destino
Por ultimo agregamos a nuestro Pipeline una Actividad de Copydata donde guardaremos los datos leídos en el primer Copydata y le adicionamos una columna de metadatos “LastModified” que es nuestra variable @Fecha.
importante: en la pestaña source debemos agregarle la variable Fecha dentro del query para realizar el mapping sin inconvenientes.
Query: SELECT *, ‘@{variables(‘Fecha’)}’as fecha FROM STG.Poblacion
ejecutamos el pipeline y revisamos resultados
¡Verificamos el resultado en el Azure Synapse!
Tener en cuenta que la Fecha y Hora del metadato LastModified esta en formato UTC.
hasta una próxima.