Analizar y visualizar datos de transacciones de tarjetas de crédito en Bigtable con BigQuery y Looker

1. Descripción general

En este codelab, se explica cómo analizar un flujo de datos de transacciones con tarjetas de crédito que se escriben en Bigtable. Aprenderás a usar la plantilla de flujos de cambios de Bigtable a BigQuery para exportar datos en tiempo real. Luego, verás técnicas para consultar el registro del flujo de cambios y cómo reformatear los datos para crear un panel con Looker.

Este codelab está dirigido a usuarios técnicos que estén familiarizados con Bigtable, el uso de herramientas de línea de comandos y los servicios de transmisión de eventos.

426dc59200875a20.png

En este codelab, se muestra cómo hacer lo siguiente:

  • Crea una tabla de Bigtable con un flujo de cambios habilitado.
  • Crear un conjunto de datos de BigQuery
  • Implementa la plantilla de Dataflow Bigtable change streams to BigQuery.
  • Consulta el flujo de eventos en BigQuery.
  • Visualiza el flujo de eventos con Looker.

En este diagrama, se muestra la arquitectura del sistema que implementarás.

336e940307d0e0a.png

2. Configura el proyecto

  1. En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.

eb5309715175de69.png

  1. Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.
  2. Visita esta página de habilitación de la API completada previamente para habilitar las APIs necesarias para Dataflow, Bigtable, BigQuery, Looker y Cloud Storage.

3. Crea un conjunto de datos de BigQuery

Más adelante en el codelab, analizarás datos con BigQuery. Sigue estas instrucciones para crear el conjunto de datos para la salida de tu canalización de datos.

  1. En la consola de Google Cloud, ve a la página de BigQuery.
  2. En el panel Explorador, busca el nombre de tu proyecto y haz clic en el menú de desbordamiento (tres puntos verticales junto al ID del proyecto).
  3. Haz clic en Crear conjunto de datos.

122bc1a411b8dc63.png

  1. En el panel Crear conjunto de datos, haz lo siguiente:
  • En ID del conjunto de datos, ingresa bigtable_bigquery_tutorial.
  • Deja el resto de la configuración predeterminada como está.
  • Haz clic en Crear conjunto de datos.

4. Crea una tabla de Bigtable con un flujo de cambios habilitado

Bigtable es un servicio de base de datos NoSQL escalable horizontalmente y de baja latencia, y uno de sus casos de uso más comunes es la entrega de datos financieros. Aquí crearás una tabla que puede almacenar transacciones con tarjetas de crédito. Bigtable puede controlar la alta capacidad de procesamiento de escritura de las transacciones en todo el mundo y hasta podría usar esos datos para la detección de fraude en tiempo real.

  1. En la consola de Google Cloud, ve a la página Instancias de Bigtable.
  2. Haz clic en el ID de la instancia que usas para este instructivo. Si no tienes una instancia disponible, crea una con el nombre que elijas en una región cercana. Puedes usar las configuraciones predeterminadas para todo lo demás.

a2e8de7b66dc42e.png

  1. En el panel de navegación izquierdo, haz clic en Tablas.
  2. Haz clic en Crear tabla.

9c267c00f93747c4.png

  • Asígnale el nombre retail-database a la tabla.
  • Agrega una familia de columnas llamada transactions.
  • Selecciona Habilitar el flujo de cambios.
  • Deja la política de recolección de elementos no utilizados y el período de retención con sus valores predeterminados.
  • Haz clic en Crear.

696cd1399c354816.png

5. Inicializa una canalización de datos para capturar el flujo de cambios

El rendimiento de Bigtable es óptimo para las lecturas de puntos y los análisis de rangos de filas, pero las estadísticas de toda la tabla pueden ejercer presión sobre la capacidad de entrega y los recursos de CPU. BigQuery es ideal para el análisis de toda la tabla, por lo que la solución que usarás aquí es la escritura doble. Esto significa que escribirás tus datos en Bigtable y BigQuery, lo que es una técnica común. Esto no requerirá codificación adicional, ya que usarás la plantilla de Dataflow Bigtable change streams to BigQuery: cuando se escriban datos en Bigtable, la canalización escribirá un registro de cambios en BigQuery. Una vez que los datos estén en BigQuery, podrás realizar consultas optimizadas en todo tu conjunto de datos que no afectarán el rendimiento de los datos de servicio en Bigtable.

f4cd9d8faf10ce77.png

  1. En la página Tablas de Bigtable, busca tu tabla retail-database.
  2. En la columna Change stream, haz clic en Connect.
  3. En el diálogo Connect with Dataflow, selecciona BigQuery.
  4. Haz clic en Crear trabajo de Dataflow.
  5. En los campos de parámetros proporcionados, ingresa los valores de tus parámetros. No es necesario que proporciones ningún parámetro opcional.
  • Establece el ID del perfil de la aplicación de Cloud Bigtable en default.
  • Establece el conjunto de datos de BigQuery en bigtable_bigquery_tutorial.
  1. Haga clic en Ejecutar trabajo.
  2. Espera a que el estado del trabajo sea Starting o Running antes de continuar. Puede tardar alrededor de cinco minutos una vez que el trabajo se pone en cola. La página se actualizará automáticamente. Esta plantilla crea un trabajo de transmisión, por lo que puede procesar de forma continua los datos nuevos escritos en Bigtable hasta que se detenga el trabajo de forma manual.

a04908b37c6fe96b.png

6. Escribe algunos datos en Bigtable

Ahora, escribirás un año de transacciones con tarjeta de crédito en tu tabla de Bigtable. Este conjunto de datos de ejemplo incluye información como el número de tarjeta de crédito, el nombre y el ID del comercio, y el importe. En una aplicación real de procesamiento de tarjetas de crédito, estos datos se transmitirían a tu base de datos en tiempo real a medida que se produzca cada transacción.

  1. Para abrir Cloud Shell, haz clic en el botón que se encuentra en la esquina superior derecha de Cloud Console.

f6395329b04ecb64.png

  1. Si se te solicita, acepta el mensaje para autorizar Cloud Shell.
  2. Descarga el conjunto de datos.
gsutil cp gs://cloud-bigtable-public-datasets/change-streams-tutorial/cc-transactions-2023.csv .
  1. Configura tus variables de entorno en la línea de comandos
PROJECT_ID=your-project-id
BIGTABLE_INSTANCE_ID=your-bigtable-instance-id
  1. Usa la CLI de cbt para escribir una cantidad de transacciones con tarjeta de crédito en la tabla retail-database.
cbt -instance=$BIGTABLE_INSTANCE_ID -project=$PROJECT_ID import \
retail-database cc-transactions-2023.csv  column-family=transactions

El resultado dirá

Done importing 10000 rows.

7. Consulta los registros de cambios en BigQuery

  1. En la consola de Google Cloud, ve a la página de BigQuery.
  2. En el panel Explorador, expande tu proyecto y el conjunto de datos bigtable_bigquery_tutorial.
  3. Haz clic en la tabla retail-database_changelog. Es posible que debas actualizar el conjunto de datos si la tabla no está presente.
  4. Para ver el registro de cambios, haz clic en Vista previa.

aa97ff01f944832.png

Prueba algunas búsquedas

Ahora puedes ejecutar algunas consultas en este conjunto de datos para obtener estadísticas. Aquí se proporcionan las consultas de SQL, pero la documentación de Cómo consultar un registro de cambios de Bigtable en BigQuery contiene más información sobre cómo escribir consultas para los datos del registro de cambios.

Cómo buscar una transacción

Usa la siguiente consulta para buscar los datos de una transacción específica.

SELECT *
FROM `bigtable_bigquery_tutorial.retail-database_changelog`
WHERE row_key="3034-442694-3052#2023-03-03T14:50:46.824Z"

Verás que cada columna escrita se convirtió en una fila individual en BigQuery.

Determina la cantidad de compras en cada categoría

Usa la siguiente consulta para contar la cantidad de compras por categoría.

SELECT value as category, count(*) as `number of sales`
FROM `bigtable_bigquery_tutorial.retail-database_changelog`
WHERE column="category"
GROUP BY category

Cambia el formato de los datos

Para reconstruir cada transacción en una sola fila de la tabla de BigQuery, deberás segmentar los datos y guardar el resultado en una tabla nueva. Este es un formato más fácil de consultar.

CREATE VIEW bigtable_bigquery_tutorial.retail_transactions_view AS (
    SELECT *, parse_numeric(amount) as sales_dollars FROM (
      SELECT row_key, timestamp, column, value
      FROM `bigtable_bigquery_tutorial.retail-database_changelog`
      )
      PIVOT (
      MAX(value)
      FOR column in ("merchant", "amount", "category", "transaction_date")
    )
)

Crea un panel de Looker

  1. Haz clic en Ir a la vista para ir a la página de detalles de la vista nueva.
  2. Haz clic en Exportar.
  3. Selecciona Explorar con Looker Studio.

bb45482e9101b0f.png

8. Agrega gráficos al panel

Ahora puedes graficar la información para que sea más fácil de comprender y compartir como informe. Agregarás tres gráficos a tu panel:

  • Importes de las transacciones a lo largo del tiempo
  • Transacciones totales de cada comercio
  • Porcentaje de transacciones por categoría

426dc59200875a20.png

Configura la página

  1. Haz clic en cada gráfico existente y presiona Suprimir para quitarlos.
  2. Selecciona Propiedades en el lado derecho de la página para poder modificar los datos del gráfico.

Agrega los gráficos

Importes de las transacciones a lo largo del tiempo

  1. Haz clic en Agregar un gráfico y crea un gráfico de serie temporal.
  2. Establece la dimensión en transaction_date.
  1. Establece la métrica en sales_dollars.

372bdf2a2bcdb817.png

Transacciones totales de cada comercio

  1. Haz clic en Agregar un gráfico y crea una tabla.
  2. Establece Dimensión en merchant.
  3. Establece Métrica en sales_dollars.

Porcentaje de transacciones por categoría

  1. Haz clic en Agregar un gráfico y crea un gráfico circular.
  2. Establece Dimensión en category.
  3. Establece Métrica en sales_dollars.

Cómo ver los cambios en tiempo real

Dedica unos minutos a explorar los valores de los gráficos. Puedes hacer clic en comercios o categorías específicos de la tabla para filtrar todos los gráficos según esos valores específicos y obtener más estadísticas. A continuación, puedes escribir más datos y ver cómo se actualizará este gráfico en tiempo real.

  1. Regresa a Cloud Shell.
  2. Descarga y escribe el segundo conjunto de datos.
gsutil cp gs://cloud-bigtable-public-datasets/change-streams-tutorial/cc-transactions-2024-jan.csv .

cbt -instance=$BIGTABLE_INSTANCE_ID -project=$PROJECT_ID import \
retail-database cc-transactions-2024-jan.csv  column-family=transactions
  1. Regresa al panel de Looker y actualiza los datos con el comando Ctrl+Shift+E o haz clic en Actualizar datos en el menú Ver. Ahora deberías ver los datos de enero de 2024 en los gráficos.

Más allá de esto, puedes crear muchas variaciones de gráficos y métricas. Obtén más información en la documentación de Looker.

9. Limpia

Para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos usados en este instructivo, borra el proyecto que contiene los recursos o conserva el proyecto y borra los recursos individuales.

Detén la canalización del flujo de cambios

  1. En la consola de Google Cloud, ve a la página Trabajos de Dataflow.
  2. Selecciona tu trabajo de transmisión en la lista de trabajos.
  3. En la navegación, haz clic en Detener.
  4. En el diálogo Detener trabajo, selecciona Cancelar y, luego, haz clic en Detener trabajo.

Borra los recursos de Bigtable

Si creaste una instancia de Bigtable para este instructivo, puedes borrarla o limpiar la tabla que creaste.

  1. En la consola de Google Cloud, ve a la página Instancias de Bigtable.
  2. Haz clic en el ID de la instancia que usas para este instructivo.
  3. En el panel de navegación izquierdo, haz clic en Tablas.
  4. Busca la tabla retail-database.
  5. Haz clic en Editar.
  6. Borra Habilitar el flujo de cambios.
  7. Haz clic en Guardar.
  8. Abre el menú ampliado de la tabla.
  9. Haz clic en Borrar y, luego, ingresa el nombre de la tabla para confirmar.
  10. Opcional: Borra la instancia si creaste una nueva para este instructivo

Borra el conjunto de datos de BigQuery

  1. En la consola de Google Cloud, ve a la página de BigQuery.
  2. En el panel Explorador, busca el conjunto de datos bigtable_bigquery_tutorial y haz clic en él.
  3. Haz clic en Borrar, escribe borrar y, luego, haz clic en Borrar para confirmar.

¿Qué sigue?