2 Lab Dataflow - Procesamiento ETL Con Dataflow y BigQuery
2 Lab Dataflow - Procesamiento ETL Con Dataflow y BigQuery
2 Lab Dataflow - Procesamiento ETL Con Dataflow y BigQuery
BigQuery
Comprobar los permisos del proyecto
Antes de comenzar a trabajar en Google Cloud, debemos asegurarnos que
el proyecto tenga los permisos correctos dentro de Identity and Access
Management (IAM).
1. En la consola de Google Cloud, en el menú de navegación ( ),
hacer clic en IAM y administración > IAM.
2. Confirmar que la cuenta de servicio de cómputo predeterminada
{project-number}[email protected] esté
presente y tenga asignada la función de editor. El prefijo de la cuenta
es el número del proyecto, que se puede encontrar en Menú de
navegación > Inicio.
Asegurarse que la API de Dataflow esté habilitada correctamente
Algunas veces el API de Dataflow puede presentar errores. Para garantizar
el acceso a la API necesaria, reiniciar la conexión a la API de Dataflow.
export PROJECT=<PROJECT-ID>
gcloud config set project $PROJECT
gsutil cp gs://spls/gsp290/data_files/usa_names.csv
gs://$PROJECT/data_files/
gsutil cp gs://spls/gsp290/data_files/head_usa_names.csv
gs://$PROJECT/data_files/
Crear el dataset de BigQuery
bq mk lake
Ingestión de Datos
cd dataflow-python/
# Configuramos el entorno de python.
# Pip is una herramienta, parecida a Maven en Java
sudo pip3 install virtualenv
#Dataflow requiere python 3.7
virtualenv -p python3 venv
source venv/bin/activate
pip install apache-beam[gcp]==2.24.0
python data_ingestion.py \
--project=$PROJECT \
--region=us-central1 \
--runner=DataflowRunner \
--staging_location=gs://$PROJECT/test \
--temp_location gs://$PROJECT/test \
--input gs://$PROJECT/data_files/head_usa_names.csv \
--save_main_session
Abrimos Dataflow
Clic en el nombre del job para ver su progreso. Una vez que el estado del
job sea Success vamos a BigQuery (Menú de navegación > BigQuery) y
veremos que los datos estén cargados.
Clic en el nombre del proyecto para ver la tabla usa_names debajo del
dataset lake.
Transformación de Datos
python data_transformation.py \
--project=$PROJECT \
--region=us-central1 \
--runner=DataflowRunner \
--staging_location=gs://$PROJECT/test \
--temp_location gs://$PROJECT/test \
--input gs://$PROJECT/data_files/head_usa_names.csv \
--save_main_session
En Dataflow, clic en el nombre del job para ver su progreso. Una vez que el
estado del job sea Success vamos a BigQuery (Menú de navegación >
BigQuery) y veremos que los datos estén cargados en una tabla llamada
usa_names_transformed.
Enriquecimiento de Datos
python data_enrichment.py \
--project=$PROJECT \
--region=us-central1 \
--runner=DataflowRunner \
--staging_location=gs://$PROJECT/test \
--temp_location gs://$PROJECT/test \
--input gs://$PROJECT/data_files/head_usa_names.csv \
--save_main_session