Solución de inicio rápido: lakehouse de Analytics

Last reviewed 2023-11-20 UTC

Esta guía te ayuda a comprender, implementar y usar la solución de inicio rápido de lakehouse de Analytics. En esta solución, se muestra cómo unificar los data lakes y los almacenes de datos con la creación de un lakehouse de análisis para almacenar, procesar, analizar y activar datos con una pila de datos unificada.

Los casos de uso comunes para compilar un lakehouse de análisis son los siguientes:

  • Análisis a gran escala de datos de telemetría combinados con datos de informes.
  • Unifica el análisis de datos estructurados y no estructurados.
  • Proporcionar capacidades de estadísticas en tiempo real para un almacén de datos

Este documento está dirigido a desarrolladores que tengan experiencia en el análisis de datos y que usen una base de datos o un data lake para realizar un análisis. Se supone que estás familiarizado con los conceptos básicos de la nube, aunque no de forma necesaria con Google Cloud. Es útil tener experiencia en Terraform.

Objetivos

  • Aprender a configurar un lakehouse de estadísticas
  • Proteger un lakehouse de estadísticas con una capa de administración común
  • Crear paneles a partir de los datos para realizar análisis de datos
  • Crear un modelo de aprendizaje automático para predecir los valores de datos en el tiempo

Productos usados

En la solución, se usan los siguientes productos de Google Cloud:

  • BigQuery: Un almacén de datos con alta escalabilidad y por completo administrado con capacidades de aprendizaje automático integradas.
  • Dataproc: Un servicio por completo administrado para la modernización de data lakes, ETL y la ciencia de datos segura a gran escala.
  • Looker Studio: Plataforma de inteligencia empresarial de autoservicio que te ayuda a crear y compartir estadísticas de datos.
  • Dataplex: Descubre, administra, supervisa y administra datos a gran escala de forma centralizada.
  • Cloud Storage: un servicio preparado para empresas que proporciona almacenamiento de objetos de bajo costo y sin límites para varios tipos de datos. Se puede acceder a los datos desde dentro y desde fuera de Google Cloud y replicarlos con redundancia geográfica.
  • BigLake: BigLake es un motor de almacenamiento que unifica almacenes de datos y data lakes con la habilitación de BigQuery y frameworks de código abierto como Spark para acceder a los datos con un control de acceso detallado.

Los siguientes productos de Google Cloud se usan para almacenar datos en etapa intermedia en la solución del primer uso:

  • Flujos de trabajo: Una plataforma de organización por completo administrada que ejecuta servicios en un orden específico como un flujo de trabajo. Workflows pueden combinar servicios, incluidos servicios personalizados alojados en Cloud Run o funciones de Cloud Run, servicios de Google Cloud, como BigQuery y cualquier API basada en HTTP.

Arquitectura

La arquitectura del lakehouse de ejemplo que implementa esta solución analiza un conjunto de datos de comercio electrónico para comprender el rendimiento de un minorista con el tiempo. En el siguiente diagrama, se muestra la arquitectura de los recursos de Google Cloud que implementa la solución.

Arquitectura de la infraestructura para la solución de almacén de datos.

Flujo de la solución

La arquitectura representa un flujo de datos común para propagar y transformar datos en una arquitectura de lakehouse de estadísticas:

  1. Los datos llegan a los buckets de Cloud Storage.
  2. Se crea un data lake en Dataplex. Los datos de los buckets se organizan en entidades o en tablas en el data lake.
  3. Las tablas del data lake están disponibles de inmediato en BigQuery como tablas de BigLake.
  4. Transformaciones de datos con Dataproc o BigQuery, y formatos de archivo abiertos, como Apache Iceberg.
  5. Los datos se pueden proteger con etiquetas de política y políticas de acceso de fila.
  6. El aprendizaje automático se puede aplicar a las tablas.
  7. Los paneles se crean a partir de los datos para realizar más estadísticas con Looker Studio.

Costo

Para obtener una estimación del costo de los recursos de Google Cloud que usa la solución de lakehouse de estadísticas, consulta la estimación ya calculada en la Calculadora de precios de Google Cloud.

Usa la estimación como punto de partida para calcular el costo de la implementación. Puedes cambiar la estimación para que refleje cualquier cambio de configuración que planeas hacer para los recursos que se usan en la solución.

La estimación calculada con anterioridad se basa en suposiciones para ciertos factores, incluidos los siguientes:

  • Las ubicaciones de Google Cloud en las que se implementan los recursos.
  • La cantidad de tiempo que se usan los recursos.

Antes de comenzar

Para implementar esta solución, primero necesitas un proyecto de Google Cloud y algunos permisos de IAM.

Crea o elige un proyecto de Google Cloud

Cuando implementas la solución, eliges el proyecto de Google Cloud en el que se implementan los recursos. Puedes crear un proyecto nuevo o usar uno existente para la implementación.

Si deseas crear un proyecto nuevo, hazlo antes de comenzar la implementación. El uso de un proyecto nuevo puede ayudar a evitar conflictos con los recursos aprovisionados con anterioridad, como los recursos que se usan para cargas de trabajo de producción.

Para crear un proyecto, completa los siguientes pasos:

  1. In the Google Cloud console, go to the project selector page.

    Go to project selector

  2. Click Create project.

  3. Name your project. Make a note of your generated project ID.

  4. Edit the other fields as needed.

  5. Click Create.

Obtén los permisos de IAM necesarios

Para iniciar el proceso de implementación, necesitas los permisos de Identity and Access Management (IAM) que se enumeran en la siguiente tabla.

Si creaste un proyecto nuevo para esta solución, tienes el rol básico roles/owner en ese proyecto y tienes todos los permisos necesarios. Si no tienes el rol roles/owner, pídele a tu administrador que te otorgue estos permisos (o los roles que incluyen estos permisos).

Se requiere permiso de IAM Rol predefinido que incluye los permisos necesarios

serviceusage.services.enable

Administrador de Service Usage
(roles/serviceusage.serviceUsageAdmin)

iam.serviceAccounts.create

Administrador de cuenta de servicio
(roles/iam.serviceAccountAdmin)

resourcemanager.projects.setIamPolicy

Administrador de IAM de proyecto
(roles/resourcemanager.projectIamAdmin)
config.deployments.create
config.deployments.list
Administrador de Cloud Infrastructure Manager
(roles/config.admin)
iam.serviceAccount.actAs Usuario de cuenta de servicio
(roles/iam.serviceAccountUser)

Acerca de los permisos de cuentas de servicio temporales

Si inicias el proceso de implementación a través de la consola, Google crea una cuenta de servicio para implementar la solución en tu nombre (y para borrar la implementación más adelante si lo deseas). A esta cuenta de servicio se le asignan ciertos permisos de IAM de forma temporal; es decir, los permisos se revocan de forma automática después de que se completan las operaciones de implementación y eliminación de la solución. Google recomienda que, después de borrar la implementación, borres la cuenta de servicio, como se describe más adelante en esta guía.

Ve los roles asignados a la cuenta de servicio

Estos roles se enumeran aquí en caso de que un administrador de tu organización o proyecto de Google Cloud necesite esta información.

  • roles/biglake.admin
  • roles/bigquery.admin
  • roles/compute.admin
  • roles/datalineage.viewer
  • roles/dataplex.admin
  • roles/dataproc.admin
  • roles/iam.serviceAccountAdmin
  • roles/iam.serviceAccountUser
  • roles/resourcemanager.projectIamAdmin
  • roles/servicenetworking.serviceAgent
  • roles/serviceusage.serviceUsageViewer
  • roles/vpcaccess.admin
  • roles/storage.admin
  • roles/workflows.admin

Implementa la solución

En esta sección, se te guiará a través del proceso de implementación de la solución.

Para ayudarte a implementar esta solución con un esfuerzo mínimo, se proporciona una configuración de Terraform en GitHub. La configuración de Terraform define todos los recursos de Google Cloud que se requieren para la solución.

Puedes implementar la solución con uno de los siguientes métodos:

  • A través de la consola: usa este método si deseas probar la solución con la configuración predeterminada y ver cómo funciona. Cloud Build implementa todos los recursos necesarios para la solución. Cuando ya no necesites la solución, puedes borrarla desde la consola. Es posible que cualquier recurso que crees después de implementar la solución deba borrarse por separado.

    Para usar este método de implementación, sigue las instrucciones en Implementa desde la consola.

  • Usa Terraform: Usa este método si quieres personalizar la solución o automatizar el aprovisionamiento y la administración de los recursos con el uso del enfoque de la infraestructura como código (IaC). Descarga la configuración de Terraform desde GitHub y de forma opcional personaliza el código según sea necesario e implementa la solución con Terraform. Después de implementar la solución, puedes seguir usando Terraform para administrarla.

    Para usar este método de implementación, sigue las instrucciones en Implementa con la CLI de Terraform.

Implementa a través de la consola

Completa los siguientes pasos para implementar la solución preconfigurada.

  1. En el catálogo de soluciones de Jump Start de Google Cloud, ve a la Solución de inicio rápido de lakehouse de Analytics.

    Ir a la solución de lakehouse de Analytics

  2. Revisa la información que se proporciona en la página, como el costo estimado de la solución y el tiempo de implementación estimado.

  3. Cuando estés listo para comenzar la implementación de la solución, haz clic en Implementar.

    Aparecerá un panel de configuración paso a paso.

  4. Completa los pasos del panel de configuración.

    Toma nota del nombre que ingreses para la implementación. Este nombre es obligatorio más adelante cuando borres la implementación.

    Cuando haces clic en Implementar, se muestra la página Implementaciones de soluciones. El campo Estado de esta página muestra Implementando.

  5. Espera a que se implemente la solución.

    Si la implementación falla, el campo Estado muestra Con errores. Puedes usar el registro de Cloud Build para diagnosticar los errores. Para obtener más información, consulta Errores cuando se implementa desde la consola.

    Una vez completada la implementación, el campo Estado cambia a Implementado.

  6. Para ver y usar la solución, regresa a la página Implementaciones de soluciones en la consola.

    1. Haz clic en el menú Acciones.
    2. Selecciona Ver el panel de Looker Studio para abrir un panel que se basa en los datos de muestra que se transforman con la solución.
    3. Selecciona Abrir editor de BigQuery para ejecutar consultas y compilar modelos de aprendizaje automático (AA) con los datos de muestra en la solución.
    4. Selecciona Ver Colab para ejecutar consultas en un entorno de notebook.

Cuando ya no necesites la solución, puedes borrar la implementación para evitar que se sigan facturando los recursos de Google Cloud. Para obtener más información, consulta Borra la implementación.

Implementa con la CLI de Terraform

En esta sección, se describe cómo puedes personalizar la solución o automatizar el aprovisionamiento y la administración de la solución con CLI de Terraform. Las soluciones que implementas con el código de Terraform no se muestran en la página Implementaciones de soluciones en la consola de Google Cloud.

Configura el cliente de Terraform

Puedes ejecutar Terraform en Cloud Shell o en tu host local. En esta guía, se describe cómo ejecutar Terraform en Cloud Shell, que tiene Terraform preinstalado y configurado para autenticarse con Google Cloud.

El código de Terraform para esta solución está disponible en un repositorio de GitHub.

  1. Clona el repositorio de GitHub en Cloud Shell.

    Abrir en Cloud Shell

    Se muestra un mensaje para que confirmes la descarga del repositorio de GitHub en Cloud Shell.

  2. Haz clic en Confirmar.

    Cloud Shell se inicia en otra pestaña del navegador y el código de Terraform se descarga en el directorio $HOME/cloudshell_open de tu entorno de Cloud Shell.

  3. En Cloud Shell, verifica si el directorio de trabajo actual es $HOME/cloudshell_open/terraform-google-analytics-lakehouse/. Este es el directorio que contiene los archivos de configuración de Terraform para la solución. Si necesitas cambiar a ese directorio, ejecuta el siguiente comando:

    cd $HOME/cloudshell_open/terraform-google-analytics-lakehouse/
    
  4. Inicializa Terraform con la ejecución del siguiente comando:

    terraform init
    

    Espera hasta ver el siguiente mensaje:

    Terraform has been successfully initialized!
    

Configura las variables de Terraform

El código de Terraform que descargaste incluye variables que puedes usar para personalizar la implementación según tus requisitos. Por ejemplo, puedes especificar el proyecto de Google Cloud y la región en la que deseas que se implemente la solución.

  1. Asegúrate de que el directorio de trabajo actual sea $HOME/cloudshell_open/terraform-google-analytics-lakehouse/. Si no es así, ve a ese directorio.

  2. En el mismo directorio, crea un archivo de texto llamado terraform.tfvars.

  3. En el archivo terraform.tfvars, copia el siguiente fragmento de código y establece los valores para las variables obligatorias.

    • Sigue las instrucciones que se proporcionan como comentarios en el fragmento de código.
    • Este fragmento de código solo incluye las variables para las que debes establecer valores. La configuración de Terraform incluye otras variables que tienen valores predeterminados. Para revisar todas las variables y los valores predeterminados, consulta el archivo variables.tf que está disponible en el directorio $HOME/cloudshell_open/terraform-google-analytics-lakehouse/.
    • Asegúrate de que cada valor que establezcas en el archivo terraform.tfvars coincida con el tipo de variable como se declara en el archivo variables.tf. Por ejemplo, si el tipo que se define para una variable en el archivo variables.tf es bool, debes especificar true o false como el valor de esa variable en el archivo terraform.tfvars.
    # This is an example of the terraform.tfvars file.
    # The values in this file must match the variable types declared in variables.tf.
    # The values in this file override any defaults in variables.tf.
    
    # ID of the project in which you want to deploy the solution
    project_id = "PROJECT_ID"
    
    # Google Cloud region where you want to deploy the solution
    # Example: us-central1
    region = "REGION"
    
    # Whether or not to enable underlying apis in this solution.
    # Example: true
    enable_apis = true
    
    # Whether or not to protect Cloud Storage and BigQuery resources from deletion when solution is modified or changed.
    # Example: false
    force_destroy = false
    

Valida y revisa la configuración de Terraform

  1. Asegúrate de que el directorio de trabajo actual sea $HOME/cloudshell_open/terraform-google-analytics-lakehouse/. Si no es así, ve a ese directorio.

  2. Verifica que la configuración de Terraform no tenga errores:

    terraform validate
    

    Si el comando muestra algún error, realiza las correcciones necesarias en la configuración y, luego, vuelve a ejecutar el comando terraform validate. Repite este paso hasta que el comando muestre el siguiente mensaje:

    Success! The configuration is valid.
    
  3. Revisa los recursos que se definen en la configuración:

    terraform plan
    
  4. Si no creaste el archivo terraform.tfvars como se describió antes, Terraform te solicita que ingreses valores para las variables que no tienen valores predeterminados. Ingresa los valores obligatorios.

    El resultado del comando terraform plan es una lista de los recursos que Terraform aprovisiona cuando aplicas la configuración.

    Si deseas hacer algún cambio, cambia la configuración y, luego, vuelve a ejecutar los comandos terraform validate y terraform plan.

Aprovisiona los recursos

Cuando no se necesiten más cambios en la configuración de Terraform, implementa los recursos de la siguiente manera:

  1. Asegúrate de que el directorio de trabajo actual sea $HOME/cloudshell_open/terraform-google-analytics-lakehouse/. Si no es así, ve a ese directorio.

  2. Aplica la configuración de Terraform:

    terraform apply
    
  3. Si no creaste el archivo terraform.tfvars como se describió antes, Terraform te solicita que ingreses valores para las variables que no tienen valores predeterminados. Ingresa los valores obligatorios.

    Terraform muestra una lista de los recursos que se crearán.

  4. Cuando se te solicite que realices las acciones, ingresa yes.

    Terraform muestra mensajes que señalan el progreso de la implementación.

    Si no se puede completar la implementación, Terraform muestra los errores que causaron la falla. Revisa los mensajes de error y actualiza la configuración para corregir los errores. Luego, vuelva a ejecutar el comando terraform apply. Para obtener ayuda con la solución de errores de Terraform, consulta Errores cuando se implementa la solución con la CLI de Terraform.

    Una vez que se hayan creado todos los recursos, Terraform mostrará el siguiente mensaje:

    Apply complete!
    

    El resultado de Terraform también enumera la siguiente información adicional que necesitarás:

    • La URL de Looker Studio del panel que se implementó.
    • El vínculo para abrir el editor de BigQuery de algunas consultas de muestra.
    • El vínculo para abrir el instructivo de Colab.

    En el siguiente ejemplo, se muestra cómo se ve el resultado:

    lookerstudio_report_url = "https://lookerstudio.google.com/reporting/create?c.reportId=79675b4f-9ed8-4ee4-bb35-709b8fd5306a&ds.ds0.datasourceName=vw_ecommerce&ds.ds0.projectId=${var.project_id}&ds.ds0.type=TABLE&ds.ds0.datasetId=gcp_lakehouse_ds&ds.ds0.tableId=view_ecommerce"
    bigquery_editor_url = "https://console.cloud.google.com/bigquery?project=my-cloud-project&ws=!1m5!1m4!6m3!1smy-cloud-project!2sds_edw!3ssp_sample_queries"
    lakehouse_colab_url = "https://colab.research.google.com/github/GoogleCloudPlatform/terraform-google-analytics-lakehouse/blob/main/assets/ipynb/exploratory-analysis.ipynb"
    
  5. Para ver y usar el panel y ejecutar consultas en BigQuery, copia las URLs de salida del paso anterior y abre las URLs en nuevas pestañas del navegador.

    El panel, el notebook y los editores de BigQuery aparecen en las pestañas nuevas.

Cuando ya no necesites la solución, puedes borrar la implementación para evitar que se sigan facturando los recursos de Google Cloud. Para obtener más información, consulta Borra la implementación.

Personaliza la solución

En esta sección, se proporciona información que los desarrolladores de Terraform pueden usar para modificar la solución de lakehouses de estadísticas para cumplir con sus propios requisitos técnicos y comerciales. La guía de esta sección es relevante solo si implementas la solución con la CLI de Terraform.

Cuando hayas visto cómo funciona la solución con los datos de muestra, es posible que desees trabajar con tus propios datos. Para usar tus propios datos, colócalos en el bucket de Cloud Storage llamado edw-raw-hash. El hash es un conjunto aleatorio de 8 caracteres que se genera durante la implementación. Puedes cambiar el código de Terraform de las siguientes maneras:

  1. ID de conjunto de datos. Cambia el código de Terraform para que, cuando el código cree el conjunto de datos de BigQuery, use el ID del conjunto de datos que deseas usar en tus datos.
  2. Esquema. Cambia el código de Terraform para que cree el ID de la tabla de BigQuery que deseas usar para almacenar tus datos. Esto incluye el esquema de la tabla externa para que BigQuery pueda leer los datos de Cloud Storage.
  3. Zona. Crea las zonas de lake que coincidan con las necesidades de tu empresa (por lo general, una zona de dos o tres niveles según la calidad y el uso de los datos).
  4. Paneles de Looker. Cambia el código de Terraform que crea un panel de Looker para que el panel refleje los datos que usas.
  5. Trabajos de PySpark. Cambia el código de Terraform para ejecutar trabajos de PySpark con Dataproc.

Los siguientes son objetos comunes del lakehouse de estadísticas, que muestran el código de ejemplo de Terraform en main.tf.

  • Conjunto de datos de BigQuery: Es el esquema en el que se agrupan y almacenan los objetos de la base de datos.

    resource "google_bigquery_dataset" "ds_edw" {
          project = module.project-services.project_id
          dataset_id = "DATASET_PHYSICAL_ID"
          friendly_name = "DATASET_LOGICAL_NAME"
          description = "DATASET_DESCRIPTION"
          location = "REGION"
          labels = var.labels
          delete_contents_on_destroy = var.force_destroy
      }
  • Tabla de BigQuery: Un objeto de base de datos que representa datos almacenados en BigQuery o un esquema de datos almacenado en Cloud Storage.

    resource "google_bigquery_table" "tbl_edw_taxi" {
          dataset_id = google_bigquery_dataset.ds_edw.dataset_id
          table_id = "TABLE_NAME"
          project = module.project-services.project_id
          deletion_protection = var.deletion_protection
          ...
      }
  • Procedimiento almacenado de BigQuery: Un objeto de base de datos que representa una o más instrucciones de SQL para que se ejecuten cuando se llama. Esto puede ser para transformar datos de una tabla a otra o cargar datos de una tabla externa a una tabla estándar.

    resource "google_bigquery_routine" "sp_sample_translation_queries" {
          project = module.project-services.project_id
          dataset_id = google_bigquery_dataset.ds_edw.dataset_id
          routine_id = "sp_sample_translation_queries"
          routine_type = "PROCEDURE"
          language = "SQL"
          definition_body = templatefile("${path.module}/assets/sql/sp_sample_translation_queries.sql", { project_id = module.project-services.project_id })
        }
  • Flujo de trabajo de Cloud Workflows: un flujo de trabajo de Workflows representa una combinación de pasos que se deben ejecutar en un orden específico. Esto se puede usar para configurar datos o realizar transformaciones de datos junto con otros pasos de ejecución.

    resource "google_workflows_workflow" "copy_data" {
        name            = "copy_data"
        project         = module.project-services.project_id
        region          = var.region
        description     = "Copies data and performs project setup"
        service_account = google_service_account.workflows_sa.email
        source_contents = templatefile("${path.module}/src/yaml/copy-data.yaml", {
            public_data_bucket    = var.public_data_bucket,
            textocr_images_bucket = google_storage_bucket.textocr_images_bucket.name,
            ga4_images_bucket     = google_storage_bucket.ga4_images_bucket.name,
            tables_bucket         = google_storage_bucket.tables_bucket.name,
            dataplex_bucket       = google_storage_bucket.dataplex_bucket.name,
            images_zone_name      = google_dataplex_zone.gcp_primary_raw.name,
            tables_zone_name      = google_dataplex_zone.gcp_primary_staging.name,
            lake_name             = google_dataplex_lake.gcp_primary.name
        })
        }
        

Para personalizar la solución, completa los siguientes pasos en Cloud Shell:

  1. Verifica que el directorio de trabajo actual sea $HOME/cloudshell_open/terraform-google-analytics-lakehouse. Si no es así, ve a ese directorio:

    cd $HOME/cloudshell_open/terraform-google-analytics-lakehouse
    
  2. Abre main.tf y realiza los cambios que quieras realizar.

    Para obtener más información de los efectos de esa personalización en la confiabilidad, la seguridad, el rendimiento, el costo y las operaciones, consulta Recomendaciones de diseño.

  3. Valida y revisa la configuración de Terraform

  4. Aprovisiona los recursos

Recomendaciones de diseño

En esta sección, se proporcionan recomendaciones para usar la solución de lakehouse de estadísticas para desarrollar una arquitectura que cumpla con tus requisitos de seguridad, confiabilidad, costos y rendimiento.

A medida que comienzas a escalar tu solución de lakehouse, tienes disponibles varias formas para ayudar a mejorar el rendimiento de las consultas y reducir el gasto total. Estos métodos incluyen cambiar la forma en que tus datos se almacenan de forma física, modificar tus consultas de SQL y cambiar la forma en que se ejecutan tus consultas con diferentes tecnologías. Si deseas obtener más información de los métodos para optimizar las cargas de trabajo de Spark, consulta Prácticas recomendadas de Dataproc para la producción.

Ten en cuenta lo siguiente:

  • Antes de realizar cambios en el diseño, evalúa el impacto del costo y considera posibles compensaciones con otras características. Puedes evaluar el impacto del costo de los cambios de diseño con la calculadora de precios de Google Cloud.
  • Para implementar cambios de diseño en la solución, necesitas experiencia en codificación de Terraform y conocimiento avanzado de los servicios de Google Cloud que se usan en la solución.
  • Si modificas la configuración de Terraform que proporciona Google y, luego, experimentas errores, crea problemas en GitHub. Los problemas de GitHub se revisan según el criterio del mejor esfuerzo y no están destinados a preguntas de uso general.
  • Para obtener más información sobre el diseño y la configuración de entornos de producción en Google Cloud, consulta Diseño de la zona de destino en Google Cloud y Lista de tareas para la configuración de Google Cloud.

Borra la implementación de la solución

Cuando ya no necesites la implementación de la solución, borra la implementación para evitar que se sigan facturando los recursos que creaste.

Borra la implementación a través de la consola

Usa este procedimiento si implementaste la solución a través de la consola.

  1. En la consola de Google Cloud, ve a la página Implementaciones de soluciones.

    Ve a Implementaciones de soluciones

  2. Elige el proyecto que contenga la implementación que deseas borrar.

  3. Busca la implementación que deseas borrar.

  4. En la fila de la implementación, haz clic en Acciones y, luego, selecciona Borrar.

    Es posible que debas desplazarte para ver Acciones en la fila.

  5. Ingresa el nombre de la implementación y, luego, haz clic en Confirmar.

    El campo Estado muestra Borrando.

    Si la eliminación falla, consulta la guía de solución de problemas en Error cuando se borra la implementación.

Cuando ya no necesites el proyecto de Google Cloud que usaste para la solución, puedes borrarlo. Para obtener más información, consulta Opcional: Borra el proyecto.

Borra la implementación con la CLI de Terraform

Usa este procedimiento si implementaste la solución con la CLI de Terraform.

  1. En Cloud Shell, asegúrate de que el directorio de trabajo actual sea $HOME/cloudshell_open/terraform-google-analytics-lakehouse/. Si no es así, ve a ese directorio.

  2. Quita los recursos que aprovisionó Terraform:

    terraform destroy
    

    Terraform muestra una lista de los recursos que se destruirán.

  3. Cuando se te solicite que realices las acciones, ingresa yes.

    Terraform mostrará mensajes que muestran el progreso. Después de borrar todos los recursos, Terraform muestra el siguiente mensaje:

    Destroy complete!
    

    Si la eliminación falla, consulta la guía de solución de problemas en Error cuando se borra la implementación.

Cuando ya no necesites el proyecto de Google Cloud que usaste para la solución, puedes borrarlo. Para obtener más información, consulta Opcional: Borra el proyecto.

Opcional: Borra el proyecto

Si implementaste la solución en un proyecto de Google Cloud nuevo y ya no lo necesitas, sigue estos pasos para borrarlo:

  1. En la consola de Google Cloud, ve a la página Administrar recursos.

    Ir a Administrar recursos

  2. En la lista de proyectos, elige el proyecto que quieres borrar y haz clic en Borrar.
  3. Cuando se te solicite, escribe el ID del proyecto y, luego, haz clic en Cerrar.

Si decides conservar el proyecto, borra la cuenta de servicio que se creó para esta solución, como se describe en la siguiente sección.

Opcional: Borra la cuenta de servicio

Si borraste el proyecto que usaste para la solución, omite esta sección.

Como se mencionó antes en esta guía, cuando implementaste la solución, se creó una cuenta de servicio en tu nombre. A la cuenta de servicio se le asignaron ciertos permisos de IAM de forma temporal, es decir, los permisos se revocaron de forma automática después de que se completaron las operaciones de implementación y eliminación de la solución, pero la cuenta de servicio no se borró. Google recomienda que borres esta cuenta de servicio.

  • Si implementaste la solución desde la consola de Google Cloud, ve a la página Implementaciones de soluciones. (Si ya estás en esa página, actualiza el navegador). Un proceso se activa en segundo plano para borrar la cuenta de servicio. No es necesario hacer ninguna otra acción.

  • Si implementaste la solución con la CLI de Terraform, completa los siguientes pasos:

    1. En la consola de Google Cloud, ve a la página Cuentas de servicio.

      Ir a Cuentas de servicio

    2. Elige el proyecto que usaste para la solución.

    3. Elige la cuenta de servicio que deseas borrar.

      El ID de correo electrónico de la cuenta de servicio que se creó para la solución tiene el siguiente formato:

      goog-sc-DEPLOYMENT_NAME-NNN@PROJECT_ID.iam.gserviceaccount.com
      

      El ID de correo electrónico contiene los siguientes valores:

      • DEPLOYMENT_NAME: El nombre de la implementación.
      • NNN: Un número aleatorio de 3 dígitos.
      • PROJECT_ID: Es el ID del proyecto en el que implementaste la solución.
    4. Haz clic en Borrar.

Solucionar errores

Las acciones que puedes realizar para diagnosticar y resolver errores dependen del método de implementación y la complejidad del error.

Errores que se generan cuando se implementa la solución desde la consola

Si la implementación falla cuando usas la consola, haz lo siguiente:

  1. Ve a la página Implementaciones de soluciones.

    Si la implementación falló, el campo Estado muestra Con errores.

  2. Ve los detalles de los errores que causaron la falla:

    1. En la fila de la implementación, haz clic en Acciones.

      Es posible que debas desplazarte para ver Acciones en la fila.

    2. Selecciona Ver registros de Cloud Build.

  3. Revisa el registro de Cloud Build y toma las medidas adecuadas para resolver el problema que causó la falla.

Errores que se generan cuando se implementa la solución con la CLI de Terraform

Si la implementación falla cuando se usa Terraform, el resultado del comando terraform apply incluye mensajes de error que puedes revisar para diagnosticar el problema.

En los ejemplos de las siguientes secciones, se muestran errores de implementación que puedes encontrar cuando usas Terraform.

Error: API no habilitada

Si creas un proyecto y, luego, intentas implementar la solución en el proyecto nuevo de inmediato, la implementación podría fallar con un error como el siguiente:

Error: Error creating Network: googleapi: Error 403: Compute Engine API has not
been used in project PROJECT_ID before or it is disabled. Enable it by visiting
https://console.developers.google.com/apis/api/compute.googleapis.com/overview?project=PROJECT_ID
then retry. If you enabled this API recently, wait a few minutes for the action
to propagate to our systems and retry.

Si se produce este error, espera unos minutos y vuelve a ejecutar el comando terraform apply.

Error "No se puede asignar la dirección solicitada"

Cuando ejecutas el comando terraform apply, es posible que se produzca un error cannot assign requested address con un mensaje como el siguiente:

Error: Error creating service account:
 Post "https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts:
 dial tcp [2001:db8:ffff:ffff::5f]:443:
 connect: cannot assign requested address

Si se produce este error, vuelve a ejecutar el comando terraform apply.

Errores para acceder a datos en BigQuery o Looker Studio

Existe un paso de aprovisionamiento que se ejecuta después de los pasos de aprovisionamiento de Terraform que cargan datos en el entorno. Si recibes un error cuando se cargan los datos en el panel de Looker Studio, o si no hay objetos cuando comienzas a explorar BigQuery, espera unos minutos y vuelve a intentarlo.

Error cuando se borra una implementación

En algunos casos, los intentos de borrar una implementación podrían fallar:

  • Después de implementar una solución desde la consola, si cambias cualquier recurso que aprovisionó la solución y, luego, intentas borrar la implementación, la eliminación podría fallar. El campo Estado en la página Implementaciones de soluciones muestra Con errores, y el registro de Cloud Build muestra la causa del error.
  • Después de implementar una solución con Terraform, si cambias algún recurso con una interfaz que no es de Terraform (por ejemplo, la consola) y, luego, intentas borrar la implementación, la eliminación podría fallar. Los mensajes en el resultado del comando terraform destroy muestran la causa del error.

Revisa los registros de errores y los mensajes, identifica y borra los recursos que causaron el error y, luego, intenta borrar la implementación.

Si una implementación basada en la consola no se borra y no puedes diagnosticar el error con el registro de Cloud Build, puedes borrar la implementación con Terraform, como se describe en la siguiente sección.

Borra una implementación basada en la consola con la CLI de Terraform

En esta sección, se describe cómo borrar una implementación basada en la consola si se producen errores cuando intentas borrarla de la consola. En este enfoque, descarga la configuración de Terraform para la implementación que deseas borrar y, luego, usa Terraform para borrar la implementación.

  1. Identifica la región en la que se almacenan el código, los registros y otros datos de Terraform de la implementación. Esta región puede ser diferente de la región que elegiste cuando implementaste la solución.

    1. En la consola de Google Cloud, ve a la página Implementaciones de soluciones.

      Ve a Implementaciones de soluciones

    2. Elige el proyecto que contenga la implementación que deseas borrar.

    3. En la lista de implementaciones, identifica la fila de la implementación que deseas borrar.

    4. Haz clic en Ver todo el contenido de la fila.

    5. En la columna Ubicación, observa la segunda ubicación, como se destaca en el siguiente ejemplo:

      Ubicación del código de implementación, los registros y otros artefactos.

  2. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  3. Crea variables de entorno para el ID del proyecto, la región y el nombre de la implementación que deseas borrar:

    export REGION="REGION"
    export PROJECT_ID="PROJECT_ID"
    export DEPLOYMENT_NAME="DEPLOYMENT_NAME"
    

    En estos comandos, reemplaza lo siguiente:

    • REGION: Es la ubicación que anotaste antes en este procedimiento.
    • PROJECT_ID: Es el ID del proyecto en el que implementaste la solución.
    • DEPLOYMENT_NAME: Es el nombre de la implementación que deseas borrar.
  4. Obtén el ID de la última revisión de la implementación que deseas borrar:

    export REVISION_ID=$(curl \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json" \
        "https://config.googleapis.com/v1alpha2/projects/${PROJECT_ID}/locations/${REGION}/deployments/${DEPLOYMENT_NAME}" \
        | jq .latestRevision -r)
        echo $REVISION_ID
    

    El resultado es similar a este:

    projects/PROJECT_ID/locations/REGION/deployments/DEPLOYMENT_NAME/revisions/r-0
    
  5. Obtén la ubicación de Cloud Storage de la configuración de Terraform para la implementación:

    export CONTENT_PATH=$(curl \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json" \
        "https://config.googleapis.com/v1alpha2/${REVISION_ID}" \
        | jq .applyResults.content -r)
        echo $CONTENT_PATH
    

    El siguiente es un ejemplo del resultado de este comando:

    gs://PROJECT_ID-REGION-blueprint-config/DEPLOYMENT_NAME/r-0/apply_results/content
    
  6. Descarga la configuración de Terraform desde Cloud Storage a Cloud Shell:

    gcloud storage cp $CONTENT_PATH $HOME --recursive
    cd $HOME/content/
    

    Espera hasta que aparezca el mensaje Operation completed, como se muestra en el siguiente ejemplo:

    Operation completed over 45 objects/268.5 KiB
    
  7. Inicializa Terraform mediante este comando:

    terraform init
    

    Espera hasta ver el siguiente mensaje:

    Terraform has been successfully initialized!
    
  8. Quita los recursos implementados:

    terraform destroy
    

    Terraform muestra una lista de los recursos que se destruirán.

    Si se muestran advertencias sobre variables no declaradas, ignora las advertencias.

  9. Cuando se te solicite que realices las acciones, ingresa yes.

    Terraform mostrará mensajes que muestran el progreso. Después de borrar todos los recursos, Terraform muestra el siguiente mensaje:

    Destroy complete!
    
  10. Borra el artefacto de implementación:

    curl -X DELETE \
        -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json" \
        "https://config.googleapis.com/v1alpha2/projects/${PROJECT_ID}/locations/${REGION}/deployments/${DEPLOYMENT_NAME}?force=true&delete_policy=abandon"
    
  11. Espera unos segundos y, luego, verifica que se haya borrado el artefacto de implementación:

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        -H "Content-Type: application/json" \
        "https://config.googleapis.com/v1alpha2/projects/${PROJECT_ID}/locations/${REGION}/deployments/${DEPLOYMENT_NAME}" \
        | jq .error.message
    

    Si el resultado muestra null, espera unos segundos y vuelve a ejecutar el comando.

    Después de borrar el artefacto de implementación, aparece un mensaje como el que se muestra en el siguiente ejemplo:

    Resource 'projects/PROJECT_ID/locations/REGION/deployments/DEPLOYMENT_NAME' was not found
    

Enviar comentarios

Las soluciones de inicio rápido solo tienen fines informativos y no son productos compatibles de forma oficial. Google puede cambiar o quitar soluciones sin previo aviso.

Para solucionar errores, revisa los registros de Cloud Build y el resultado de Terraform.

Para enviar comentarios, haz lo siguiente:

  • Para ver la documentación, los instructivos en la consola o la solución, usa el botón Enviar comentarios en la página.
  • Para el código de Terraform sin modificar, crea problemas en el repositorio de GitHub. Los problemas de GitHub se revisan según el criterio del mejor esfuerzo y no están destinados a preguntas de uso general.

¿Qué sigue?