Aprenda a acceder y consultar datos con Google BigQuery. Con ejemplos en Python y R

¡Hola, Habr!



Nos recientemente publicado un detallado libro sobre el trabajo con el almacén de datos de Google BigQuery . Hoy decidimos tocar brevemente este tema nuevamente y publicar un pequeño caso sobre cómo consultar datos de BigQuery en Python y R.



Háganos saber en los comentarios si está interesado en una publicación sobre aprendizaje automático usando BigQuery.







Visión de conjunto



En este artículo, veremos cómo cargar datos de Google BigQuery usando Python y R, y luego hablaremos sobre cómo consultar los datos para obtener información útil. Usaremos la biblioteca de Google Cloud BigQuery para conectarnos a BigQuery Python y la biblioteca de bigrquery para hacer lo mismo en R.



También analizaremos dos etapas de la manipulación de datos de BigQuery con Python / R:



  • Conectividad y acceso a datos de Google BigQuery
  • Consultar datos con Python / R


Este artículo asume que todos sus datos de usuario se almacenan en Google BigQuery.



Pitón



Python es uno de los lenguajes de propósito general más populares para manipular datos. Goza de atención y demanda debido a su flexibilidad y facilidad de uso, y en ciencia de datos cuenta con una amplia variedad de bibliotecas y herramientas para interactuar con sistemas de terceros.



Conexión a Google BigQuery con Python



Para consultar datos de Google BigQuery con Python, debes conectar el cliente de Python a tu instancia de BigQuery. Utiliza la biblioteca cliente en la nube para la API de Google BigQuery. También existen soluciones alternativas para conectarse a BigQuery mediante Python; por ejemplo, la biblioteca BigQuery-Python de tylertreat es excelente.



Trabajaremos con la biblioteca de Google Cloud BigQuery, ya que es estable y cuenta con el respaldo oficial de Google.



Esto supone que ya tiene configurado un entorno de desarrollo Python.

Para instalar la biblioteca, ejecute el siguiente comando en la línea de comandos:



pip install --upgrade google-cloud-bigquery


A continuación, conectamos el cliente a la base de datos. Para hacer esto, debe descargar un archivo JSON que contenga las credenciales para el servicio BigQuery. Si no tiene uno, aquí le mostramos cómo crear uno. A continuación, descargue este archivo JSON en su máquina local.



Ahora que tenemos todo configurado, procedemos a inicializar la conexión. El siguiente código de Python se utiliza para esto:



rom google.cloud import bigquery
	from google.oauth2 import service_account
	credentials = service_account.Credentials.from_service_account_file(
	'path/to/file.json')
	

	project_id = 'my-bq'
	client = bigquery.Client(credentials= credentials,project=project_id)


En el fragmento anterior, también deberá especificar la project_idubicación del archivo JSON con la clave, reemplazando " path/to/file.json" con la ruta realmente correcta al archivo JSON guardado en la máquina local.



En Google BigQuery, un proyecto es un contenedor de nivel superior y proporciona control de acceso predeterminado sobre todos los conjuntos de datos.



Consultar datos de BigQuery con Python



Ahora que nuestro cliente de BigQuery está configurado y listo para usar, podemos consultar una gran cantidad de datos de BigQuery.



Para hacer esto, se usa un método de consulta, que coloca el trabajo de consulta en una cola de BigQuery. Luego, las solicitudes se ejecutan de forma asincrónica; esto significa que no especificamos ningún retraso y el cliente espera a que se complete el trabajo. Una vez que esto sucede, el método devuelve una instancia que Query_Jobcontiene los resultados.



Puede leer más sobre cómo funciona este método en la documentación oficial aquí .



Así es como se ve el código de interés de Python:



query_job = client.query("""
	   SELECT *
	   FROM dataset.my_table
	   LIMIT 1000 """)
	

	results = query_job.result() #   .


Tenga en cuenta que la consulta anterior tiene como valor predeterminado la sintaxis SQL estándar. Si desea utilizar SQL heredado, el código será así:



job_config.use_legacy_sql = True
	query_job = client.query("""
	   SELECT *
	   FROM dataset.my_table
	   LIMIT 1000""", job_config = job_config)
	

	results = query_job.result() #   .


R



El lenguaje R es una alternativa popular a Python y se usa activamente en la ciencia de datos. Si está interesado en el análisis estadístico detallado y metódico de datos, hay pocos lenguajes que puedan competir con R.



Al trabajar con Google BigQuery, R también ofrece una biblioteca confiable y fácil de usar para consultar y manipular datos. Aquí trabajaremos con la biblioteca bigrquery creada y mantenida por Hadley Wickham, director de investigación de RStudio.



Esto supone que ya ha configurado su entorno de desarrollo en R. De lo contrario, use este tutorial para configurar RStudio.



Conéctese a Google BigQuery con R



Para instalar bigrquery, ejecute el siguiente comando desde la consola de R:



install.packages(“bigrquery”)


¡Es así de simple! Estamos listos para irnos.



Al igual que con Python, se requiere la autorización de nuestro cliente R para acceder a Google Cloud Services. Como se muestra en la documentación de bigrquery, siga el mensaje de la consola de R para abrir la URL de inicio de sesión y luego copie el código en la consola.



Tenga en cuenta: esta autorización debe realizarse solo una vez. Todas las solicitudes posteriores actualizarán automáticamente las credenciales de acceso.



Consultar datos de BigQuery con R



Para consultar datos de BigQuery en R, siga estos pasos:



  • Indicaremos el ID del proyecto desde la consola de Google Cloud, como se hizo en Python.
  • Formemos una cadena de consulta con la que solicitaremos datos.
  • Vamos a llamarlo query_execcon nuestro ID de proyecto y cadena de consulta.


Aquí está el código para hacer todo esto:



#  
	library(bigrquery)
	

	#   ID  
	project_id <- "your-project-id" 
	

	#  
	sql_string <- "SELECT * FROM dataset.my_table LIMIT 1000"
	

	#     
	query_results <- query_exec(sql_string, project = project_id, useLegacySql = FALSE)


Al igual que con Python, puede ejecutar consultas escritas en SQL heredado. También puede cambiar el valor useLegacySqla TRUEen su función query_exec.



Conclusión



Entonces, examinamos lo fácil y simple que es trabajar con datos guardados en Google BigQuery, refiriéndonos a ellos en Python y R.



En estos dos lenguajes, no es difícil construir un modelo estadístico basado en los datos procesados ​​de esta manera, y diferentes propósitos: comprender cómo se comporta el usuario en la aplicación, predecir la tasa de abandono, etc.



All Articles