Una tabla dinámica de Hologres actualiza sus datos de forma incremental y automática, además de acelerar las consultas. Mediante la función Data Catalog, DataWorks ofrece una interfaz de gestión visual para las tablas dinámicas de Hologres en el módulo Data Directory, lo que permite crear, configurar, supervisar y gestionar tablas dinámicas sin necesidad de escribir sentencias DDL complejas. Utilice tablas dinámicas para desarrollar aplicaciones de datos en tiempo real y casi en tiempo real.
Límites
Consultas y funciones SQL: Para conocer los límites de las consultas SQL, la compatibilidad con funciones y otros aspectos de las tablas dinámicas de Hologres, consulte la documentación de Hologres: Supported features and limits of dynamic tables.
Requisitos previos
Un espacio de trabajo de DataWorks que tenga habilitada la opción Use Data Studio (New Version), con un resource group de cómputo vinculado que incluya el motor de Hologres. Para obtener instrucciones, consulte Configure a workspace y Manage computing resources.
Una instancia de Hologres que ejecute Hologres V3.1 o posterior. Seleccione esta versión al crear la instancia de Hologres.
Un origen de datos de Hologres en DataWorks que haya pasado la prueba de conectividad. Para obtener instrucciones, consulte Bind a Hologres computing resource.
Binlog habilitado en cada tabla de origen desde la cual lee una tabla dinámica. La actualización incremental consume el Binlog de la tabla de origen.
Un nodo SQL de Hologres en DataWorks u otro cliente de Hologres para ejecutar las sentencias SQL de este tema.
Elección del tipo de tabla dinámica
La columna de partición que especifique durante la creación determina el tipo de tabla dinámica. Elija una de las siguientes rutas. Ambas son alternativas: siga la que corresponda a la tabla dinámica que necesita.
Tabla dinámica sin particiones (ruta predeterminada): No seleccione ninguna columna de partición. Para ver un ejemplo integral, consulte Quick start: create a non-partitioned dynamic table.
Tabla dinámica con particiones: Seleccione una columna de hora o fecha como columna de partición. Hologres crea y gestiona las particiones automáticamente. Para ver un ejemplo integral, consulte Advanced example: create a day-partitioned dynamic table.
Apertura de la página de creación de tablas dinámicas
Ambos ejemplos de este tema comienzan desde la página de creación de tablas dinámicas. Para abrir la página, realice los siguientes pasos:
-
Vaya a Data Studio en su espacio de trabajo de DataWorks.
Vaya a la página Workspaces en la consola de DataWorks. En la barra de navegación superior, seleccione la región deseada. Busque el espacio de trabajo correspondiente y elija en la columna Actions.
En el panel de navegación izquierdo, haga clic en
para ir al módulo Data Directory.En la sección Data Directory, busque la instancia de Hologres objetivo bajo el tipo Hologres, expanda los directorios en secuencia y haga clic en el icono
junto a Dynamic Table.
En un espacio de trabajo en modo estándar, el Data Directory de Hologres contiene dos instancias de base de datos: Development y Production. (Recomendado) Pruebe primero la nueva tabla dinámica de Hologres en la base de datos del entorno de desarrollo y, tras confirmar el resultado, créela en la base de datos del entorno de producción.
En un espacio de trabajo en modo estándar, las tablas dinámicas que cree en la base de datos del entorno de desarrollo de Hologres no se sincronizan automáticamente con la base de datos del entorno de producción. Para consultar estas tablas en la base de datos del entorno de producción, cree las tablas dinámicas de Hologres por separado en dicha base de datos.
Inicio rápido: creación de una tabla dinámica sin particiones
Este ejemplo crea una tabla dinámica sin particiones que agrega de forma automática e incremental los datos de pedidos de la tabla de origen orders, y mantiene los datos agregados actualizados en un margen de 5 minutos.
Paso 1: Preparación de los datos de origen
Prepare una tabla de origen en su base de datos de Hologres. Ejecute las siguientes sentencias SQL para crear una tabla de pedidos llamada orders e insertar datos iniciales:
-- Create the source table and enable Binlog to support incremental refresh
CREATE TABLE orders (
order_id INT PRIMARY KEY,
user_id INT,
user_name TEXT,
price FLOAT,
order_time TIMESTAMPTZ
) WITH (
binlog_level = 'replica', -- Key setting: enable Binlog
binlog_ttl = '86400' -- Binlog retention period in seconds, for example, one day
);
-- Insert initial data
INSERT INTO orders VALUES
(1, 101, 'Alice', 99.9, NOW()),
(2, 102, 'Bob', 19.5, NOW()),
(3, 101, 'Alice', 25.0, NOW());
Paso 2: Apertura de la página de creación de tablas dinámicas
Abra la página de creación de tablas dinámicas para la base de datos de Hologres objetivo. Para obtener instrucciones, consulte Open the dynamic table creation page.
Paso 3: Definición de la lógica de consulta y ejecución de la precompilación
-
Introduzca la información básica:
Dynamic table name: Introduzca un nombre de tabla único, como
dt_user_orders_agg.Description: Introduzca el propósito de la tabla, por ejemplo, "Estadísticas de pedidos agregadas por usuario".
-
En la sección Field Information, en la pestaña Data Generation SQL, escriba la consulta
SELECTque define la lógica de datos de la tabla dinámica:SELECT user_id, user_name, COUNT(*) AS order_count, SUM(price) AS total_price FROM public.orders GROUP BY user_id, user_name;NotaIntroduzca únicamente la sentencia
SELECT. No es necesario incluir el comando DDLCREATE DYNAMIC TABLE. El sistema analiza la sentencia DDL completa a partir de su configuración y la muestra en el área DDL de la derecha. -
Haga clic en Precompile encima del editor SQL.
La precompilación es un paso obligatorio. Si la precompilación se realiza correctamente, el sistema enumera los modos de actualización compatibles y analiza las columnas de salida de la tabla dinámica. Si la precompilación falla, el sistema devuelve la causa específica. Modifique la sentencia SQL según el mensaje y vuelva a ejecutar la precompilación. Para saber qué verifica la precompilación y cómo interpretar su resultado, consulte Appendix: configuration reference.
(Opcional) Haga clic en la pestaña Field Details para ver todas las columnas, tipos de datos y propiedades de no nulo que analizó el sistema, y agregue un comentario para cada columna en la columna Description para facilitar la lectura de los metadatos.
Para este ejemplo, la pestaña Field Details muestra cuatro columnas: user_id (entero), user_name (texto), order_count (bigint) y total_price (precisión doble). Todas las columnas son no nulas.
Este ejemplo no utiliza la configuración de particiones ni la configuración avanzada de parámetros. Para ver las descripciones de los parámetros, consulte Appendix: configuration reference.
Paso 4: Configuración de la política de actualización de datos
Una vez que la precompilación se realiza correctamente, el panel Refresh Policy en el lado derecho de la página se vuelve editable.
Seleccione la política de actualización que se ajuste a su escenario. Auto-Refresh es la opción predeterminada recomendada cuando no necesita forzar un modo de actualización específico. Incremental Refresh fuerza únicamente la actualización incremental, y Full Refresh se aplica cuando la tabla de origen no tiene clave primaria ni Binlog. Este ejemplo utiliza Incremental Refresh porque el escenario requiere una sincronización de datos de baja latencia.
Para ver la descripción completa de cada parámetro, consulte Appendix: configuration reference y Hologres refresh modes and resources.
-
Basic Parameters:
Table Type: Dado que no se seleccionó ninguna columna de partición, el sistema identifica la tabla como una Non-Partitioned Table.
Refresh Policy: Seleccione Incremental Refresh.
Refresh trigger method: Mantenga Hologres auto refresh, que es el único valor compatible.
Automatically Refresh Data: Mantenga el valor predeterminado Yes.
Data Freshness: Establezca este parámetro en 5 minutes. De este modo, la latencia de la tabla dinámica respecto a la tabla de origen se mantendrá siempre dentro de los 5 minutos.
Base Table Consumption Mode for Incremental Refresh: Seleccione stream.
Hologres computing resources: Seleccione Serverless resources para que las tareas de actualización no consuman los recursos de su propia instancia.
Advanced Parameters (opcional): Mantenga los valores predeterminados en este ejemplo. Para establecer parámetros GUC especiales, consulte GUC parameters.
Paso 5: Publicación de la tabla dinámica
Tras confirmar que todas las configuraciones son correctas, haga clic en Publish en la parte superior de la página.
En el cuadro de diálogo de confirmación que aparece, haga clic nuevamente en Publish.
La tabla dinámica de Hologres se crea y se publica. Cuando se insertan o actualizan datos en la tabla de origen orders, la tabla dinámica dt_user_orders_agg actualiza sus resultados agregados en aproximadamente 5 minutos.
Paso 6: Verificación de la actualización
Inserte o actualice filas en la tabla de origen orders. Una vez transcurrida la ventana de frescura de datos configurada de 5 minutos, consulte dt_user_orders_agg. Los resultados agregados incluirán los nuevos datos. Para comprobar si las tareas de actualización se ejecutan según lo esperado, consulte View and monitor dynamic tables.
Ejemplo avanzado: creación de una tabla dinámica con particiones diarias
Este ejemplo crea una tabla dinámica con particiones. La tabla agrega los nuevos usuarios diarios a partir de una tabla de registro de usuarios, y crea y gestiona las particiones automáticamente.
Este ejemplo utiliza 2026-02-27 como fecha actual. Reemplace cada aparición de 2026-02-27 por la fecha actual de su entorno, de modo que los datos de muestra, el nombre de la partición y la consulta de verificación hagan referencia al mismo día.
Paso 1: Preparación de los datos de origen
Cree una tabla de origen llamada users que registre la información de registro de usuarios. La tabla debe contener una columna de marca de tiempo que sirva como base para la creación de particiones.
-- Create the user registration table and enable Binlog
CREATE TABLE users (
user_id INT PRIMARY KEY,
user_name TEXT,
region TEXT,
registration_time TIMESTAMPTZ -- User registration time, of the TIMESTAMPTZ type
) WITH (
binlog_level = 'replica',
binlog_ttl = '86400'
);
-- Insert test data. Replace the dates with the current data timestamp.
INSERT INTO users VALUES
(1, 'Alice', 'CN-Hangzhou', '2026-02-27 10:00:00+08'),
(2, 'Bob', 'CN-Shanghai', '2026-02-27 14:30:00+08'),
(3, 'Charlie', 'CN-Beijing', (NOW() - INTERVAL '1 day')::TIMESTAMPTZ);
En estos datos de muestra, Alice y Bob se registraron en la fecha actual, mientras que Charlie se registró un día antes. Las dos fechas de registro muestran cómo se distribuyen los registros entre las particiones diarias.
Paso 2: Apertura de la página de creación de tablas dinámicas
Abra la página de creación de tablas dinámicas para la base de datos de Hologres objetivo. Para obtener instrucciones, consulte Open the dynamic table creation page.
Paso 3: Definición de la lógica de consulta y ejecución de la precompilación
-
Introduzca la información básica:
Dynamic table name:
dwd_user_new_user_detail_diDescription: Estadísticas detalladas diarias de nuevos usuarios
-
Escriba una sentencia SQL que extraiga todos los registros de usuarios de la tabla
users. No es necesario filtrar la hora manualmente en la cláusulaWHERE, ya que el mecanismo de particiones de la tabla dinámica lo gestiona automáticamente.SELECT user_id, user_name, region, registration_time, -- Keep the original precise time column for queries CAST(registration_time AS DATE) AS ds -- [Key] Cast the timestamp to the DATE type to use as the partition key FROM public.users; Haga clic en Precompile. Una vez que la precompilación se realiza correctamente, el sistema analiza la información de las columnas.
Paso 4: Selección de la columna de partición
Seleccionar una columna de partición es el paso que convierte la tabla dinámica en una tabla con particiones.
En la sección Partition Field Information, haga clic en la lista desplegable Partition Column.
Seleccione la nueva columna
dscomo columna de partición.
Después de seleccionar la columna de partición, DataWorks identifica la tabla como una tabla con particiones y muestra los elementos de configuración relacionados con las particiones.
Paso 5: Configuración de las políticas de partición y actualización
Para ver la descripción completa de cada parámetro, consulte Appendix: configuration reference y Hologres partition properties.
-
Partition Configurations:
Partition Properties: El sistema muestra Logical Partition automáticamente.
Partition Format: Seleccione
yyyy-mm-ddpara crear particiones por día, lo cual coincide con los valoresDATEde la clave de particiónds.Partition Refresh Scope: Establezca este parámetro en 7 days.
Partition Management > Partition Retention Period: Establezca este parámetro en 30 days.
-
Refresh Policy Configurations:
Refresh Policy: Seleccione Auto-Refresh para permitir que Hologres decida entre la actualización incremental y la completa.
Refresh trigger method: Mantenga Hologres auto refresh, que es el único valor compatible.
Data Freshness: Establezca este parámetro en 10 minutes.
Hologres computing resources: Seleccione Serverless resources.
Paso 6: Publicación de la tabla dinámica
Haga clic en Publish en la parte superior de la página.
Paso 7: Visualización de las particiones y verificación de los datos
Expanda la tabla
dwd_user_new_user_detail_di. Aparecerán las subtablas de partición creadas según la fecha, como2026-02-27.-
En un nodo SQL de Hologres, inserte nuevos datos correspondientes al día actual en la tabla
users:INSERT INTO users VALUES (4, 'David', 'CN-Shenzhen', '2026-02-27 18:00:00+08'); -
Espere aproximadamente 10 minutos a que se ejecute la actualización automática. Para verificar el resultado de inmediato, actualice la partición manualmente:
REFRESH DYNAMIC TABLE dwd_user_new_user_detail_di PARTITION (ds = '2026-02-27'); -
Consulte los datos mediante la nueva clave de partición
ds, lo cual resulta más eficiente:-- Efficient query: filter directly on the partition key SELECT * FROM dwd_user_new_user_detail_di WHERE ds = '2026-02-27';
La consulta devuelve los registros cuya hora de registro corresponde a la fecha consultada, incluido el nuevo usuario David (user_id=4, CN-Shenzhen). Cada registro devuelto contiene las columnas user_id, user_name, region, registration_time y ds, y el valor ds de cada registro devuelto es la fecha consultada. Charlie (user_id=3, CN-Beijing) se registró un día antes, por lo que ese registro pertenece a la partición del día anterior y la consulta no lo devuelve.
Visualización y supervisión de tablas dinámicas
Una tabla dinámica se mantiene en actualización continua después de publicarla, por lo que la página de detalles de la tabla dinámica es el lugar donde puede revisar su configuración y estado de actualización. En la lista de tablas dinámicas del módulo Data Directory, haga clic en la tabla dinámica que creó, como dt_user_orders_agg, para ir a la página de detalles.
Visualización de la información estática
Los siguientes elementos de la página de detalles describen cómo se define la tabla dinámica:
Details: La información del esquema de la tabla, como la lista de columnas, los tipos de datos y la clave primaria.
Basic information: Las configuraciones principales de la tabla, como el propietario, la lógica de actualización de datos (SQL) y la política de actualización.
DDL: La sentencia DDL completa que crea la tabla dinámica. Puede copiar la sentencia para migrar o reproducir la tabla.
Supervisión de las tareas de actualización
Haga clic en la pestaña Output information para supervisar el estado de actualización de la tabla dinámica.
Data refresh: Si hay una tarea de actualización en ejecución, esta área muestra información en tiempo real sobre la tarea, como el PID, el ID de consulta, el estado y la duración de ejecución.
Output History: Esta área registra el historial de cada tarea de actualización. La siguiente tabla describe los campos de cada registro.
|
Campo |
Descripción |
|
Query ID |
El ID único de una tarea de actualización histórica. Utilice el ID de consulta para realizar un análisis detallado de problemas en Hologres. |
|
Refresh Mode |
El modo de actualización de la tarea, por ejemplo, Incremental Refresh. |
|
Status |
El estado final de la tarea: Successful o Failed. |
|
Run Time (seconds) |
La duración total de la tarea. |
|
Data consumption delay (seconds) |
(Solo actualización incremental) La latencia de procesamiento de datos de la tabla dinámica. |
|
Compute resources |
Los recursos que consume la tarea. Utilice este campo para el análisis de costos y el ajuste de rendimiento. |
Gestión de tablas dinámicas
Utilice la pestaña Output information de la página de detalles para controlar cómo se actualiza una tabla dinámica, y use la lista de tablas dinámicas en el módulo Data Directory para modificar o eliminar la tabla.
Control de la actualización de una tabla dinámica
Los siguientes botones de acción están disponibles en la pestaña Output information:
Pause Refresh / Recovery Refresh: Detiene temporalmente o reanuda la actualización automática de Hologres.
Manual Refresh: Desencadena una tarea de actualización manualmente para actualizar los datos de inmediato.
Convert to Full Table: Cambia el modo de actualización de la tabla dinámica a Full Refresh y detiene la actualización automática. Este botón solo aparece cuando la política de actualización de la tabla dinámica es Auto-Refresh o Incremental Refresh.
Convert to Full Table cambia el modo de actualización de la tabla dinámica de forma permanente, y la tabla dinámica deja de actualizarse automáticamente después de la conversión. Confirme que la actualización completa cumple con los requisitos de frescura de datos de su carga de trabajo antes de utilizar esta acción.
Modificación de una tabla dinámica
Busque la tabla dinámica en el módulo Data Directory y luego haga clic en Edit en la esquina superior derecha de la página de detalles para abrir la página de edición. La mayoría de los elementos de configuración admiten modificaciones. Para conocer los parámetros que puede modificar, consulte la documentación de Hologres: Modify a dynamic table.
Eliminación de una tabla dinámica
En la lista de tablas dinámicas del módulo Data Directory, haga clic con el botón derecho en la tabla objetivo y seleccione Delete.
Apéndice: referencia de configuración
Esta sección sirve como referencia para cada elemento de configuración de una tabla dinámica de Hologres. Los pasos de los ejemplos solo indican qué valor utiliza cada escenario.
Información de columnas y columna de partición
Información de columnas (SQL): La consulta
SELECTque define el origen de datos de la tabla dinámica. La precompilación es un paso obligatorio.-
Columna de partición
No seleccionada: Crea una tabla sin particiones.
Columna de hora o fecha seleccionada: Crea una tabla con particiones. El sistema cambia automáticamente al modo de configuración de tabla con particiones.
Precompilación
La precompilación interactúa con el motor de Hologres en tiempo real para realizar las siguientes tareas:
Validar la sintaxis: Comprueba si su sentencia
SELECTcumple con las reglas de sintaxis SQL.Inferir el modo de actualización: Analiza la lógica de consulta y las propiedades de la tabla de origen para determinar qué modos de actualización son compatibles: automática, incremental o completa.
Analizar las columnas: Si la sintaxis es correcta, el sistema analiza las columnas de salida y los tipos de datos de la tabla dinámica.
La precompilación devuelve uno de los siguientes resultados:
Éxito: El sistema indica que la sintaxis es correcta y enumera los modos de actualización compatibles. Puede continuar con las configuraciones restantes.
Fallo: Si la sentencia SQL contiene un error o la lógica no cumple con los requisitos de una tabla dinámica, el sistema devuelve la causa específica. Modifique la sentencia SQL según el mensaje y vuelva a ejecutar la precompilación.
Configuraciones de actualización de datos
Configuraciones comunes
-
Política de actualización
Auto-Refresh: (Recomendado) Hologres decide si actualizar de forma incremental o completa, lo que equilibra el rendimiento y la facilidad de uso.
Incremental Refresh: Fuerza únicamente la actualización incremental. Utilice esta opción cuando necesite una alta frescura de datos.
Full Refresh: Recalcula todos los datos en cada actualización. Utilice esta opción cuando la tabla de origen no tenga clave primaria ni Binlog, o cuando la lógica de consulta sea compleja.
Modo de activación de actualización: Solo se admite Hologres auto refresh.
Automatically Refresh Data: El interruptor principal de la actualización automática.
Data Freshness: Define la latencia máxima aceptable de los datos y es la condición de activación principal para la actualización automática. El sistema desencadena actualizaciones dinámicamente según los datos entrantes para que la latencia de la tabla dinámica respecto a la tabla de origen se mantenga dentro del valor configurado.
Base Table Consumption Mode for Incremental Refresh: Define cómo se consume el Binlog. stream (streaming) es el modo predeterminado y recomendado, y proporciona baja latencia.
-
Hologres computing resources
Serverless resources: (Recomendado) Utiliza recursos serverless de Hologres para ejecutar las actualizaciones, sin consumir los recursos de cómputo de la instancia, lo que aísla los recursos.
Local Instance Resources (local): Utiliza los recursos de cómputo de la instancia. Si la instancia usa almacenes virtuales (V4.0 o posterior), puede seleccionar un almacén virtual específico.
Configuraciones de partición
Los siguientes elementos de configuración solo aparecen después de seleccionar una columna de partición. Las tablas dinámicas de la nueva versión utilizan todas particiones lógicas.
Formato de partición: (Obligatorio) Define cómo se generan las particiones a partir de los valores de la columna de partición. Por ejemplo, si el tipo de columna es
TIMESTAMPTZy selecciona el formatoyyyy-mm-dd, las particiones se crean por día.Alcance de actualización de particiones: Define el rango de particiones activas para la actualización automática. Por ejemplo, si establece el rango en los últimos 7 días, Hologres actualizará automáticamente solo las particiones de los últimos 7 días. Las particiones anteriores dejan de actualizarse automáticamente, lo que ahorra recursos.
-
Gestión de particiones (contraído de forma predeterminada)
Periodo de retención de particiones: Establece el tiempo de vida (TTL) de una partición. Las particiones caducadas se eliminan automáticamente.
Periodo de retención de almacenamiento caliente para datos de partición: Funciona con el almacenamiento escalonado en caliente y frío para definir cuánto tiempo permanecen los datos de la partición en el almacenamiento caliente (SSD).
Configuración avanzada (propiedades de la tabla)
Las siguientes propiedades físicas se aplican a la tabla dinámica en sí y son similares a la configuración de una tabla regular de Hologres.
|
Parámetro |
Descripción |
|
Storage Mode |
Hologres admite tres modos de almacenamiento: Column-oriented Storage, Line Deposit y Coexistence of ranks. El modo predeterminado es Column-oriented Storage. El almacenamiento orientado a columnas es adecuado para consultas complejas en escenarios OLAP, el almacenamiento orientado a filas es adecuado para consultas de clave-valor (KV) basadas en la clave primaria (PK), y la coexistencia de filas y columnas es adecuada tanto para escenarios orientados a columnas como a filas. Para obtener más información, consulte Storage modes. |
|
Table Group |
Seleccione el nombre del |
|
Storage Policy |
Hologres ofrece dos políticas de almacenamiento para los datos: almacenamiento estándar (Thermal storage) y almacenamiento de acceso poco frecuente (Cold storage). El almacenamiento caliente es almacenamiento totalmente SSD y es el almacenamiento predeterminado de Hologres. Cumple con los requisitos de acceso a datos de baja latencia y alto rendimiento, y es la opción más eficaz y rentable para la mayoría de los escenarios. El almacenamiento frío es almacenamiento totalmente HDD y cumple con los requisitos de almacenamiento de bajo costo para datos a los que se accede con poca frecuencia. Es adecuado para conjuntos de datos muy grandes que no son sensibles a la latencia o a los que rara vez se accede. Para obtener más información, consulte Storage policies. |
|
Table Data Lifecycle |
Personalice el ciclo de vida máximo de los datos de la tabla dinámica. |
|
Binlog |
Habilite (replica) o deshabilite (none) la suscripción al Binlog de Hologres. Esta función está deshabilitada de forma predeterminada. Para obtener más información, consulte Subscribe to Hologres Binlog. |
|
Binlog lifecycle |
Después de habilitar (replica) la suscripción al Binlog de Hologres, establezca el ciclo de vida máximo del Binlog de Hologres almacenado. Para obtener más información, consulte Subscribe to Hologres Binlog. |
|
Field Properties |
Configuración de propiedades de columna. Configure la Distribution Column, la Event Time Column, la Clustering Key, la Bitmap Column y las Dictionary Encoding Columns para el Field Name correspondiente según las descripciones en pantalla. Para obtener más información, consulte Column properties. |