Todos los productos
Search
Centro de documentos

DataWorks:Uso de tablas dinámicas de Hologres

Última actualización: Sep 04, 2026

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.

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:

  1. 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 Shortcuts > Data Studio en la columna Actions.

  2. En el panel de navegación izquierdo, haga clic en image para ir al módulo Data Directory.

  3. 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 image 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.

Importante

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

  1. 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".

  2. En la sección Field Information, en la pestaña Data Generation SQL, escriba la consulta SELECT que 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;
    Nota

    Introduzca únicamente la sentencia SELECT. No es necesario incluir el comando DDL CREATE 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.

  3. 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.

  4. (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

  1. Tras confirmar que todas las configuraciones son correctas, haga clic en Publish en la parte superior de la página.

  2. 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

  1. Introduzca la información básica:

    • Dynamic table name: dwd_user_new_user_detail_di

    • Description: Estadísticas detalladas diarias de nuevos usuarios

  2. 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áusula WHERE, 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;
  3. 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.

  1. En la sección Partition Field Information, haga clic en la lista desplegable Partition Column.

  2. Seleccione la nueva columna ds como 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-dd para crear particiones por día, lo cual coincide con los valores DATE de la clave de partición ds.

    • 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

  1. Expanda la tabla dwd_user_new_user_detail_di. Aparecerán las subtablas de partición creadas según la fecha, como 2026-02-27.

  2. 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');
  3. 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');
  4. 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.

Importante

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 SELECT que 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 SELECT cumple 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 TIMESTAMPTZ y selecciona el formato yyyy-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 Table Group que se genera al crear una tabla interna en el origen de datos de Hologres. Para obtener más información, consulte Table groups.

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.