Apache Paimon utiliza tablas del sistema para exponer metadatos e información sobre el consumo de datos de cada tabla de Paimon. Consulte estas tablas mediante SQL para inspeccionar instantáneas, historial de esquemas, particiones, archivos y etiquetas, o bien para consumir datos de cambios de manera más eficiente.
Las tablas del sistema se dividen en dos categorías:
Tablas de metadatos: snapshots, schemas, options, partitions, files, tags
Tablas de consumo de datos: tabla optimizada para lectura, tabla de registro de auditoría
Tablas de metadatos
Tabla snapshots
La tabla snapshots ($snapshots) registra información sobre cada instantánea, incluido su ID, fecha de creación y recuentos de registros.
SELECT * FROM mycatalog.mydb.`mytbl$snapshots`;
|
Columna |
Tipo de dato |
Descripción |
|
|
Long |
ID de la instantánea. |
|
|
Long |
ID del esquema que utiliza esta instantánea. Cruce esta información con la tabla schemas para obtener las definiciones de los campos. |
|
|
Timestamp |
Hora en que se creó la instantánea. |
|
|
Long |
Total de registros en los archivos de datos a los que apunta esta instantánea. |
|
|
Long |
Registros agregados en comparación con la instantánea anterior. |
|
|
Long |
Registros de changelog generados en comparación con la instantánea anterior. |
total_record_count no refleja el recuento lógico de registros en la tabla de Paimon. Los archivos de datos se compactan en memoria antes de capturarse en una instantánea.
Tabla schemas
La tabla schemas ($schemas) registra cada versión del esquema de una tabla de Paimon. Cada vez que modifica el esquema mediante ALTER TABLE, CREATE TABLE AS o CREATE DATABASE AS, se escribe un nuevo registro en esta tabla.
SELECT * FROM mycatalog.mydb.`mytbl$schemas`;
|
Columna |
Tipo de dato |
Descripción |
|
|
Long |
ID de la versión del esquema. |
|
|
String |
Nombre y tipo de dato de cada columna. |
|
|
String |
Nombre de la clave de partición. |
|
|
String |
Nombre de la clave primaria. |
|
|
String |
Valores actuales de las opciones de la tabla. |
|
|
String |
Comentario sobre la tabla. |
|
|
Timestamp |
Hora de la última modificación del esquema. |
Tabla options
La tabla options ($options) muestra la configuración actual de todas las opciones de tabla establecidas explícitamente.
SELECT * FROM mycatalog.mydb.`mytbl$options`;
|
Columna |
Tipo de dato |
Descripción |
|
|
String |
Nombre de la opción de la tabla. |
|
|
String |
Valor de la opción de la tabla. |
Las opciones que no aparecen en esta tabla utilizan sus valores predeterminados.
Tabla partitions
La tabla partitions ($partitions) muestra las particiones de una tabla de Paimon junto con sus recuentos de registros y tamaños totales de archivo.
SELECT * FROM mycatalog.mydb.`mytbl$partitions`;
|
Columna |
Tipo de dato |
Descripción |
|
|
String |
Partición en formato |
|
|
Long |
Total de registros en la partición. |
|
|
Long |
Tamaño total de los archivos en la partición, en bytes. Solo se cuentan los archivos de datos de la instantánea actual. |
record_count no refleja el recuento lógico de registros. Los archivos de datos se compactan en memoria antes de capturarse en una instantánea.
Tabla files
La tabla files ($files) enumera todos los archivos de datos a los que apunta la instantánea actual, incluido su formato, recuento de registros y tamaño.
Consulte los archivos de la instantánea más reciente:
SELECT * FROM mycatalog.mydb.`mytbl$files`;
Consulte los archivos de una instantánea específica (por ejemplo, la instantánea con ID 5):
SELECT * FROM mycatalog.mydb.`mytbl$files` /*+ OPTIONS('scan.snapshot-id'='5') */;
|
Columna |
Tipo de dato |
Descripción |
|
|
String |
Partición que contiene el archivo, en formato |
|
|
Integer |
Bucket que contiene el archivo. Aplica únicamente a tablas de clave primaria que usan modo de bucket fijo. |
|
|
String |
Ruta del archivo. |
|
|
String |
Formato del archivo. |
|
|
Long |
ID del esquema que utiliza este archivo. Cruce esta información con la tabla schemas para obtener las definiciones de los campos. |
|
|
Integer |
Nivel LSM (log-structured merge-tree) del archivo. Aplica únicamente a tablas de clave primaria. Un valor de |
|
|
Long |
Número de registros en el archivo. |
|
|
Long |
Tamaño del archivo, en bytes. |
La tabla files solo abarca los archivos de datos de la instantánea consultada. No se incluyen los archivos de datos históricos a los que dicha instantánea no hace referencia.
Tabla tags
La tabla tags ($tags) registra información sobre las etiquetas, incluida la instantánea asociada a cada una.
SELECT * FROM mycatalog.mydb.`mytbl$tags`;
|
Columna |
Tipo de dato |
Descripción |
|
|
String |
Nombre de la etiqueta. |
|
|
Long |
ID de la instantánea asociada a la etiqueta. |
|
|
Long |
ID del esquema que utiliza la etiqueta. Cruce esta información con la tabla schemas para obtener las definiciones de los campos. |
|
|
Timestamp |
Hora en que se creó la instantánea asociada. |
|
|
Long |
Número de registros en los archivos de datos. |
Tablas de consumo de datos
Tabla optimizada para lectura
Si utiliza una tabla de clave primaria y desea mejorar la eficiencia de lecturas por lotes o consultas OLAP ad hoc, puede consumir datos desde la tabla optimizada para lectura ($ro). A diferencia de una consulta directa a la tabla, que compacta los archivos de datos en memoria antes de devolver resultados, $ro omite ese paso al escanear únicamente archivos ya compactados. Esto elimina la sobrecarga de compactación y acelera las lecturas, aunque es posible que los resultados no incluyan los archivos pequeños sin compactar más recientes.
Para compactar archivos pequeños a intervalos regulares y equilibrar el throughput de escritura, el rendimiento de lectura y la latencia de datos, configure el siguiente parámetro:
|
Parámetro |
Tipo de dato |
Predeterminado |
Descripción |
|
|
Duration |
Ninguna |
Intervalo en el que se compactan los archivos pequeños. Establezca este valor en más de |
SELECT * FROM mycatalog.mydb.`mytbl$ro`;
Tabla de registro de auditoría
Utilice la tabla de registro de auditoría ($audit_log) cuando necesite rastrear el tipo exacto de operación detrás de cada registro; por ejemplo, para depurar cambios inesperados en los datos o crear canalizaciones descendentes de datos de cambios.
En comparación con la tabla original, la tabla de registro de auditoría inserta una columna rowkind al inicio de cada registro para indicar el tipo de operación:
|
**Valor de |
Operación |
|
|
Inserción |
|
|
Actualización (antes) |
|
|
Actualización (después) |
|
|
Eliminación |
Todos los registros devueltos por la tabla de registro de auditoría tienen un rowkind de +I (inserción), ya que la tabla en sí solo agrega registros.
SELECT * FROM mycatalog.mydb.`mytbl$audit_log`;
Referencias
Para consultar la estructura completa de cada tabla del sistema, consulte la documentación de Apache Paimon.