Introduction to Data Engineering: Módulo 1
1. Google Cloud Platform (GCP)
Google tiene como misión organizar la información mundial y volverla universalmente accesible y útil.
- GCP se encarga de proporcionar los recursos computacionales para poder realizar trabajos como modelos de Machine Learning; debido a la gran capacidad de recursos físicos que posee. Posee una gran cantidad de Unidades de Procesamiento Tensorial (TPU) con las cuales tiene mayor velocidad y cantidad de iteraciones
- GCP cuenta con un gran almacenamiento que alberga la información de todas las plataformas de Google garantizando un gran porcentaje de duración. GCP posee servidores regionales para atender a las necesidades de trabajo en tiempo real. Cloud Storage Buckets son uno de los muchos recursos de GCP.
- GCP tiene los servidores y las redes para soportar la demanda de transferencia de datos.
- GCP ofrece servicios de seguridad y se puede encargar en el manejo de una gran parte de las responsabilidades de los datos almacenados.
2. Ingeniero de Datos
2.1 Roles
El ingeniero de datos está encargado de construir pipelines para ordenar los datos, y poder obtener información en tablas y reportes que puedan ser útiles para su análisis o para modelados de Machine Learning. Son importantes al saber dónde está la información como mostrarla, que parte del negocio puede usar dicha información para tomar decisiones.
2.2 Desafíos
El desafío principal es el acceso a los datos. Para poder acceder a los datos se realiza una conexión a través de una plataforma alterna con backups.
En relación a la calidad de los datos, es necesario conocer la procedencia de los datos de manera exacta. Además, se debe tomar en cuenta que al realizar una migración de datos estos no sean afectados por las zonas horarias. Finalmente, se debe realizar una limpieza de estos.
Otros desafíos que encontramos son la forma en que accedemos al procesamiento computacional de los datos, los tiempos de consultas y el consumo de los recursos en cloud. Hay que considerar que solo pagamos por lo que realizamos más no por el mantenimiento o estabilidad de los servidores.
Para la ejecución de Querys se elige una herramienta que nos permita ejecutarlos de tal manera que nos resulte más eficiente, sin requerir actualizaciones e incompatibilidades de versiones.
3. Introducción a Big Query
BigQuery es el data warehouse creado por Google Cloud Plataform (GCP), que reemplaza a los métodos tradicionales de data warehouse y que permite utilizar menor
cantidad de tiempo en el monitoreo y mantenimiento del sistema, y concentrarse en generar insights. Permite la conexión con Cloud Storage y Cloud SQL a través de sus propias ETL Pipelines.
Remplazando el hardware tradicional y poniendo un Data Warehouse a tu disposición con todas las capacidades analíticas, tiene colecciones de tablas que pueden ser divididas por líneas de negocio o dominios específicos analíticos y cada Dataset es adjunto a un proyectó de GCP, una vez dentro de BigQuery podemos crear más Dataset perteneciendo a una sola línea de negocio.
Las tablas y vistas pueden ser generadas de la misma forma que al usar SQL en bases de datos locales, ya sea para el uso de programas (aplicaciones) o para personas, que requieran los datos.
Para manejó de permisos, se usa el IAM para asignar ciertos reemplazando al SQL grant o SQL revoke usados comúnmente en bases transaccionales.
La persona que va a pagar por las consultas es aquel encargado en procesarla información que requiere de nuestra base de datos, esto será cobrado por aquel que tiene el proyecto donde se procesa la consulta.
4. Data Lake
Un Data Lake es donde se centraliza toda la información de la empresa en un solo lugar, sin importar si es información relacional o no relacional, información transaccional o analítica centralizándola en un lugar específico. Una de las opciones de Google Cloud Platform (GCP) es Cloud Storage siendo similar a un S3 de AWS o Buckets de Azure.
Como vamos a brindar los accesos y permisos de usuario para lectura y escrituras se brindará el acceso para cuestiones de analítica o cifrado de datos.
Porque elegir Cloud Storage, en los negocios es muy común el uso del mismo para la realización de Backups debido a costos y mantenimiento.
Los ingenieros de datos usan Cloud Storage para almacenar los distintos tipos de datos que van a llegar. Con ello se puede hacer uso de herramientas de analítica y de la misma forma realizar procesos SQL mediante el uso de BigQuery para trabajar sobre los datos que están almacenados en algún lugar.
Los resultados obtenidos debemos procesarlos para que el usuario final pueda llegar a entenderlos. Para esto se usan servicios que nos permite la integración de distintas fuentes. Es conocido como Extraer, Transformar, Cargar con sus siglas en inglés (ETL). Usaremos Cloud Dataproc y Cloud Dataflow
Para conseguir datos constantes, con mayor flujo y continua se tiene herramientas como Cloud Pub/Sub Cloud Dataflow y Big Query.
4.1 Cloud Storage
Es un datalake diseñado para tener un gran porcentaje de durabilidad en su almacenamiento, infraestructura, análisis y Machine Learning.
Tiene pipelines útiles para extraer, transformar y cargar los datos de forma cruda para obtener datos útiles y ordenados. Entre estos procesadores de datos tenemos: Cloud Dataproc, Cloud Dataflow.
Posee herramientas para streaming cuando la data es constante: Cloud Pub/Sub, Cloud DataFlow y Big Query.
4.2 ETL Pipelines
Son los procesos que transforman los datos de un data lake para ser almacenados en un data Warehouse. Estos procesos son: Extraer, Transformar y Cargar.
Se enfocan en:
- Consolidar datasets dispares, formatos de datos y manejar el acceso escalable.
- Limpiar, formatear y obtener datos listos para insights empresariales en un data warehouse.
- Optimizar los Queries para su desempeño (obtención, paralelismo y ejecución)
- Tener los datos listos para ser utilizados.
5. Data Lakes y Data Warehouses
Las preguntas para responder son quiero un data lake para solo almacenar a querer un data warehouse para realizar analítica sobre la información.
Como ingenieros de datos nos debemos enfocar en los datos los cuales deben estar en condiciones listas para su uso, con ello los usuarios pueden tomar decisiones basadas en los datos.
Usaremos herramientas de ETL para que los datos sean usables cuando llegan la data warehouse. Almacena los datos ya transformados en condiciones que los usuarios pueden generar distintas perspectivas sobre la información.
Las actualizaciones deben ser lo más rápido generando información cada milésima de segundo, pero existe el caso que la latencia pueda demorar más en generar la información
5.1 Base de datos Transaccional y Data Warehouse
Se tiene dos tipos de bases de datos:
La base de datos similares a data warehouse para lectura de datos que se almacenan en columnas, entre estos está Big Query
La base de datos optimizada para situaciones transaccionales, para escritura de datos que se almacenan en registros Cloud SQL.
5.1.1 Cloud SQL
Es un sistema de manejo de base de datos transaccionales y relacionales de Google. Utiliza herramientas de manejo como Postgres, MySQL y SQL Server. Tiene las siguientes características.
- Encriptación automática.
- 30TB de capacidad de almacenamiento
- 60000 IOPs (Lecturas y escrituras por segundo)
- Autoescalabilidad, y auto backup.
Los sistemas de manejo de bases de datos relacionales (RDBMS) esta optimizado para trabajar con datos de una sola fuente y un alto rendimiento de escritura y almacenamiento.
Las principales diferencias de Cloud SQL (Base de Datos) y BigQuery (Data Warehouse) son las siguientes:
Cabe recalcar que el objetivo de los RDBMS es diferente a los Data Warehouse, por lo tanto, se puede buscar el enganche entre ambas herramientas dentro de la arquitectura final.
5.2 Asóciese efectivamente con otros equipos de datos
Debemos agregar valor a los datos a través de analítica y aprendizaje de máquina, donde participan Ingenieros en aprendizaje de máquina, analistas de datos e Ingenieros de datos.
El equipo de Aprendizaje de maquina requiere que los Ingenieros de datos envíen información a través de cierto canal para procesar los datos y con ello plantear los modelos, nosotros como habilitamos el canal para él envió de información
BI Engine, nos permite almacenar los datos similares al cache, sin la necesidad que sea el mismo usuario amenorando el tiempo de consultarla
Stackdrive permite monitorear las consultas, en base a los recursos usados y definir un reporte partiendo de los logs para saber que consultas toman mayor tiempo, creando alertas y notificación de envíos
5.2.1 Salidas de Big Query (Data Warehouse)
- Feature Pipelines: son útiles para exportar la información e insights hacia un modelo de Machine Learning para realizar retroalimentación en el procesamiento de los datos, y producir predicciones de los datos.
- Engineering Pipelines: Son capaces de proporcionar la información hacia otros equipos de Data Warehouse mediante streaming.
- Business Intelligence Pipelines: Estos pipelines de salida, sirven para desplegar la información en reportes y tablas. Un ejemplo es la herramienta de Google BigQuery BI Engine y Stackdriver Monitoring.
5.2.2 Gestionar el acceso al gobierno de datos
Debemos administrar nuestra información generando un gobierno de datos para generar privacidad y seguridad, considerando el modelo de gobierno para saber que personas son las que pueden acceder usando el dato que identifica a una persona, solo acceso a vistas o data set, usando el Data Catalog, permitiendo salvaguardad la información usando el Data Loss, generando una interfaz para brindar acceso a cierta información y más no a otros datos.
5.2.3 Construir canal de listas para producción
Al poner en producción a los procesos de los datos, se deben asegurar los datos y las distintas prácticas de cada uno de los proveedores. El servicio más común utilizado por las empresas es Apache Airflow. GCP tiene su propia versión de este servicio, el cual es conocido como Cloud Composer Este servicio es el orquestador y va a permitir manejar todas las herramientas e información de lectura y escritura llevando la batuta. Se tiene varias API disponibles para su uso.
5.3 Revisión del caso de estudio de cliente de GCP
Lo que realiza el Ingeniero de datos en un caso real, el ejemplo es el de un call center. Un ejemplo es identificar el mensaje importante para mejorar la calidad de servicio para ayudar de mejor manera a sus clientes.
El uso de BigQuery con Twitter, donde se analiza con GCP, para saber las opiniones de los clientes.
Autores:
- Autores: Gabriel Guerra
- Paulette Parra
- Diego Paz
- Pablo Zuñiga
Revisa los siguientes post
Módulo 2: Construyendo un Data Lake en GCP
Módulo 3: Building a Data Warehouse
Módulo 4: Procesamiento — AWS IOT CORE
Módulo 6: Serverless Data Processing with Dataflow
Conoce más: bootcampai.org/di