Depurando mis Contactos a través de procesos ETL
ETL es el acrónimo en inglés para para Extracción, Transformación y Carga, pasos que suelen darse en el proceso de crear o depurar una base de datos compuesta por distintas fuentes para que al final cumplan un objetivo definido (Data Ingestion).
A través del siguiente proyecto, describiré a través de la metodología STAR cómo se ejecuta un proceso ETL y conocer un poco más de qué va todo esto.
Situación:
Desde hace mucho tiempo tenía la necesidad de depurar la lista de contactos en el celular, claramente nunca lo había hecho de manera masiva por lo que este proceso fue totalmente nuevo para mí, son muchos datos (1,900 contactos) y debía crear una metodología para "limpiar" esta base evitando posibles pérdidas indeseadas.
Muchos de estos contactos estaban desactualizados, provenían de distintas fuentes, no estaban respaldados al 100%, estaban repetidos o sencillamente eran irrelevantes.
Tarea:
El reto comenzaría por identificar y extraer de las diversas fuentes de data (acumulada de unos 14 años) la información disponible.
Transformarla estandarizando el formato de los datos (que debido a los cambios de dispositivos móviles y plataformas Android↔️iPhone, estos no eran consistentes), realizar cambios masivos en algunos números por cambios en el sistema de marcado en México y además, eliminar viejos contactos que al día de hoy son irrelevantes de llevar en mi teléfono.
El último paso consistiría en cargar la nueva base de datos depurada para reemplazar la base de datos actual, proceso super delicado que debía llevarse a cabo en un entorno seguridad (QA) para evitar posibles pérdidas importantes.
Recomendado por LinkedIn
Adicionalmente, se tenía que definir un sistema permanente para automatizar y controlar mejor la carga y respaldo de la información para evitar tener que repetir el proceso en un futuro.
Acción:
Al ser una cantidad de datos manejables en una hoja de calculo (1,900 registros aprox) y haciendo algunas pruebas, me di cuenta que la base de datos en iCloud era la más reciente y sumaba todos o casi todos los datos almacenados en Google Contacts, por esto fue priorizada en el proceso de extracción. iCloud no tiene una función para exportar tus datos en un .csv o .xls, por esta razón y luego de investigar, pude descubrir que utilizando la desktopp app de Contactos en mi Macbook, podía "arrastrar" los datos a una hoja de cálculo en Numbers (el primo pequeño de Excel en iOS) y en este programa exportar el deseado .csv que me permitiría transformar la data.
El proceso de transformación fue complejo y se llevó la mayor parte del tiempo, para ser breve lo que hice fue cargar el .csv en un Google Sheets (Realmente me impresionó lo avanzado que está esta hoja de cálculo en la nube) y utilizando distintas funciones hacer todas las validaciones necesarias, organizar, complementar datos, eliminar registros viejos, duplicados o irrelevantes, etc.
Para la carga de datos, el primer paso fue definir cual sería mi entorno de quality assurance para visualizar la información y hacer pruebas, por lo que utilicé una cuenta de Google secundaria en la que no almaceno Contactos, sincronizarla con mi celular y ver cómo habían quedado todos los cambios producidos. Luego de hacer algunos ajustes y reprocesos, estábamos listos para cargar la nueva base en un entorno de "producción" y sustituir la inicial.
Resultados: