GSP1087
Descripción general
AlloyDB para PostgreSQL es un servicio de base de datos completamente administrado y compatible con PostgreSQL para tus cargas de trabajo de bases de datos empresariales más exigentes. AlloyDB combina lo mejor de Google con uno de los motores de base de datos de código abierto más populares, PostgreSQL, para un rendimiento, escalamiento y disponibilidad superiores.
Con el motor de columnas, se puede acelerar significativamente la velocidad con la que AlloyDB procesa los análisis, las uniones y las agregaciones de SQL. Este motor proporciona las siguientes funciones: 1) un almacén de columnas con datos de tablas para las columnas seleccionadas, reorganizados en un formato orientado a columnas y 2) un motor de ejecución y planificación de consultas en columnas para admitir el uso del almacén de columnas en las consultas.
En este lab, explorarás las funciones del motor de columnas de AlloyDB.
Actividades
En este lab, aprenderás a realizar las siguientes tareas:
- Crear un conjunto de datos de referencia para probar el motor de columnas
- Ejecutar una prueba de referencia
- Verificar la marca de la base de datos para el motor de columnas
- Configurar o verificar la extensión de la base de datos para el motor de columnas
- Probar el motor de columnas
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: Crea un conjunto de datos de referencia para probar el motor de columnas
En este entorno de lab, se aprovisionan un clúster y una instancia de AlloyDB cuando lo inicias.
- En la consola de Google Cloud, haz clic en el menú de navegación
> Ver todos los productos. Luego, en Bases de datos, selecciona AlloyDB para PostgreSQL.
En la página de AlloyDB, encontrarás un clúster llamado lab-cluster y una instancia llamada lab-instance, que tarda unos minutos en crearse para, luego, inicializarse por completo.
Espera hasta que veas una marca de verificación verde (estado Listo) junto a la instancia llamada lab-instance en la columna Nombre del recurso antes de continuar con el siguiente paso.
- En la fila de la instancia llamada lab-instance, en Dirección IP privada, copia la Dirección IP privada (como
10.100.0.2) en un archivo de texto para que puedas pegar el valor en un paso posterior. No incluyas los dos puntos ni el número de puerto (:5432).
Para evaluar las capacidades del motor de columnas, necesitas un conjunto de datos de tamaño significativo que te permita medir el rendimiento. En los próximos pasos, usarás la herramienta de PostgreSQL pgbench para generar un conjunto de datos sintéticos y evaluar el motor de columnas.
-
En el menú de navegación (
), en Compute Engine, haz clic en Instancias de VM.
-
Para la instancia llamada alloydb-client, en la columna Conectar, haz clic en SSH para abrir una ventana de terminal.
-
Establece la siguiente variable de entorno y reemplaza ALLOYDB_ADDRESS por la dirección IP privada de la instancia de AlloyDB.
export ALLOYDB=ALLOYDB_ADDRESS
- Para almacenar la dirección IP privada de la instancia de AlloyDB en la VM cliente de AlloyDB, de modo que persista durante todo el lab, ejecuta este comando.
echo $ALLOYDB > alloydbip.txt
- El primer paso para usar pgbench es crear y completar las tablas de muestra. Ejecuta el siguiente comando para crear un conjunto de cuatro tablas. Se te pedirá la contraseña del usuario postgres, que es Change3Me.
La tabla más grande, pgbench_accounts, se cargará con 50 millones de filas. Esta operación tardará unos minutos en completarse.
pgbench -h $ALLOYDB -U postgres -i -s 500 -F 90 -n postgres
dropping old tables...
NOTICE: table "pgbench_accounts" does not exist, skipping
NOTICE: table "pgbench_branches" does not exist, skipping
NOTICE: table "pgbench_history" does not exist, skipping
NOTICE: table "pgbench_tellers" does not exist, skipping
creating tables...
generating data (client-side)...
50000000 of 50000000 tuples (100%) done (elapsed 91.26 s, remaining 0.00 s)
creating primary keys...
done in 167.61 s (drop tables 0.00 s, create tables 0.01 s, client-side generate 93.16 s, primary keys 74.43 s).
- Conéctate al cliente psql y ejecuta la siguiente consulta para verificar el recuento de filas en la tabla pgbench_accounts. Se te pedirá la contraseña del usuario postgres, que es Change3Me.
psql -h $ALLOYDB -U postgres
select count (*) from pgbench_accounts;
count
----------
50000000
(1 row)
Haz clic en Revisar mi progreso para verificar el objetivo.
Crear un conjunto de datos de referencia
Tarea 2: Ejecuta una prueba de referencia
Para fines de evaluación, puedes ejecutar una consulta muy simple que realice análisis secuenciales y, luego, usar planes de explicación en ella antes y después de agregar la tabla de prueba al motor de columnas.
- Regresa a la shell de alloydb-client en la que el cliente psql debería seguir activo. Si no lo está, sigue las instrucciones de la tarea 1 para volver a conectarte. Ejecuta la siguiente consulta para activar los tiempos de todas las operaciones de consulta.
\timing on
- Luego, ejecuta la siguiente consulta para evaluar el tiempo de ejecución. Esta consulta realiza análisis secuenciales de toda la tabla pgbench_accounts.
Nota: Esta consulta de ejemplo tiene un límite de 20 filas devueltas porque solo es una demostración.
SELECT aid, bid, abalance FROM pgbench_accounts WHERE bid < 189 OR abalance > 100 LIMIT 20;
aid | bid | abalance
-----+-----+----------
1 | 1 | 0
2 | 1 | 0
3 | 1 | 0
4 | 1 | 0
5 | 1 | 0
6 | 1 | 0
7 | 1 | 0
8 | 1 | 0
9 | 1 | 0
10 | 1 | 0
11 | 1 | 0
12 | 1 | 0
13 | 1 | 0
14 | 1 | 0
15 | 1 | 0
16 | 1 | 0
17 | 1 | 0
18 | 1 | 0
19 | 1 | 0
20 | 1 | 0
(20 rows)
- Ejecuta la siguiente consulta para generar un plan de explicaciones para una consulta sin restricciones. Tus valores deberían ser similares a los del resultado de la muestra, pero variarán debido a la naturaleza aleatoria de la generación de datos.
Nota: Es posible que debas presionar la barra espaciadora para avanzar por el plan de explicación de consultas.
EXPLAIN (ANALYZE,COSTS,SETTINGS,BUFFERS,TIMING,SUMMARY,WAL,VERBOSE)
SELECT count(*) FROM pgbench_accounts WHERE bid < 189 OR abalance > 100;
QUERY PLAN
---------------------------------------------------------------------------------------------------------------
---------------------------------------------------
Finalize Aggregate (cost=1242226.53..1242226.54 rows=1 width=8) (actual time=11010.409..11014.083 rows=1 loop
s=1)
Output: count(*)
Buffers: shared hit=20921 read=888170
I/O Timings: read=19536.769
-> Gather (cost=1242226.32..1242226.53 rows=2 width=8) (actual time=11010.398..11014.075 rows=3 loops=1)
Output: (PARTIAL count(*))
Workers Planned: 2
Workers Launched: 2
Buffers: shared hit=20921 read=888170
I/O Timings: read=19536.769
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!! Section removed for pasting !!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Filter: ((pgbench_accounts.bid < 189) OR (pgbench_accounts.abalance > 100))
Rows Removed by Filter: 10400000
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!! Section removed for pasting !!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Buffers: shared hit=6
Planning Time: 0.117 ms
Execution Time: 11014.169 ms
(38 rows)
-
En los resultados, presta especial atención a los valores del tiempo de planificación y el tiempo de ejecución. En el resultado de muestra, el tiempo de planificación es de 0.117 milisegundos y el tiempo de ejecución es de 11,014.169 milisegundos o 11.014 segundos. Tus valores deberían ser similares a los del resultado de la muestra, pero variarán debido a la naturaleza aleatoria de la generación de datos.
-
Copia los valores del tiempo de planeación y el tiempo de ejecución en un archivo de texto para que puedas compararlos más adelante con los resultados posteriores a la habilitación del motor de columnas. También puedes copiar todos los resultados del plan de consultas en un archivo de texto.
-
Presiona la tecla Q para cerrar el plan de consultas.
Tarea 3: Verifica la marca de la base de datos para el motor de columnas
En esta tarea, examinarás la marca de la base de datos del motor de columnas en tu instancia.
-
En la consola de Google Cloud, haz clic en el menú de navegación (
) > Ver todos los productos. Luego, en Bases de datos, selecciona AlloyDB para PostgreSQL.
-
En la fila de la instancia llamada lab-instance, haz clic en Acciones (ícono con tres puntos verticales) y, luego, en Editar.
-
Expande la sección llamada Opciones de configuración avanzada.
-
En Marcas, haz clic en Agregar una marca de base de datos.
-
Haz clic en Elige una marca para navegar por la lista de marcas disponibles y conocer las opciones compatibles.
Observa que la marca llamada google_columnar_engine.enabled ya está habilitada (estado activado). No agregarás una marca adicional como parte de este lab.
- Haz clic en Cancelar para salir de la página Editar instancia.
Tarea 4: Configura o verifica una extensión de la base de datos para el motor de columnas
Siguiendo con la sección anterior, en esta tarea, configurarás una extensión de base de datos para habilitar por completo la función de motor de columnas para tu clúster de AlloyDB.
A diferencia de la configuración de una marca, debes conectarte a tu instancia a través del cliente psql para habilitar una extensión de base de datos.
-
Regresa a la shell de alloydb-client. El cliente psql debería seguir activo. Si no lo está, sigue las instrucciones de la tarea 1 para volver a conectarte.
-
Ejecuta la siguiente consulta para asegurarte de que estableciste una conexión a la base de datos postgres.
\c postgres
- Ejecuta la siguiente consulta del sistema para ver los detalles de las extensiones habilitadas en la base de datos.
Nota: Es posible que tu lista de extensiones varíe.
\dx
List of installed extensions
Name | Version | Schema | Description
------------------------+---------+------------+---------------------------------------
google_columnar_engine | 1.0 | public | Google extension for columnar engine
google_db_advisor | 1.0 | public | Google extension for Database Advisor
hypopg | 1.3.2 | public | Hypothetical indexes for PostgreSQL
plpgsql | 1.0 | pg_catalog | PL/pgSQL procedural language
(4 rows)
- Si google_columnar_engine aparece en la lista, ve a la siguiente tarea (tarea 5). Si google_columnar_engine no aparece en la lista, ejecuta el siguiente comando.
CREATE EXTENSION IF NOT EXISTS google_columnar_engine;
- Vuelve a ejecutar la consulta para confirmar que la extensión google_columnar_engine esté habilitada.
\dx
Tarea 5: Prueba el motor de columnas
Como tu tabla principal (pgbench_accounts) es relativamente pequeña, puedes agregarla directo al motor de columnas para su evaluación. En una implementación real, utilizarías el framework de recomendaciones del motor de columnas para identificar automáticamente las columnas más utilizadas en todas las tablas que obtendrían el mayor beneficio con la administración del motor.
- Regresa a la shell de alloydb-client. Ejecuta la siguiente consulta para agregar pgbench_accounts al motor de columnas. La consulta tarda unos minutos en completarse.
SELECT google_columnar_engine_add('pgbench_accounts');
- Luego, ejecuta la misma consulta del plan de explicaciones que hiciste antes para ver los efectos del motor de columnas. Tus valores deberían ser similares a los del resultado de la muestra, pero variarán debido a la naturaleza aleatoria de la generación de datos.
EXPLAIN (ANALYZE,COSTS,SETTINGS,BUFFERS,TIMING,SUMMARY,WAL,VERBOSE)
SELECT count(*) FROM pgbench_accounts WHERE bid < 189 OR abalance > 100;
QUERY PLAN
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Finalize Aggregate (cost=142400.72..142400.73 rows=1 width=8) (actual time=75.948..78.680 rows=1 loops=1)
Output: count(*)
-> Gather (cost=142400.51..142400.72 rows=2 width=8) (actual time=71.555..78.667 rows=3 loops=1)
Output: (PARTIAL count(*))
Workers Planned: 2
Workers Launched: 2
-> Partial Aggregate (cost=141400.51..141400.52 rows=1 width=8) (actual time=45.768..45.771 rows=1 loops=3)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Section removed for pasting
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Rows Removed by Columnar Filter: 10400000
Rows Aggregated by Columnar Scan: 4505600
Columnar cache search mode: native
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Section removed for pasting
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Buffers: shared hit=22 read=3 dirtied=1
I/O Timings: read=0.560
Planning Time: 2.022 ms
Execution Time: 78.804 ms
(29 rows)
-
En los resultados, presta especial atención a los valores del tiempo de planificación y el tiempo de ejecución. En la muestra posterior al motor de columnas, el tiempo de planificación es de 2.022 milisegundos y el tiempo de ejecución es de 78.804 milisegundos. Tus valores deberían ser similares a los del resultado de la muestra, pero variarán debido a la naturaleza aleatoria de la generación de datos.
-
Según las muestras proporcionadas, la diferencia entre el tiempo de ejecución previo y posterior al motor de columnas es de 10,935.365 ms o 10.9 segundos. Esto representa una disminución de 141 veces. En la muestra posterior al motor de columnas, también observa que se agregaron más de 4.5 millones de filas con un análisis de columnas en lugar del motor de base de datos principal.
Haz clic en Revisar mi progreso para verificar el objetivo.
Probar el motor de columnas
Nota: Si después de completar todas las tareas, tu puntuación no se actualiza por completo, expande el cuadro Puntos de control (la barra lateral amarilla en el lado derecho de la página) y haz clic en Revisar mi progreso en cada tarea para que se actualice la puntuación.
¡Felicitaciones!
Ya exploraste las potentes funciones del motor de columnas de AlloyDB.
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: 16 de enero de 2025
Prueba más reciente del lab: 15 de diciembre de 2025
Copyright 2026 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.