Tutorial de implementación de una arquitectura de adquisición, procesamiento, almacenamiento y análisis de datos en Google Cloud.
El sistema simulará una arquitectura de adquisición y análisis de datos de un conteo de entrada y salida de personas de locales comerciales.
-
Si no tienes una cuenta de Google (o GMail), puedes crear una aquí. Si dispones de una, puedes pasar al siguiente paso.
-
Accede a la consola de Google Cloud Platform: https://console.cloud.google.com/
-
Crea un nuevo proyecto y recuerda el ID de proyecto indicado:
- Activa una cuenta de gasto para tu proyecto: https://console.cloud.google.com/billing. Ejecutar este tutorial no debe costar más de 1 €. Un nuevo usuario dispone de una prueba gratuita de $300.
En el menú, selecciona "APIs & Services > Library" y activa las siguientes APIs si no lo están:
- Google Compute Engine APIs
- Google Cloud Pub/Sub API
- Google Cloud Storage
- Google Dataflow API
- BigQuery API
Haz click en el icono de Cloud Shell en el menú superior:
- Comprueba tu cuenta y autenticación:
gcloud auth list
- Comprueba la configuración:
gcloud config list
- Establece una zona y region por defecto:
gcloud config set compute/region europe-west1
gcloud config set compute/zone europe-west1-b
En tu terminal de Cloud Shell, clona este repositorio y accede al mismo:
git clone https://github.com/GDG-Almeria/big-data-en-google-cloud
cd big-data-en-google-cloud
-
En el menú "APIs & Services > Credentials", pulsa "Create credential", "Service account key", "New service account". Dale un nombre, rol de "project > owner", selecciona de tipo "JSON" y pulsa crear.
-
Se descargará un archivo de tipo JSON en tu navegador.
-
Abre el editor de texto de Cloud Shell.
-
Crea un nuevo archivo de nombre
credentials.jsonen la carpeta actual (dentro del repositorio), copia en él el contenido del archivo descargado y guárdalo. -
Crea la variable de entorno
GOOGLE_APPLICATION_CREDENTIALScon el valor del path al archivocredentials.json, p. ej.:
export GOOGLE_APPLICATION_CREDENTIALS="/home/info/big-data-en-google-cloud/credentials.json"
Puedes usar el comando pwd para determinar el path del directorio actual.
gcloud pubsub topics create fuente-datos
gcloud pubsub subscriptions create suscripcion-datos --topic fuente-datos
gcloud pubsub topics publish fuente-datos --message "hola mundo!"
gcloud pubsub subscriptions pull --auto-ack suscripcion-datos
-
Crea un dataset con las siguientes características:
-
Crea una tabla con las siguientes características:
Descripción
-
Crea una VM desde la consola (https://cloud.google.com/compute/docs/instances/create-start-instance#publicimage) con la siguiente configuración:
- Nombre: cualquiera
- Región: europe-west1
- Zona: europe-west1-b
- Tipo de máquina: n1-standard-1 (1 vCPU, 3.75 GB de memoria)
- Disco de inicio: Debian GNU/Linux 9 (strech) de 10 GB (por defecto)
- Firewall: permitir tráfico HTTP y HTTPS
-
Crea la instancia y comprueba que está activa.
-
Conéctate a dicha instancia a través del botón "SSH" de la consola.
-
Clona el repositorio en la instancia:
git clone https://github.com/GDG-Almeria/big-data-en-google-cloud
cd big-data-en-google-cloud
- Crea un nuevo archivo de nombre
credentials.jsonen la carpeta actual (dentro del repositorio), copia el contenido del archivo descargado y guárdalo.
nano credentials.json
- Crea la variable de entorno
GOOGLE_APPLICATION_CREDENTIALScon el valor del path al archivocredentials.json, p. ej.:
export GOOGLE_APPLICATION_CREDENTIALS="/home/info/big-data-en-google-cloud/credentials.json"
- Instala la librería para Python de Google Cloud:
pip3 install --user google-cloud-pubsub
- Ejecuta el script de Python:
python3 data_publish.py TU_ID_PROYECTO_GCP fuente-datos
- Comprueba la recepción de mensajes:
gcloud pubsub subscriptions pull --auto-ack suscripcion-datos
Descripción
Descripción
Descripción
Descripción
Borra los recursos y servicios utilizados para detener la continuación de los gastos asociados.
-
Elimina la VM desde el menú "Compute Engine".
-
Elimina el trabajo de Dataflow desde el menú "Dataflow".
-
Elimina el tema y suscripción desde el menú "Pub/Sub".
-
Elimina el dataset desde el menú "BigQuery" (opcional).
-
Elimina los bucket creados desde el menú "Storage".
gcloud pubsub subscriptions delete my-sub
gcloud pubsub topics delete my-topic