En esta entrada aprenderás sobre el servicio BigQuery: El Data Warehouse de Google Cloud. Este servicio se está volviendo cada vez más popular como pieza central en los despliegues de arquitecturas de datos analíticas en GCP. Sigue leyendo y no te pierdas las ventajas que ofrece y cómo puede ayudarte.
Contenidos
¿Qué es BigQuery?
BigQuery es el servicio de Data warehouse de Google Cloud (GCP). Es de tipo serverless, por lo que no es necesario administrar los clusters ni el hardware que maneja. El servicio está enfocado en actuar como el repositorio de datos de la organización para extraer conocimiento con procesos analíticos.
Los datos se dividen en colecciones de tablas, que pueden organizarse por dominios o líneas de negocios. Todos deben estar asociados a un proyecto en Google Cloud. BigQuery también soporta tablas externas y la definición de sus esquemas. Es posible configurar fuentes de datos federadas, por ejemplo con ficheros en almacenamiento de objetos.
El acceso a los datos en BigQuery se hace con SQL estándar, compatible con ANSI 2011. Antes de hacer consultas, debemos configurar los permisos para las acciones a las que queremos que los usuarios tengan acceso. Los permisos, grupos y roles sobre los trabajos de un proyecto se administran con el IAM (Identity and Access Management). Con este mecanismo se centralizan los permisos de acceso y se evitan las sentencias SQL de tipo Grant y Revoke.
Ventajas
BigQuery aporta a los equipos de datos de las organizaciones todas las ventajas de la nube pública. Los ingenieros de datos no deberán emplear tanto tiempo aprovisionando y administrando hardware ni mejorando la utilización y rendimiento de los recursos. Podrán centrarse en tareas más orientadas a los propios datos.
Los recursos que BigQuery necesita para el almacenamiento de datos y para ejecutar las consultas se calculan dinámicamente en función del uso, del tipo y de la complejidad de las consultas. Internamente, este cálculo se usa en base a slots, la unidad de medida de cómputo compuesta por cierta cantidad de RAM y de CPU. Esta funcionalidad es una ventaja respecto a muchos sistemas de gestión de bases de datos relacionales.
BigQuery como Data Warehouse
BigQuery es un servicio de data warehouse moderno, que actúa como pieza central en muchas arquitecturas de datos en Google Cloud. Proporciona capacidades en modo batch y en streaming y tiempo real. Además, tiene mecanismos para automatizar las transferencias de datos.
Otra capacidad muy interesante es la de compartir datos (data sharing). Permite la creación de fuentes de datos de solo lectura que usuarios externos y/o internos pueden consultar. Los resultados de estas consultas también pueden ser accesibles para cualquiera mediante herramientas como Google Sheets, Google Data Studio o Tableau.
El soporte a herramientas de inteligencia artificial tampoco se queda atrás, y es muy extenso. Es posible entrenar modelos de Machine Learning de Tensorflow o Google Cloud directamente con los datasets almacenados en BigQuery y usando SQL. BigQuery GIS también proporciona capacidades a las organizaciones de analizar datos geográficos.
Aunque estemos pensando en ingestar datos en BigQuery con pipelines ETL, tenemos otra opción, que es tratar el servicio como un motor de consultas federadas. Podemos usar BigQuery para hacer consultas sobre otras bases de datos como pueden ser MySQL o Postgres. También podemos consultar ficheros de datos en Parquet o CSV directamente sobre almacenamiento cloud.
Un Data Warehouse no vive aislado en las arquitecturas de datos de las organizaciones. Generalmente, convide con Data Lakes y Bases de datos relacionales. Estas bases de datos sirven como sistemas operacionales y fuentes de datos, además de ficheros de todo tipo. Todas estas fuentes de datos se consolidan en un Data Lake, que aporta la disponibilidad y durabilidad que se necesita.
Una vez en el lago de datos, los datos deben ser procesados y limpiados para acabar en el data warehouse, que es el lugar sobre el que se van a consumir los datos, por ejemplo para alimentar herramientas de reporting y BI.
¿Por qué usar BigQuery?
Una pregunta que enseguida te vendrá a la cabeza es por qué usar BigQuery frente a bases de datos SQL tradicionales como Google Cloud SQL.
Debemos tener en cuenta que estas herramientas están optimizadas para operar con transacciones, mientras que un data warehouse como BigQuery está enfocado en tareas de reporting y analítica, que son prácticamente en su totalidad operaciones de lectura.
Entre las optimizaciones para estos propósitos distintos se encuentra la manera que tienen de almacenar los datos. En el caso de las bases de datos SQL, lo hacen por filas. Al realizar una consulta, la base de datos debe cargar la fila completa de un registro del disco aunque solamente se necesite una columna en particular.
En el caso de los data warehouses y BigQuery se usan formatos de almacenamiento columnares. Estos formatos aceleran las consultas de reporting al permitir la lectura de columnas aisladas.
BigQuery BI Engine
Una herramienta de Google Cloud que ayuda a gestionar los dashboards es BigQuery BI Engine. Es un servicio de analítica en memoria integrado en BigQuery. Está enfocado en acelerar las aplicaciones de Business Intelligence.
BI Engine ofrece tiempos de consultas inferiores a un segundo y está construido sobre la misma arquitectura de BigQuery. Se pueden configurar alertas y notificaciones para métricas de servicios como Google Cloud Storage y BigQuery.
También se integra con Cloud Audit Logs para ver información de los trabajos y sus detalles con el nivel de granularidad necesario. Ayuda a determinar quién y cómo ha ejecutado las consultas sobre los datasets.
Siguientes Pasos con BigQuery y GCP
¿Quieres aprender más sobre Google Cloud y BigQuery? Actualmente es una de las nubes públicas con más crecimiento, y ser de los primeros profesionales en formarte en su uso te aportará una gran ventaja.
Certificación en Google Cloud: ingeniero de la nube
Este curso recomendado te aportará las habilidades que necesitas para avanzar en tu carrera de arquitectura de la nube y es una para obtener la certificación Google Cloud Associate Cloud Engineer, reconocida por el sector. A través de presentaciones, demos y laboratorios, explorarás y desplegarás elementos de Google Cloud a través de proyectos de Qwiklabs que podrás compartir con posibles empleadores.
También tendrás la oportunidad de practicar habilidades clave, como la configuración e implementación de entornos. Este curso también te proporcionará preguntas de muestra similares a las del examen de certificación, con las soluciones y pruebas de examen de práctica.
Preguntas Frecuentes BigQuery – FAQ
¿Cómo se cobra el uso de Google BigQuery?
El uso de Google BigQuery se cobra por consulta, almacenamiento y transferencia de datos. Los precios varían según la región geográfica y la cantidad de datos procesados. Además, Google BigQuery ofrece planes de precios flexibles y descuentos por volumen.
¿Qué es un job en Google BigQuery?
Un job en Google BigQuery es una tarea que se envía para procesar una consulta, cargar datos, exportar datos, etc. Se puede monitorizar el estado de los jobs y obtener información sobre su progreso, duración y coste.
¿Cómo se carga la información en Google BigQuery?
Puedes cargar la información en Google BigQuery desde archivos locales, Google Cloud Storage, servicios de transferencia de datos como Cloud Storage Transfer Service o mediante la replicación de datos desde bases de datos externas.