GSP1053

Descripción general
Bigtable es el servicio de base de datos NoSQL escalable y completamente administrado de Google. Bigtable es ideal para almacenar grandes cantidades de datos en un almacén de pares clave-valor y para casos de uso como personalización, tecnología publicitaria, tecnología financiera, medios digitales y el Internet de las cosas (IoT). Bigtable admite una alta capacidad de procesamiento de lectura y escritura con una latencia baja, lo que brinda acceso rápido a grandes cantidades de datos para su procesamiento y análisis.
En Bigtable, cada fila representa una sola entidad (como un usuario individual o un sensor) y se etiqueta con una clave de fila única. Cada columna almacena valores de atributos para cada fila, y las familias de columnas se pueden usar para organizar columnas relacionadas. En la intersección de una fila y una columna, puede haber varias celdas, y cada una representa una versión diferente de los datos en una marca de tiempo determinada.
En este lab, usarás la página de Bigtable de la consola de Google Cloud para explorar una instancia de este servicio y su CLI (CLI de cbt) para consultar datos en una tabla de Bigtable. También diseñarás un esquema de tabla y una clave de fila con las prácticas recomendadas para Bigtable.
Actividades
En este lab, aprenderás a acceder a una instancia de Bigtable y consultar esquemas de Bigtable.
- Explora una instancia de Bigtable con la consola de Google Cloud.
- Configura la CLI de
cbt para tu instancia.
- Diseña un esquema y una clave de fila adecuados con las prácticas recomendadas de Bigtable.
- Consulta datos en Bigtable.
Requisitos previos
- Debes tener un conocimiento básico de los conceptos y términos de bases de datos, como instancias, esquemas y claves.
Configuración y requisitos
Antes de hacer clic en el botón Comenzar lab
Lee estas instrucciones. Los labs cuentan con un temporizador que no se puede pausar. El temporizador, que comienza a funcionar cuando haces clic en Comenzar lab, indica por cuánto tiempo tendrás a tu disposición los recursos de Google Cloud.
Este lab práctico te permitirá realizar las actividades correspondientes en un entorno de nube real, no en uno de simulación o demostración. Para ello, se te proporcionan credenciales temporales nuevas que utilizarás para acceder a Google Cloud durante todo el lab.
Para completar este lab, necesitarás lo siguiente:
- Acceso a un navegador de Internet estándar. Se recomienda el navegador Chrome.
Nota: Usa una ventana del navegador privada o de incógnito (opción recomendada) para ejecutar el lab. Así evitarás conflictos entre tu cuenta personal y la cuenta de estudiante, lo que podría generar cargos adicionales en tu cuenta personal.
- Tiempo para completar el lab (recuerda que, una vez que comienzas un lab, no puedes pausarlo).
Nota: Usa solo la cuenta de estudiante para este lab. Si usas otra cuenta de Google Cloud, es posible que se apliquen cargos a esa cuenta.
Cómo iniciar tu lab y acceder a la consola de Google Cloud
-
Haz clic en el botón Comenzar lab. Si debes pagar por el lab, se abrirá un diálogo para que selecciones la forma de pago.
A la izquierda, se encuentra el panel Detalles del lab, que tiene estos elementos:
- El botón para abrir la consola de Google Cloud
- El tiempo restante
- Las credenciales temporales que debes usar para el lab
- Otra información para completar el lab, si es necesaria
-
Haz clic en Abrir la consola de Google Cloud (o haz clic con el botón derecho y selecciona Abrir el vínculo en una ventana de incógnito si ejecutas el navegador Chrome).
El lab inicia recursos y abre otra pestaña en la que se muestra la página de acceso.
Sugerencia: Ordena las pestañas en ventanas separadas, una junto a la otra.
Nota: Si ves el diálogo Elegir una cuenta, haz clic en Usar otra cuenta.
-
De ser necesario, copia el nombre de usuario a continuación y pégalo en el diálogo Acceder.
{{{user_0.username | "Username"}}}
También puedes encontrar el nombre de usuario en el panel Detalles del lab.
-
Haz clic en Siguiente.
-
Copia la contraseña que aparece a continuación y pégala en el diálogo Te damos la bienvenida.
{{{user_0.password | "Password"}}}
También puedes encontrar la contraseña en el panel Detalles del lab.
-
Haz clic en Siguiente.
Importante: Debes usar las credenciales que te proporciona el lab. No uses las credenciales de tu cuenta de Google Cloud.
Nota: Usar tu propia cuenta de Google Cloud para este lab podría generar cargos adicionales.
-
Haz clic para avanzar por las páginas siguientes:
- Acepta los Términos y Condiciones.
- No agregues opciones de recuperación o autenticación de dos factores (esta es una cuenta temporal).
- No te registres para obtener pruebas gratuitas.
Después de un momento, se abrirá la consola de Google Cloud en esta pestaña.
Nota: Para acceder a los productos y servicios de Google Cloud, haz clic en el menú de navegación o escribe el nombre del servicio o producto en el campo Buscar.
Activa Cloud Shell
Cloud Shell es una máquina virtual que cuenta con herramientas para desarrolladores. Ofrece un directorio principal persistente de 5 GB y se ejecuta en Google Cloud. Cloud Shell proporciona acceso de línea de comandos a tus recursos de Google Cloud.
-
Haz clic en Activar Cloud Shell
en la parte superior de la consola de Google Cloud.
-
Haz clic para avanzar por las siguientes ventanas:
- Continúa en la ventana de información de Cloud Shell.
- Autoriza a Cloud Shell para que use tus credenciales para realizar llamadas a la API de Google Cloud.
Cuando te conectes, habrás completado la autenticación, y el proyecto estará configurado con tu Project_ID, . El resultado contiene una línea que declara el Project_ID para esta sesión:
Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}
gcloud es la herramienta de línea de comandos de Google Cloud. Viene preinstalada en Cloud Shell y es compatible con la función de autocompletado con tabulador.
- Puedes solicitar el nombre de la cuenta activa con este comando (opcional):
gcloud auth list
- Haz clic en Autorizar.
Resultado:
ACTIVE: *
ACCOUNT: {{{user_0.username | "ACCOUNT"}}}
To set the active account, run:
$ gcloud config set account `ACCOUNT`
- Puedes solicitar el ID del proyecto con este comando (opcional):
gcloud config list project
Resultado:
[core]
project = {{{project_0.project_id | "PROJECT_ID"}}}
Nota: Para obtener toda la documentación de gcloud, en Google Cloud, consulta la guía con la descripción general de gcloud CLI.
Tarea 1: Explora una instancia de Bigtable en la consola
Para este ejercicio de lab, se creó previamente una instancia y una tabla de Bigtable para que las explores. En esta tarea, accederás a la instancia de Bigtable llamada personalized-sales en la consola de Google Cloud y revisarás los detalles pertinentes sobre la instancia.
-
En el menú de navegación (
) de la consola de Google Cloud, en Bases de datos, haz clic en Bigtable.
-
En la lista de instancias de Bigtable, identifica el ID de instancia llamado personalized-sales.
Revisa los detalles proporcionados para Nodos y responde la siguiente pregunta.
-
Para navegar a los detalles de la instancia, haz clic en el ID de la instancia llamado personalized-sales.
-
Haz clic en Editar instancia.
Revisa los detalles de la instancia y responde las siguientes preguntas.
-
Para cerrar la página de edición de la instancia, haz clic en Cancelar.
-
En la tabla de IDs de clústeres, en la línea de personalized-sales-cluster1, haz clic en el ícono de lápiz Editar.
Revisa los detalles del clúster y responde las siguientes preguntas.
-
Para cerrar los detalles del clúster, haz clic en Cancelar.
-
En el menú de navegación, en Instancia, haz clic en Tablas.
Revisa los detalles de la tabla llamada UserSessions y responde la siguiente pregunta.
Ahora que revisaste los detalles de la instancia de Bigtable, puedes pasar a la siguiente tarea para conectarte a la instancia con la CLI de cbt.
Tarea 2: Configura la CLI de Bigtable
Para conectarte a Bigtable con los comandos de la CLI de cbt, primero debes actualizar el archivo de configuración .cbtrc con tu ID del proyecto y tu ID de la instancia de Bigtable con Cloud Shell.
Para revisar cómo acceder a Cloud Shell, consulta la sección Configuración y requisitos que se encuentra más arriba en esta guía del lab.
Si bien la CLI de cbt está pensada principalmente para la depuración y la exploración, es una herramienta útil para aprender los conceptos básicos de Bigtable. Para completar operaciones CRUD (crear, leer, actualizar y borrar) en producción, recomendamos usar una de las bibliotecas cliente para Bigtable.
- Para modificar el archivo
.cbtrc con el ID del proyecto, ejecuta los siguientes comandos en Cloud Shell:
echo project = `gcloud config get-value project` \
>> ~/.cbtrc
- Para ver una lista de las instancias de Bigtable disponibles en el proyecto, ejecuta el siguiente comando:
cbt listinstances
El resultado confirma que hay una instancia llamada personalized-sales.
- Para modificar el archivo
.cbtrc con el ID de la instancia de Bigtable, ejecuta los siguientes comandos:
echo instance = personalized-sales \
>> ~/.cbtrc
- Para verificar que modificaste correctamente el archivo
.cbtrc con el ID del proyecto y el ID de la instancia, ejecuta el siguiente comando:
cat ~/.cbtrc
El resultado debe parecerse al siguiente:
project = <project-id>
instance = personalized-sales
- Para ver una lista de las tablas disponibles en la instancia de Bigtable llamada personalized-sales, ejecuta el siguiente comando:
cbt ls
El resultado confirma que la instancia ya contiene una tabla llamada UserSessions. Trabajarás con esta tabla en una tarea posterior.
Tarea 3: Diseña un esquema y una clave de fila en Bigtable
En esta tarea, crearás una tabla de prueba para explorar los principios de diseño de esquemas y claves de filas en Bigtable.
Revisa datos sin procesar para ayudar a diseñar el esquema
Para diseñar un esquema y una clave de fila en Bigtable, es útil responder primero preguntas clave sobre los datos que se almacenarán.
| Pregunta |
Propósito |
| ¿Qué representa una fila individual? (por ejemplo, un usuario individual o un sensor) |
Identificar la estructura de las filas |
| ¿Cuáles serán las consultas más comunes a estos datos? |
Crear una clave de fila |
| ¿Qué valores se recopilan para cada fila? |
Identificar las columnas (denominadas calificadores de columna) |
| ¿Hay columnas relacionadas que se puedan organizar juntas o agruparlas? |
Identificar las familias de columnas |
Por ejemplo, considera un conjunto de datos que captura sesiones de compras en línea para todos los usuarios del sitio web de una empresa de comercio electrónico. Cada fila representa una sesión de compra en línea individual con una marca de tiempo. Las consultas más comunes al conjunto de datos recuperarán detalles sobre sesiones individuales y el ID de usuario asociado. Los valores almacenados para cada sesión de compras son todos los artículos con los que el usuario interactuó y que compró durante la sesión, así como una preferencia de color para el usuario.
Los datos sin procesar podrían organizarse de la siguiente manera, con más columnas para productos adicionales (como blue_jacket o purple_bag):
| timestamp |
user_id |
preferred_color |
red_skirt |
red_hat |
orange_shoes |
sale |
| 1638940844260 |
1939 |
green |
|
seen |
seen |
|
| 1638940844260 |
2466 |
blue |
seen |
seen |
|
|
| 1638940844260 |
1679 |
blue |
|
seen |
|
blue_blouse#blue_jacket |
| 1638940844260 |
2737 |
blue |
|
|
seen |
blue_dress#blue_jacket |
| 1638940844260 |
582 |
yellow |
|
|
|
yellow_skirt |
Nota: El ID de usuario proporcionado en este ejemplo se incluye a modo de ejemplo simplemente. En una aplicación típica de Bigtable, probablemente generarías un identificador único universal (UUID) para cada usuario.
Crea una tabla de prueba
Una práctica recomendada para Bigtable es almacenar datos con esquemas similares en la misma tabla, en lugar de hacerlo en tablas separadas. Por ejemplo, todos los datos de las sesiones de compras en línea se pueden almacenar en una tabla para facilitar la recuperación.
- Para crear una tabla vacía llamada test-sessions, ejecuta el siguiente comando:
cbt createtable test-sessions
Crea familias de columnas
En Bigtable, las prácticas recomendadas para columnas y familias de columnas incluyen lo siguiente:
-
Usar calificadores de columna como datos para no repetir el valor en cada fila
-
Organizar las columnas relacionadas en la misma familia de columnas
-
Elegir nombres cortos pero significativos para tus familias de columnas
Para este conjunto de datos, los calificadores de columna que almacenan interacciones con productos se pueden agrupar en una familia de columnas llamada Interactions, mientras que el calificador de columna que almacena compras se puede organizar por sí mismo en otra familia de columnas llamada Sales. El esquema resultante se organizaría de la siguiente manera:
| … |
… |
… |
Interacciones |
--- |
--- |
Sales |
| timestamp |
user_id |
preferred_color |
red_skirt |
red_hat |
orange_shoes |
sale |
| 1638940844260 |
1939 |
green |
|
seen |
seen |
|
| 1638940844260 |
2466 |
blue |
seen |
seen |
|
|
| 1638940844260 |
1679 |
blue |
|
seen |
|
blue_blouse#blue_jacket |
| 1638940844260 |
2737 |
blue |
|
|
seen |
blue_dress#blue_jacket |
| 1638940844260 |
582 |
yellow |
|
|
|
yellow_skirt |
- Para agregar una familia de columnas llamada Interactions a la tabla test_sessions, ejecuta el siguiente comando:
cbt createfamily test-sessions Interactions
- Para agregar otra familia de columnas llamada Sales, repite el comando anterior y especifica el nuevo nombre de la familia de columnas:
cbt createfamily test-sessions Sales
- Para ver una lista de familias de columnas en la tabla test_sessions, ejecuta el siguiente comando:
cbt ls test-sessions
El comando devuelve el siguiente resultado:
Family Name GC Policy
----------- ---------
Interactions <never>
Sales <never>
Haz clic en Revisar mi progreso para verificar el objetivo.
Crear una tabla de Bigtable
Crea una clave de fila
En Bigtable, una práctica recomendada es almacenar toda la información de una sola entidad (como una sesión individual de compras en línea) en una sola fila. Una práctica recomendada relacionada es crear una clave de fila que permita consultar y recuperar fácilmente un rango definido de filas.
Para aplicar las prácticas recomendadas para claves de filas en Bigtable, se recomienda que hagas lo siguiente:
-
Diseña tu clave de fila según las consultas que usarás para recuperar los datos.
-
Evita las claves de fila que comienzan con una marca de tiempo o IDs numéricos secuenciales, o que provocan que los datos relacionados no se agrupen.
-
Diseña claves de fila que comiencen con un valor más común (como el país) y terminen con un valor más detallado (como la ciudad).
-
Almacena varios valores delimitados en cada clave de fila con valores de cadena legibles por humanos (como el ID de usuario seguido de la marca de tiempo).
En la sección anterior, timestamp, user_id y preferred_color no estaban organizados en una familia de columnas. Recuerda que, en las preguntas sobre los datos sin procesar, la mayoría de las consultas a este conjunto de datos recuperarán detalles sobre sesiones individuales y el ID de usuario asociado.
Para admitir estas consultas, una buena clave de fila para esta tabla sería una combinación del ID de usuario y la marca de tiempo de la sesión. Además, la clave de fila puede incluir un prefijo para etiquetar la preferencia de color de cada usuario, como green1939#1638940844260 para el ID de usuario 1939, para facilitar la recuperación de todos los usuarios con una preferencia de color específica.
| … |
Interacciones |
--- |
--- |
Sales |
| row_key |
red_skirt |
red_hat |
orange_shoes |
sale |
| green1939#1638940844260 |
|
seen |
seen |
|
| blue2466#1638940844260 |
seen |
seen |
|
|
| blue1679#1638940844260 |
|
seen |
|
blue_blouse#blue_jacket |
| blue2737#1638940844260 |
|
|
seen |
blue_dress#blue_jacket |
| yellow582#1638940844260 |
|
|
|
yellow_skirt |
- Para usar una clave de fila para agregar datos a la familia de columnas Interactions, ejecuta el siguiente comando:
cbt set test-sessions green1939#1638940844260 Interactions:red_hat=seen
- Para usar una clave de fila para agregar datos a la familia de columnas Sales, ejecuta el siguiente comando:
cbt set test-sessions blue2737#1638940844260 Sales:sale=blue_dress#blue_jacket
- Para ver los datos almacenados en la tabla, ejecuta el siguiente comando:
cbt read test-sessions
Ten en cuenta que, aunque los datos de blue2737#1638940844260 se agregaron en segundo lugar, se ordenan más arriba en los resultados que green1939#1638940844260. Los registros se devuelven en este orden porque en Bigtable las filas se ordenan y almacenan lexicográficamente por clave de fila. Este orden es similar al alfabético; sin embargo, las filas que comienzan con números no se ordenarán de menor a mayor (como 1, 13, 2, 25, 6 y 70).
Limpia los datos de prueba
- Para borrar la tabla de prueba, ejecuta el siguiente comando:
cbt deletetable test-sessions
Haz clic en Revisar mi progreso para verificar el objetivo.
Borrar una tabla de Bigtable
Tarea 4: Consulta datos en Bigtable
En esta tarea, usarás la CLI de cbt para recuperar datos de una versión previamente creada y completada de tu tabla de prueba (la tabla existente llamada UserSessions) y examinarás cómo la tabla aplica las prácticas recomendadas para diseñar esquemas y claves de fila en Bigtable.
Consulta filas con límite
En este paso, revisas cómo la tabla UserSessions sigue las prácticas recomendadas de Bigtable almacenando todas las interacciones de los usuarios con los productos y las compras de estos en una tabla que contiene una fila para cada sesión de compra en línea.
- Para ver los datos de las primeras cinco filas de la tabla, ejecuta el siguiente comando:
cbt read UserSessions \
count=5
El resultado está estructurado de la siguiente manera:
----------------------------------------------
ROW KEY
COLUMN_FAMILY:COLUMN_QUALIFIER @ TIMESTAMP
VALUE
COLUMN_FAMILY:COLUMN_QUALIFIER @ TIMESTAMP
VALUE
...
----------------------------------------------
ROW KEY
COLUMN_FAMILY:COLUMN_QUALIFIER @ TIMESTAMP
VALUE
COLUMN_FAMILY:COLUMN_QUALIFIER @ TIMESTAMP
VALUE
...
Los valores de salida deben ser similares a los siguientes:
----------------------------------------------
blue0#1638940844350
Interactions:blue_hat @ 2022/06/08-19:47:33.864000
"viewed details"
Interactions:green_jacket @ 2022/06/08-19:47:33.864000
"seen"
...
----------------------------------------------
blue1#1638940844304
Interactions:blue_dress @ 2022/06/08-19:47:33.864000
"purchased"
Sales:sale @ 2022/06/08-19:47:33.864000
"blue_dress"
Cada fila contiene varias interacciones de productos para un usuario (como blue_hat y green_jacket), incluido si el usuario vio, consultó los detalles o compró el producto. Además, las compras se capturan en la tabla en el calificador de columna de venta en la familia de columnas de ventas.
En lugar de crear una tabla para cada tipo de interacción, producto o venta, UserSessions sigue las prácticas recomendadas y contiene todas las interacciones de usuarios y los productos relacionados en una tabla. Además, todas las interacciones con productos y las compras de una sesión de compras en línea individual se almacenan como una fila en la tabla.
Consulta por clave de fila
Las consultas más eficientes en Bigtable recuperan los datos con una de las siguientes opciones:
- clave de fila
- prefijo de la clave de fila
- rango de filas definido por las claves de fila inicial y final
En los próximos pasos, usarás cada opción en la CLI de cbt para consultar la tabla UserSessions y recuperar los registros deseados.
En la documentación de Bigtable, se encuentra información sobre el uso de bibliotecas cliente de Bigtable para leer filas individuales de datos con claves de fila.
Consulta por prefijo de clave de fila
- Para ver las primeras diez filas con una preferencia de color yellow, ejecuta el siguiente comando:
cbt read UserSessions \
prefix=yellow \
count=10
Los valores de salida deben ser similares a los siguientes:
----------------------------------------------
yellow991#1638940844645
Interactions:green_skirt @ 2022/06/08-19:47:33.864000
"seen"
Sales:sale @ 2022/06/08-19:47:33.864000
"yellow_skirt"
Consulta por un rango específico de claves de fila
- Para ver todas las filas dentro de un rango específico de claves de fila, ejecuta el siguiente comando:
cbt read UserSessions \
start=yellow941#1638940844381 \
end=yellow991#1638940844645
Los valores de salida deben ser similares a los siguientes:
----------------------------------------------
yellow991#1638940844603
Interactions:blue_blouse @ 2022/06/08-19:47:33.864000
"seen"
Sales:sale @ 2022/06/08-19:47:33.864000
"yellow_jacket#yellow_blouse"
El comando read comienza el rango con la clave de fila proporcionada como el valor start y termina el rango antes de la clave de fila proporcionada como el valor end. Por lo tanto, la clave de fila yellow991#1638940844645 no se devuelve en el resultado.
Consulta por clave de fila específica
- Para ver todos los datos de una clave de fila específica, ejecuta el siguiente comando:
cbt lookup UserSessions \
yellow582#1638940844260
Los valores de salida deben ser similares a los siguientes:
----------------------------------------------
yellow582#1638940844260
Interactions:blue_jacket @ 2022/06/08-19:47:33.864000
"seen"
Sales:sale @ 2022/06/08-19:47:33.864000
"yellow_skirt"
Consulta por calificadores de columnas y familias de columnas
En los próximos pasos, recuperarás datos filtrados por calificadores de columna y familias de columnas para ver cómo se implementan las prácticas recomendadas de columnas en la tabla UserSessions.
- Para consultar las primeras cinco filas que tienen datos en la familia de columnas Interactions, ejecuta el siguiente comando:
cbt read UserSessions count=5 \
columns="Interactions:.*"
Los valores de salida deben ser similares a los siguientes:
----------------------------------------------
blue0#1638940844501
Interactions:blue_blouse @ 2022/06/08-19:47:33.864000
"viewed details"
Interactions:green_jacket @ 2022/06/08-19:47:33.864000
"seen"
- Para consultar las primeras cinco filas que tienen datos en el calificador de columna green_jacket en la familia de columnas Interactions, ejecuta el siguiente comando:
cbt read UserSessions count=5 \
columns="Interactions:green_jacket"
Los valores de salida deben ser similares a los siguientes:
----------------------------------------
blue1009#1638940844380
Interactions:green_jacket @ 2022/06/08-21:30:08.683000
"seen"
----------------------------------------
blue101#1638940844263
Interactions:green_jacket @ 2022/06/08-21:30:08.683000
"seen"
- Para consultar las primeras cinco filas que tienen datos en el calificador de columna sale en la familia de columnas Sales, ejecuta el siguiente comando:
cbt read UserSessions count=5 \
columns="Sales:sale"
Los valores de salida deben ser similares a los siguientes:
----------------------------------------
blue0#1638940844379
Sales:sale @ 2022/06/08-19:47:33.864000
"blue_shoes#blue_shoes"
----------------------------------------------
blue1#1638940844409
Sales:sale @ 2022/06/08-19:47:33.864000
"blue_blouse"
Como la familia de columnas llamada Sales solo tiene un calificador de columna (sale), los valores "Sales:sale" y "Sales:.*" para columns devuelven las mismas columnas.
¡Felicitaciones!
En este lab, usaste la consola de Google Cloud para explorar una instancia de Bigtable y la CLI de Cloud Bigtable (CLI de cbt) para consultar datos en una tabla de Bigtable. También diseñaste un esquema de tabla y una clave de fila con las prácticas recomendadas para Bigtable.
Próximos pasos y más información
Capacitación y certificación de Google Cloud
Recibe la formación que necesitas para aprovechar al máximo las tecnologías de Google Cloud. Nuestras clases incluyen habilidades técnicas y recomendaciones para ayudarte a avanzar rápidamente y a seguir aprendiendo. Para que puedas realizar nuestros cursos cuando más te convenga, ofrecemos distintos tipos de capacitación de nivel básico a avanzado: a pedido, presenciales y virtuales. Las certificaciones te ayudan a validar y demostrar tus habilidades y tu conocimiento técnico respecto a las tecnologías de Google Cloud.
Última actualización del manual: 30 de mayo de 2024
Prueba más reciente del lab: 16 de febrero de 2023
Copyright 2025 Google LLC. All rights reserved. Google y el logotipo de Google son marcas de Google LLC. Los demás nombres de productos y empresas pueden ser marcas de las respectivas empresas a las que estén asociados.