La Herramienta de migracion esta construida sobre Scio, el cual es una simplificacion de Apache Beaw, ademas de incluir otras fuentes que no estan soportadas directamente sobre Apache Beam como Azure Table Storage y Azure CosmosDB Core SQL API.
Esta herramienta esta diseñada para correr sobre diferentes motores, como Flink, Spark, Google Dataflow (serverless), Amazon EMR, etc. Pero para el caso de especifico de Telefonica se ah decidido correrlo sobre Flink, debido a que es un motor moderno preparado para correr procesas batch y streaming, ademas de ser nativo de nube por lo que correrlo sobre Kubernetes (AKS) es relativamente sencillo, ademas de ya tener toda la expertice ganada en kubernetes por ser el estandar de cloud.
Para poder correrlo sobre nube solo se necesita 2 cosas:
FlinkDeployment
, la cadena de conexion, y el script para ejecutar. CronJob
que sera el encargado de desplegar el FlinkDeployment
usando el script de ejecución a la hora definida dentro del CronJob
Entradas:
azfs://[tu_storage_accaunt]/[carpetas]/[YYYY-MM-DD_HHMMSS]/[NOMBRE_DE_TABLA]/part-[NOMBRE_DE_TABLA]_YYYY-MM-DD_HHMMSS_00000-of-00006.json
azfs://[tu_storage_accaunt]/[carpetas]/[YYYY-MM-DD_HHMMSS]/[NOMBRE_DE_TABLA]/part-[NOMBRE_DE_TABLA]_YYYY-MM-DD_HHMMSS_00001-of-00006.json
azfs://[tu_storage_accaunt]/[carpetas]/[YYYY-MM-DD_HHMMSS]/[NOMBRE_DE_TABLA]/part-[NOMBRE_DE_TABLA]_YYYY-MM-DD_HHMMSS_00002-of-00006.json
azfs://[tu_storage_accaunt]/[carpetas]/[YYYY-MM-DD_HHMMSS]/[NOMBRE_DE_TABLA]/part-[NOMBRE_DE_TABLA]_YYYY-MM-DD_HHMMSS_00003-of-00006.json
azfs://[tu_storage_accaunt]/[carpetas]/[YYYY-MM-DD_HHMMSS]/[NOMBRE_DE_TABLA]/part-[NOMBRE_DE_TABLA]_YYYY-MM-DD_HHMMSS_00004-of-00006.json
azfs://[tu_storage_accaunt]/[carpetas]/[YYYY-MM-DD_HHMMSS]/[NOMBRE_DE_TABLA]/part-[NOMBRE_DE_TABLA]_YYYY-MM-DD_HHMMSS_00005-of-00006.json
Ejemplo: