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 de flujo de cambios y cómo cambiar el formato de los datos para crear un panel con Looker.
Este codelab está dirigido a usuarios técnicos que están familiarizados con Bigtable y usan herramientas de línea de comandos y servicios de transmisión de eventos.
En este codelab, se muestra cómo hacer lo siguiente:
- Crear 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.
2. Configura el proyecto
- En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.
- Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.
- Visita esta página de habilitación de APIs preproducida para habilitar las APIs necesarias para Dataflow, Bigtable, BigQuery, Looker y Cloud Storage.
3. Crea un conjunto de datos de BigQuery
Analizarás datos con BigQuery más adelante en el codelab. Sigue estas instrucciones para crear el conjunto de datos para el resultado de tu canalización de datos.
- En la consola de Google Cloud, ve a la página de BigQuery.
- En el panel Explorador, busca el nombre de tu proyecto y haz clic en el menú ampliado (tres puntos verticales junto al ID del proyecto).
- Haz clic en Crear conjunto de datos.
- 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 una transmisión de cambios habilitada
Bigtable es un servicio de base de datos NoSQL escalable horizontalmente y de baja latencia. Un caso de uso común es la publicación de datos financieros. Aquí crearás una tabla que pueda almacenar transacciones de tarjetas de crédito. Bigtable puede manejar operaciones de escritura de transacciones con alta capacidad de procesamiento en todo el mundo y hasta podría usar esos datos para la detección de fraudes en tiempo real.
- En la consola de Google Cloud, ve a la página Instancias de Bigtable.
- 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.
- En el panel de navegación izquierdo, haz clic en Tablas.
- Haz clic en Crear tabla.
- Asigna 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.
5. Inicializar una canalización de datos para capturar el flujo de cambios
El rendimiento de Bigtable es óptimo para las operaciones de lectura de punto y de análisis de rango de filas, pero las estadísticas de toda la tabla pueden sobrecargar la capacidad de publicación y los recursos de la CPU. BigQuery es excelente para el análisis de toda la tabla, por lo que la solución que utilizarás aquí es la escritura doble. Esto significa que escribirás tus datos en Bigtable y BigQuery, 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 escriben 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 tus datos de publicación en Bigtable.
- En la página Tablas de Bigtable, busca tu tabla
retail-database
. - En la columna Flujo de cambios, haz clic en Conectar.
- En el diálogo Connect with Dataflow, selecciona BigQuery.
- Haz clic en Crear trabajo de Dataflow.
- 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 aplicación de Cloud Bigtable en
default
. - Establece el conjunto de datos de BigQuery en
bigtable_bigquery_tutorial
.
- Haga clic en Ejecutar trabajo.
- Espera hasta que el estado del trabajo sea Starting o Running antes de continuar. Una vez que la tarea esté en cola, puede tardar alrededor de cinco minutos. La página se actualizará automáticamente. Esta plantilla crea un trabajo de transmisión continua para que pueda procesar datos nuevos escritos en Bigtable de forma continua hasta que se detenga manualmente.
6. Cómo escribir 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 produce cada transacción.
- Para abrir Cloud Shell, haz clic en el botón de la esquina superior derecha de la consola de Cloud.
- Si se te solicita, acepta la solicitud para autorizar Cloud Shell.
- Descarga el conjunto de datos.
gsutil cp gs://cloud-bigtable-public-datasets/change-streams-tutorial/cc-transactions-2023.csv .
- Configura tus variables de entorno en la línea de comandos
PROJECT_ID=your-project-id
BIGTABLE_INSTANCE_ID=your-bigtable-instance-id
- Usa la CLI de
cbt
para escribir una cantidad de transacciones de tarjeta de crédito en la tablaretail-database
.
cbt -instance=$BIGTABLE_INSTANCE_ID -project=$PROJECT_ID import \
retail-database cc-transactions-2023.csv column-family=transactions
El resultado indicará
Done importing 10000 rows.
7. Consulta los registros de cambios en BigQuery
- En la consola de Google Cloud, ve a la página de BigQuery.
- En el panel Explorador, expande tu proyecto y el conjunto de datos
bigtable_bigquery_tutorial
. - Haz clic en la tabla
retail-database_changelog
. Es posible que debas actualizar el conjunto de datos si la tabla no está presente. - Para ver el registro de cambios, haz clic en Vista previa.
Prueba algunas consultas
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 Cómo consultar un registro de cambios de Bigtable en BigQuery tiene más información para 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.
Cómo encontrar 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, pivotarás los datos y guardarás ese resultado en una tabla nueva. Este es un formato de consultas más manejable.
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
- Haz clic en Ir a la vista para ir a la página de detalles de la vista nueva.
- Haz clic en Exportar.
- Selecciona Explorar con Looker Studio.
8. Agrega gráficos al panel
Ahora puedes graficar la información para que sea más fácil asimilar y compartir como un informe. Agregarás tres gráficos a tu panel:
- Importes de las transacciones a lo largo del tiempo
- Total de transacciones de cada comercio
- Porcentaje de transacciones por categoría
Configura la página
- Haz clic en cada gráfico existente y presiona Borrar para quitarlos.
- 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
- Haz clic en Agregar un gráfico y crea un gráfico de serie temporal.
- Establece Dimensión en
transaction_date
.
- Establece la Métrica en
sales_dollars
.
Total de transacciones para cada comercio
- Haz clic en Agregar un gráfico y crea una tabla.
- Establece Dimensión como
merchant
. - Establece Métrica en
sales_dollars
.
Porcentaje de transacciones por categoría
- Haz clic en Agregar un gráfico y crea un gráfico circular.
- Establece Dimensión como
category
. - Establece Métrica en
sales_dollars
.
Consulta cambios en tiempo real
Tómate un tiempo para explorar los valores de los gráficos. Puedes hacer clic en comercios o categorías específicos de la tabla, lo que hará que todos los gráficos se filtren en función de esos valores específicos, lo que te brindará más estadísticas. A continuación, puedes escribir más datos y ver cómo se actualizará este gráfico en tiempo real.
- Regresa a Cloud Shell.
- 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
- Regresa a tu 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.
Existen muchas variaciones de gráficos y métricas que puedes crear más allá de esto. 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 de flujos de cambios
- En la consola de Google Cloud, ve a la página Trabajos de Dataflow.
- Selecciona tu trabajo de transmisión en la lista de trabajos.
- En la navegación, haz clic en Detener.
- 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.
- En la consola de Google Cloud, ve a la página Instancias de Bigtable.
- Haz clic en el ID de la instancia que usas para este instructivo.
- En el panel de navegación izquierdo, haz clic en Tablas.
- Busca la tabla
retail-database
. - Haz clic en Editar.
- Borra Habilitar flujo de cambios.
- Haz clic en Guardar.
- Abre el menú ampliado de la tabla.
- Haz clic en Borrar y, luego, ingresa el nombre de la tabla para confirmar.
- Opcional: Borra la instancia si creaste una nueva para este instructivo
Borra el conjunto de datos de BigQuery
- En la consola de Google Cloud, ve a la página de BigQuery.
- En el panel Explorador, busca el conjunto de datos
bigtable_bigquery_tutorial
y haz clic en él. - Haz clic en Borrar, escribe borrar y, luego, haz clic en Borrar para confirmar.