tutorial google español bigquery python hadoop google-analytics google-bigquery etl

python - google - BigQuery a Hadoop Cluster: ¿cómo transferir datos?



dataflow (2)

La manera más fácil de ir de BigQuery a Hadoop es usar el conector oficial Google BigQuery para Hadoop.

https://cloud.google.com/hadoop/bigquery-connector

Este conector define una clase BigQueryInputFormat.

  • Escribe una consulta para seleccionar los objetos de BigQuery apropiados.
  • Divide los resultados de la consulta de manera uniforme entre los nodos de Hadoop.
  • Analiza las divisiones en objetos java para pasar al asignador. La clase Hadoop Mapper recibe una representación JsonObject de cada objeto BigQuery seleccionado.

(Utiliza Google Cloud Storage como intermediario entre los datos de BigQuery y las divisiones que consume Hadoop)

Tengo una cuenta de Google Analytics (GA) que rastrea la actividad del usuario de una aplicación. Configuré BigQuery para que pueda acceder a los datos brutos de GA. Los datos vienen de GA a BigQuery a diario.

Tengo una aplicación de Python que consulta la API de BigQuery mediante programación. Esta aplicación me da la respuesta requerida, dependiendo de lo que estoy buscando.

Mi siguiente paso es obtener estos datos de BigQuery y volcarlos en un clúster de Hadoop. Me gustaría crear idealmente una tabla de colmena usando los datos. Me gustaría construir algo así como un proceso de ETL en torno a la aplicación de Python. Por ejemplo, a diario, ejecuto el proceso etl que ejecuta la aplicación python y también exporta los datos al clúster.

Eventualmente, este proceso de ETL debe colocarse en Jenkins y debe poder ejecutarse en los sistemas de producción.

¿Qué arquitectura / diseño / factores generales necesitaría considerar al planificar este proceso de ETL?

¿Alguna sugerencia sobre cómo debo hacer esto? Estoy interesado en hacer esto de la manera más simple y viable.

Gracias por adelantado.


Echa un vistazo a Oozie . Parece ajustarse a tus requisitos. Tiene motor de flujo de trabajo, soporte de programación y script de shell y soporte de colmena.

En términos de instalación y despliegue, generalmente es parte de la distribución de hadoop, pero se puede instalar por separado. Tiene una dependencia de db como capa de persistencia. Eso puede requerir algunos esfuerzos adicionales.

Tiene interfaz de usuario web y API de descanso. La gestión y el control de los trabajos se pueden automatizar si se desea.