Herramientas de análisis programático

En este documento, se describen varias formas de escribir y ejecutar código para analizar datos administrados en BigQuery.

Aunque SQL es un lenguaje de consulta potente, los lenguajes de programación como Python, Java o R proporcionan sintaxis y una gran variedad de funciones estadísticas integradas que a los analistas de datos pueden resultarles más expresivas y fáciles de manipular para ciertos tipos de análisis de datos.

Del mismo modo, aunque las hojas de cálculo son muy usadas, otros entornos de programación como los notebooks a veces pueden proporcionar un entorno más flexible para hacer exploración y análisis de datos complejos.

Notebooks de Jupyter

Jupyter es una aplicación de código abierto basada en la Web para publicar notebooks que contienen código activo, descripciones textuales y visualizaciones. Los científicos de datos, especialistas en aprendizaje automático y estudiantes suelen usar esta plataforma para la limpieza y transformación de datos, simulaciones numéricas, modelos estadísticos, visualización de datos, aprendizaje automático y mucho más.

Los notebooks de Jupyter están compilados sobre el kernel de IPython, un potente shell interactivo que puede interactuar de forma directa con BigQuery mediante los comandos mágicos de IPython para BigQuery. Como alternativa, también puedes acceder a BigQuery desde las instancias de notebooks de Jupyter si instalas cualquiera de las bibliotecas cliente de BigQuery disponibles. Puedes visualizar datos de BigQuery GIS con notebooks de Jupyter a través de la extensión GeoJSON. Para obtener más detalles sobre la integración en BigQuery, consulta el instructivo sobre la visualización de datos de BigQuery en un notebook de Jupyter.

Gráfico de notebook de Jupyter que muestra una visualización de los datos de BigQuery GIS.

JupyterLab es una interfaz de usuario basada en la Web para administrar documentos y actividades como los notebooks de Jupyter, editores de texto, terminales y componentes personalizados. Con JupyterLab, puedes organizar varios documentos y actividades uno al lado del otro en el área de trabajo mediante pestañas y divisores.

JupyterLab: uso de pestañas y divisores para organizar varios documentos y actividades uno al lado del otro en el área de trabajo.

Puedes implementar notebooks de Jupyter y entornos de JupyterLab en Google Cloud mediante uno de los siguientes productos:

Apache Zeppelin

Apache Zeppelin es un proyecto de código abierto que ofrece notebooks basados en la Web para estadísticas de datos. Puedes implementar una instancia de Apache Zeppelin en Dataproc si instalas el componente opcional de Zeppelin. De forma predeterminada, los notebook se guardan en Cloud Storage en el bucket de etapa de pruebas de Dataproc, que el usuario especifica o que se crea de forma automática junto con el clúster. Puedes cambiar la ubicación del notebook si agregas la propiedad zeppelin:zeppelin.notebook.gcs.dir cuando creas el clúster. Para obtener más información sobre cómo instalar y configurar Apache Zeppelin, consulta la guía de componentes de Zeppelin. Si deseas ver un ejemplo, consulta Analiza los conjuntos de datos de BigQuery con el intérprete de BigQuery para Apache Zeppelin.

Análisis SQL de los datos de la tabla, como se muestra en Zeppelin.

Apache Hadoop, Apache Spark y Apache Hive

Como parte de tu migración de canalización de análisis de datos, es posible que desees migrar algún Apache Hadoop heredado, Apache Spark o Trabajos de Apache Hive que necesitan procesar datos de forma directa desde tu almacén de datos. Por ejemplo, puedes extraer características para tus cargas de trabajo de aprendizaje automático.

Dataproc te permite implementar clústeres completamente administrados de Hadoop y Spark de manera eficiente y rentable. Dataproc se integra con conectores de BigQuery de código abierto. Estos conectores usan la API de almacenamiento de BigQuery, que transmite datos en paralelo de forma directa desde BigQuery a través de gRPC.

Cuando migras tus cargas de trabajo existentes de Hadoop y Spark a Dataproc, puedes comprobar si sus dependencias están cubiertas por las versiones compatibles de Dataproc. Si necesitas instalar software personalizado, se recomienda que crees tu propia imagen de Dataproc, escribas tus propias acciones de inicialización o especifiques requisitos personalizados del paquete de Python.

Para comenzar, consulta las guías de inicio rápido de Dataproc y los ejemplos de código del conector de BigQuery.

Apache Beam

Apache Beam es un marco de trabajo de código abierto que proporciona un amplio conjunto de primitivas de análisis de sesiones y renderización en ventanas, además de un ecosistema de conectores fuente y receptores, incluido un conector para BigQuery. Apache Beam te permite transformar y enriquecer datos en modo de transmisión (en tiempo real) y por lotes (histórico) con la misma confiabilidad y expresividad.

Dataflow es un servicio completamente administrado para ejecutar trabajos de Apache Beam a gran escala. El enfoque sin servidores de Dataflow quita la sobrecarga operativa, ya que el rendimiento, el escalamiento, la disponibilidad, la seguridad y el cumplimiento se manejan de forma automática para que puedas concentrarte en la programación en lugar de administrar clústeres de servidores.

Grafo de ejecución con una transformación compuesta expandida (MakeMapView). Está elegida la subtransformación que crea la entrada complementaria (CreateDataflowView) y se muestran las métricas de entradas complementarias en la pestaña Paso.

Puedes enviar trabajos de Dataflow de diferentes maneras, ya sea a través de la interfaz de línea de comandos, el SDK de Java o el SDK de Python.

Si deseas migrar tus canalizaciones y consultas de datos de otros frameworks a Apache Beam y Dataflow, consulta el modelo de programación de Apache Beam y explora la documentación de Dataflow oficial.

RStudio

Los científicos de datos suelen usar el lenguaje de programación R para compilar herramientas de análisis de datos y apps estadísticas. RStudio desarrolla herramientas gratuitas y abiertas para R y productos profesionales para empresas para que los equipos escalen y compartan el trabajo. Los productos de RStudio, como RStudio Server Pro, simplifican el análisis de datos con R y proporcionan herramientas potentes para publicar y compartir.

RStudio Server Pro es un entorno de desarrollo integrado (IDE) a pedido y con licencia comercial. Ofrece las funciones que se encuentran en el popular IDE de código abierto de RStudio y, también, la conveniencia de la preconfiguración, la capacidad de administrar varias sesiones y versiones de R, seguridad mejorada y mucho más.

Puedes implementar el componente de RStudio Server Pro para Google Cloud desde Cloud Marketplace. Esta versión es idéntica a RStudio Server Pro, pero es más conveniente para los científicos de datos, lo que incluye la preinstalación de varias versiones de R y bibliotecas de sistemas comunes. También incluye bigrquery, el paquete de BigQuery para R, que proporciona backends DBI y dplyr que te permiten interactuar con BigQuery mediante SQL de bajo nivel o verbos dplyr de alto nivel. Este paquete simplifica el trabajo con datos almacenados en BigQuery porque te permite consultar tablas de BigQuery y recuperar metadatos sobre tus proyectos, conjuntos de datos, tablas y trabajos. Si deseas obtener más información, consulta la guía oficial en la introducción a RStudio Server Pro para Google Cloud y las Preguntas frecuentes sobre RStudio Server Pro para Google Cloud.

También puedes instalar la versión de código abierto de RStudio Server en un clúster de Dataproc. Una ventaja de ejecutar RStudio en Dataproc es que puedes aprovechar el ajuste de escala automático de Dataproc. Con el ajuste de escala automático, puedes tener un tamaño de clúster mínimo a medida que desarrollas la lógica de SparkR. Después de enviar tu trabajo para el procesamiento a gran escala, no debes hacer nada diferente ni preocuparte por modificar tu servidor. Después de enviar tu trabajo de SparkR a RStudio, el clúster de Dataproc se escala para satisfacer las necesidades de tu trabajo dentro de los intervalos que establezcas. Para obtener más información sobre la integración de RStudio con Dataproc, consulta el anuncio oficial.

Otros recursos

BigQuery ofrece un gran arreglo de bibliotecas cliente en varios lenguajes de programación, como Java, Go, Python, JavaScript, PHP y Ruby. Algunos marcos de trabajo de análisis de datos, como Pandas, proporcionan complementos que interactúan de forma directa con BigQuery. Para ver algunos ejemplos prácticos, consulta el instructivo Visualiza datos de BigQuery en un notebook de Jupyter.

Por último, si prefieres escribir programas en un entorno de shell, puedes usar la herramienta de línea de comandos de bq.