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 realizar exploración y análisis de datos complejos.
Notebooks de Colab Enterprise
Puedes usar notebooks de Colab Enterprise en BigQuery para completar flujos de trabajo de análisis y aprendizaje automático (AA) con SQL, Python y otros paquetes y APIs comunes. Los notebooks ofrecen una mejor colaboración y administración con las siguientes opciones:
- Comparte notebooks con usuarios y grupos específicos con Identity and Access Management (IAM).
- Revisa el historial de versiones del notebook.
- Revierte o ramifica a partir de las versiones anteriores del notebook.
Los notebooks son recursos de código de BigQuery Studio con tecnología de Dataform. Las consultas guardadas también son recursos de código. Todos los recursos de código se almacenan en una región predeterminada. La actualización de la región predeterminada cambia la región de todos los elementos de código que se crean después de ese punto.
Las funciones del notebook solo están disponibles en la consola de Google Cloud.
Los notebooks en BigQuery ofrecen los siguientes beneficios:
- BigQuery DataFrames está integrado en notebooks y no requiere configuración. BigQuery DataFrames es una API de Python que puedes usar para analizar datos a gran escala con las APIs de DataFrame de Pandas y scikit-learn.
- Desarrollo de código asistivo con la tecnología de IA generativa de Gemini.
- La capacidad de guardar, compartir y administrar versiones de notebooks
- La capacidad de usar matplotlib, seaborn y otras bibliotecas populares para visualizar datos en cualquier punto de tu flujo de trabajo.
BigQuery DataFrames
BigQuery DataFrames es un conjunto de bibliotecas de Python de código abierto que te permiten aprovechar el procesamiento de datos de BigQuery mediante APIs de Python conocidas. BigQuery DataFrames implementa las APIs de Pandas y scikit-learn mediante el envío del procesamiento a BigQuery a través de la conversión de SQL. Este diseño te permite usar BigQuery para explorar y procesar terabytes de datos y, también, entrenar modelos de AA, todo con las APIs de Python.
BigQuery DataFrames ofrece los siguientes beneficios:
- Más de 750 APIs de Pandas y scikit-learn implementadas a través de la conversión de SQL transparente a las APIs de BigQuery y BigQuery ML.
- Aplazamiento de la ejecución de las consultas para mejorar el rendimiento
- Extensión de las transformaciones de datos con funciones de Python definidas por el usuario para que puedas procesar datos en la nube. Estas funciones se implementan de forma automática como funciones remotas de BigQuery.
- Integración en Vertex AI para permitirte usar modelos de Gemini para la generación de texto.
Otras soluciones de análisis programático
Las siguientes soluciones de análisis programático también están disponibles en BigQuery.
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 tareas como la limpieza y transformación de datos, simulaciones numéricas, modelos estadísticos, visualización de datos y AA.
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.
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.
Puedes implementar notebooks de Jupyter y entornos de JupyterLab en Google Cloud mediante uno de los siguientes productos:
- Instancias de Vertex AI Workbench, un servicio que ofrece un entorno integrado de JupyterLab en el que los desarrolladores de aprendizaje automático y los científicos de datos pueden usar algunos de frameworks de ciencia de datos y aprendizaje automático más recientes. Vertex AI Workbench se integra en otros productos de datos de Google Cloud como BigQuery, lo que facilita el paso de la transferencia de datos al preprocesamiento y la exploración, y, luego, el entrenamiento de modelos y la implementación. Para obtener más información, consulta Introducción a las instancias de Vertex AI Workbench.
- Dataproc es un servicio completamente administrado, rápido y fácil de usar para ejecutar clústeres de Apache Spark y Apache Hadoop de manera simple y rentable. Puedes instalar notebooks de Jupyter y JupyterLab en un clúster de Dataproc con el componente opcional de Jupyter. El componente proporciona un kernel de Python para ejecutar el código de PySpark. De manera predeterminada, Dataproc configura de forma automática los notebooks para guardarlos en Cloud Storage, lo que hace que otros clústeres puedan acceder a los mismos archivos de notebook. Cuando migres tus notebooks existentes a Dataproc, verifica que 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 el instructivo Instala y ejecuta un notebook de Jupyter en un clúster de Dataproc.
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 la instalación y configuración de 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.
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 que se usa 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.
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.