En el post anterior vimos como extraer y filtrar datos de un fichero TSV. Para trabajar con otro tipo de ficheros, como, por ejemplo, un json o un pdf, hay que utilizar custom extractors. En este post vamos a usar un proyecto ya creado, el cual compilaremos y, usaremos las assemblies creadas para hacer una extracción custom de datos en Azure Data Factory de un json. En el próximo post, crearemos un proyecto desde cero con un extractor para tratar datos de un fichero PDF.

Comenzamos!

Comenzaremos con la extracción de datos de un fichero json. Nos vamos a apoyar en la librería Microsoft.Analytics.Samples.Formats.

Para obtenerlas, debemos clonar el siguiente repositorio de github https://github.com/Azure/usql y bajo el directorio usql\Examples\DataFormats, tenemos una solución que deberemos compilar.

Una vez compilado, debemos copiar las librerías Microsoft.Analytics.Samples.Formats.dll y Newtonsoft.Json.dll para posteriormente registrarlas en Azure Data Lake.

A continuación, necesitamos crear una base de datos en Data Lake Store para poder registrar las dll. Para poder crearla, crearemos un U-SQL script que lanzaremos mediante un job en Data Lake. El script es el siguiente:

Lo podemos lanzar directamente desde el portal de Azure:

Si navegamos al Data Lake store, podremos ver la nueva base de datos creada:

Registro de librerías

Ahora subiremos las dos dll obtenidas en la compilación del proyecto al Data Lake Store para posteriormente poder registrarlas en nuestra base de datos. Para ello creamos una carpeta Assemblies en el Data Lake Store.

Vamos a usar un nuevo script para registrar las assemblies:

Tras la ejecución del job, podremos ver las assemblies registradas en el catálogo PEDRODEMOADLDB bajo la carpeta Assemblies:

Una vez registradas las assemblies, debemos crear un pipeline que haga uso de un script U-SQL para extraer los datos de un json y exportarlos a un fichero de salida con formato CSV.

El U-SQL script es el siguiente:

El Código de este script, coge el fichero json de la ruta en la que se encuentra, hace uso del extractor de json definido en las assemblies , y lo exporta a un fichero CSV a la ruta también indicada.

Subimos el json a la ruta indicada en el Azure Data Lake Storage:

Subimos también el U-SQL script a la cuenta de almacenamiento en la que almacenamos estos scripts:

Ahora procedemos a crear el pipeline en Azure Data Factory:

Validamos el pipeline y lo publicamos.

Resultado

Una vez publicado, vamos a ejecutarlo y monitorizar las ejecuciones.

Primero revisamos el job creado en Azure Data Lake Analytics y veremos la ejecución satisfactoria:

Y a continuación, validamos que la ejecución del pipeline en Azure Data Factory también ha terminado con éxito.

Una vez hecho esto, podemos buscar en la ruta de salida el fichero CSV generado que debe tener los mismos datos que el json cargado en la ruta de entrada.

Pues ya hemos visto como hacer una extracción custom de datos en Azure Data Factory, con una solución creada por un tercero. En el próximo post veremos cómo hacer una solución propia para extraer datos de un fichero PDF.

Última modificación: abril 15, 2020

Autor

Comentarios

Comenta o responde a los comentarios

Tu dirección de correo no será publicada.