Cuando inspecciona, audita o depura tablas dinámicas en Hologres, necesita recuperar las definiciones DDL, listar todas las tablas dinámicas de una instancia, rastrear el linaje de datos, comprobar el consumo de almacenamiento y gestionar las tablas de estado que genera la actualización incremental. Esta página describe todas estas tareas.
|
Tarea |
Descripción |
|
Recupere la instrucción DDL de una tabla dinámica específica. |
|
|
Consulte todas las tablas dinámicas y sus modos de actualización. |
|
|
Rastree las dependencias ascendentes y descendentes mediante la consola o SQL. |
|
|
Compruebe el tamaño de almacenamiento de una tabla dinámica. |
|
|
Comprenda y supervise la tabla de estado generada para la actualización incremental. |
Consulte el esquema de una tabla dinámica
Utilice hg_dump_script para recuperar la instrucción DDL de una tabla dinámica.
SELECT hg_dump_script('[<schema_name>.]<table_name>');
Parámetros
|
Parámetro |
Obligatorio |
Descripción |
|
|
No |
El nombre del esquema que contiene la tabla dinámica. |
|
|
Sí |
El nombre de la tabla dinámica. |
Liste las tablas dinámicas de la instancia actual
La tabla del sistema hologres.hg_dynamic_table_properties almacena los metadatos de todas las tablas dinámicas de la instancia actual.
Para listar todas las tablas dinámicas y sus modos de actualización:
SELECT dynamic_table_name, property_value
FROM hologres.hg_dynamic_table_properties
WHERE property_key = 'refresh_mode';
Para consultar todos los metadatos de una tabla dinámica específica:
SELECT *
FROM hologres.hg_dynamic_table_properties
WHERE dynamic_table_name = '<dynamic_table_name>';
Columnas en hg_dynamic_table_properties
|
Columna |
Descripción |
|
|
El nombre de la tabla dinámica. |
|
|
El esquema que contiene la tabla dinámica. |
|
|
El nombre de la propiedad de metadatos. Por ejemplo, |
|
|
El valor de la propiedad. |
Consulte el linaje de datos
El linaje de datos muestra de qué tablas lee una tabla dinámica (ascendentes) y qué tablas o tablas dinámicas dependen de ella (descendentes). Esta información resulta útil para solucionar retrasos de actualización o evaluar el impacto de los cambios de esquema en un pipeline.
Visualización
Consulte el linaje como un gráfico interactivo en HoloWeb o DataWorks Data Map:
HoloWeb: En la consola de HoloWeb, vaya a Table Metadata Management > Dynamic Table Management. En la pestaña Lineage Information, consulte el gráfico de linaje de la tabla dinámica.
DataWorks Data Map: DataWorks Data Map recopila y muestra automáticamente el linaje de datos de las tablas dinámicas. Para obtener más información, consulte Data lineage.
Método con SQL
Todas las consultas de linaje utilizan la vista del sistema hologres.hg_dynamic_table_dependencies, que registra las dependencias ascendentes de cada tabla dinámica.
Columnas en hg_dynamic_table_dependencies
|
Columna |
Descripción |
|
|
El esquema que contiene la tabla dinámica. |
|
|
El nombre de la tabla dinámica. |
|
|
El esquema de la dependencia ascendente. |
|
|
El nombre de la dependencia ascendente. |
|
|
El tipo de dependencia. El valor |
Consulte el linaje de datos de una sola tabla dinámica
SELECT
d.*,
CASE WHEN k.dynamic_table_namespace IS NOT NULL THEN
'd'
ELSE
c.relkind
END
FROM
hologres.hg_dynamic_table_dependencies d
LEFT JOIN pg_namespace n ON n.nspname = d.table_namespace
LEFT JOIN pg_class c ON c.relnamespace = n.oid
AND c.relname = d.table_name
LEFT JOIN (
SELECT
dynamic_table_namespace,
dynamic_table_name
FROM
hologres.hg_dynamic_table_properties
GROUP BY
1,
2) k ON k.dynamic_table_namespace = d.table_namespace
AND k.dynamic_table_name = d.table_name
WHERE
d.dynamic_table_namespace = '<schema_name>'
AND d.dynamic_table_name = '<dynamic_table_name>'
AND d.dependency <> 'internal_table';
Consulte el linaje de datos de todas las tablas dinámicas
Elimine los filtros dynamic_table_namespace y dynamic_table_name para devolver las dependencias de todas las tablas dinámicas de la instancia:
SELECT
d.*,
CASE WHEN k.dynamic_table_namespace IS NOT NULL THEN
'd'
ELSE
c.relkind
END
FROM
hologres.hg_dynamic_table_dependencies d
LEFT JOIN pg_namespace n ON n.nspname = d.table_namespace
LEFT JOIN pg_class c ON c.relnamespace = n.oid
AND c.relname = d.table_name
LEFT JOIN (
SELECT
dynamic_table_namespace,
dynamic_table_name
FROM
hologres.hg_dynamic_table_properties
GROUP BY
1,
2) k ON k.dynamic_table_namespace = d.table_namespace
AND k.dynamic_table_name = d.table_name
WHERE
d.dependency <> 'internal_table';
Comprensión de base_table_type
La expresión CASE obtiene base_table_type de dos fuentes. Si la dependencia es también una tabla dinámica (presente en hg_dynamic_table_properties), el tipo es 'd'. De lo contrario, el tipo proviene de pg_class.relkind. A continuación se describen los valores posibles.
|
Valor |
Tipo de tabla |
|
|
Tabla ordinaria |
|
|
Vista |
|
|
Vista materializada |
|
|
Tabla externa |
|
|
Tabla dinámica |
Consulte los detalles de almacenamiento
Utilice la función hologres.hg_relation_size para consultar el tamaño de almacenamiento y los detalles de una tabla dinámica. Para obtener más información, consulte View table storage details.
Gestione las tablas de estado
Cuando una tabla dinámica utiliza la actualización incremental, Hologres crea automáticamente una tabla de estado en la capa subyacente para acelerar el cálculo de datos. Esta tabla de estado almacena los resultados de agregación.
Comportamientos clave:
La tabla de estado se almacena en el grupo de tablas predeterminado y no admite resharding.
Si cambia el modo de actualización de incremental a completo, la tabla de estado se vacía de forma predeterminada.
Para obtener más información sobre la actualización incremental y completa, consulte Dynamic Table.
Consulte el uso de almacenamiento de la tabla de estado
Ejecute el siguiente comando SQL para obtener el tamaño de almacenamiento de la tabla de estado. El almacenamiento se factura a la misma tarifa que una tabla estándar. Para obtener más información, consulte Descripción general de facturación.
SELECT pg_size_pretty(hologres.hg_dynamic_table_state_size('<dynamic_table_name>'));