Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:
Databricks SQL
Databricks Runtime
Utilice la ANALYZE TABLE instrucción para:
- Calcular métricas de almacenamiento sobre una tabla específica o
- Recopile estadísticas estimadas sobre una tabla específica o todas las tablas de un esquema especificado.
Ejecute COMPUTE STORAGE METRICS en una tabla para devolver el tamaño total de almacenamiento.
Por separado, el optimizador de consultas usa estadísticas estimadas para generar un plan de consulta óptimo. La optimización predictiva se ejecuta ANALYZE automáticamente en tablas administradas por el catálogo de Unity para recopilar esta información. Databricks recomienda habilitar la optimización predictiva para todas las tablas administradas de Unity Catalog para simplificar el mantenimiento de datos y reducir los costos de almacenamiento. Consulte Optimización predictiva para tablas administradas de Unity Catalog.
Sintaxis
ANALYZE TABLE table_name COMPUTE STORAGE METRICS
ANALYZE TABLE table_name [ PARTITION clause ]
COMPUTE [ DELTA ] STATISTICS [ NOSCAN | FOR COLUMNS col1 [, ...] | FOR ALL COLUMNS ]
ANALYZE TABLES [ { FROM | IN } schema_name ] COMPUTE STATISTICS [ NOSCAN ]
Parámetros
-
Identifica la tabla que se va a analizar. El nombre no debe incluir una especificación temporal ni una especificación o ruta de acceso. Si no se encuentra la tabla, Azure Databricks genera un error TABLE_OR_VIEW_NOT_FOUND.
-
Puede limitar el comando a un subconjunto de particiones.
Esta cláusula no es compatible con tablas de Delta Lake.
DELTASe aplica a:
Databricks SQL
Databricks Runtime 14.3 LTS y versiones posterioresVuelve a calcular las estadísticas almacenadas en el registro Delta para las columnas configuradas para la recopilación de estadísticas en una tabla Delta.
Cuando se especifica la palabra clave
DELTA, no se recopilan estadísticas normales del optimizador de consultas.Databricks recomienda ejecutar
ANALYZE TABLE table_name COMPUTE DELTA STATISTICSdespués de configurar nuevas columnas a fin de omitir datos para actualizar las estadísticas de todas las filas de una tabla. Para optimizar el rendimiento, ejecuteANALYZE TABLE table_name COMPUTE STATISTICSa fin de actualizar el plan de consulta una vez completada la actualización del registro Delta.[ NOSCAN | FOR COLUMNS col [, ...] | PARA TODOS COLUMNS ]
Si no se especifica ninguna opción de análisis,
ANALYZE TABLErecopila el número de filas y el tamaño de la tabla en bytes.NOSCAN
Recopile solo el tamaño de la tabla en bytes (que no requiere examinar toda la tabla).
FOR COLUMNS col [, ...] | PARA TODOS COLUMNS
Recopila estadísticas de columna para cada columna especificada o, como alternativa, para cada columna, así como estadísticas de tabla.
Las estadísticas de columna no se admiten en combinación con la cláusula
PARTITION.
{ FROM
|IN } schema_nameEspecifica el nombre del esquema que se va a analizar. Sin un nombre de esquema,
ANALYZE TABLESrecopila todas las tablas del esquema actual para el que el usuario actual tiene permiso de analizar.
MÉTRICAS PARA CÁLCULO DE ALMACENAMIENTO
Se aplica a:
Databricks Runtime 18.0 y versiones posteriores
El ANALYZE TABLE … COMPUTE STORAGE METRICS comando calcula las métricas de tamaño de almacenamiento total de una tabla. A diferencia de ANALYZE TABLE … COMPUTE STATISTICS lo que optimiza el rendimiento de las consultas, este comando proporciona un desglose detallado del almacenamiento para el análisis y la optimización de costos.
Description
Calcula las métricas de tamaño de almacenamiento total para una tabla específica. Este comando devuelve información de almacenamiento completa, incluidos bytes totales, bytes activos, bytes vacíos y bytes de desplazamiento de tiempo, junto con el número asociado de archivos para cada categoría.
Use este comando para identificar tablas grandes o sin usar, optimizar los costos de almacenamiento y comprender por qué el tamaño total de almacenamiento difiere del tamaño de tabla activo. Esto es especialmente útil para los administradores de plataformas que necesitan analizar patrones de almacenamiento en varias tablas o realizar un seguimiento de los cambios de almacenamiento a lo largo del tiempo.
Métricas de salida
El comando devuelve las siguientes métricas en una sola fila:
| Campo | Descripción |
|---|---|
total_bytes |
Tamaño total de almacenamiento de la tabla. Esto equivale al tamaño del registro delta + bytes activos + bytes aspirables + bytes de viaje en el tiempo. |
total_num_files |
Número total de archivos, incluidos archivos de registro delta, archivos activos, archivos limpiables y archivos de viaje en el tiempo. |
active_bytes |
Tamaño de los archivos de datos a los que hace referencia activamente la tabla (igual que sizeInBytes). |
num_active_files |
Número total de archivos a los que hace referencia activamente la tabla. |
vacuumable_bytes |
Tamaño de los datos que se pueden quitar mediante la ejecución de VACUUM o habilitando la optimización predictiva. |
num_vacuumable_files |
Número de archivos aspirables. |
time_travel_bytes |
El tamaño de los datos históricos usados para reversiones y operaciones de viaje en el tiempo. También conocido como bytes de lápida o bytes a prueba de fallos. |
num_time_travel_files |
Número de archivos usados para el viaje en el tiempo. |
Detalles
- El comando usa un enfoque de lista recursiva para calcular la información de almacenamiento. El tiempo de ejecución suele estar en cuestión de minutos, pero puede tardar hasta varias horas en tablas muy grandes.
- Este comando funciona tanto para tablas gestionadas por el catálogo de Unity como para tablas externas.
- Las métricas de almacenamiento se calculan en el momento en que se ejecuta el comando y no se almacenan en el catálogo de Unity ni se devuelven mediante
DESCRIBE EXTENDED. - Para realizar un seguimiento de los cambios de almacenamiento a lo largo del tiempo, ejecute este comando periódicamente y almacene los resultados en una tabla. Ejecute este comando en un bucle entre varias tablas para analizar los patrones de almacenamiento en todo el patrimonio de datos.
Consideraciones sobre el tipo de tabla
-
Vistas materializadas y tablas de streaming:
total_bytesincluye el tamaño de la tabla y los metadatos asociados. Laactive_bytesmétrica excluye las partes que se pueden recorrer en vacío y en el tiempo de la tabla. -
Clones superficiales:
total_bytesincluye solo los propios metadatos del clon y los archivos de registro delta, excluyendo los archivos de tabla de origen.active_byteses igual a cero, ya que el clon hace referencia a los archivos de datos de la tabla de origen. - Tablas convertidas: Las tablas que se han convertido recientemente de externas a administradas pueden incluir datos en ubicaciones administradas y externas. Por ejemplo, los datos permanecen en la ubicación externa durante la ventana de reversión. Consulte Conversión de una tabla externa en una tabla de catálogo de Unity administrada.
Ejemplos
En los ejemplos siguientes se muestra cómo usar ANALYZE TABLE para calcular las métricas de almacenamiento y recopilar estadísticas.
Ejemplos de MÉTRICAS DE ALMACENAMIENTO DE COMPUTACIÓN
> ANALYZE TABLE main.my_schema.my_table COMPUTE STORAGE METRICS;
total_bytes total_num_files active_bytes num_active_files vacuumable_bytes num_vacuumable_files time_travel_bytes num_time_travel_files
----------- --------------- ------------ ---------------- ---------------- -------------------- ----------------- ---------------------
5368709120 1250 4294967296 1000 805306368 150 268435456 100
La salida muestra:
- Almacenamiento total: 5,37 GB en 1250 archivos
- Datos activos: 4,29 GB en 1000 archivos (versión de tabla actual)
- Datos liberables: 805 MB en 150 archivos (se pueden reclamar con VACUUM)
- Datos de viaje en tiempo: 268 MB en 100 archivos (para consultas históricas)
Ejemplos de cálculo de estadísticas
> CREATE TABLE students (name STRING, student_id INT) PARTITIONED BY (student_id);
> INSERT INTO students PARTITION (student_id = 111111) VALUES ('Mark');
> INSERT INTO students PARTITION (student_id = 222222) VALUES ('John');
> ANALYZE TABLE students COMPUTE STATISTICS NOSCAN;
> DESC EXTENDED students;
col_name data_type comment
-------------------- -------------------- -------
name string null
student_id int null
... ... ...
Statistics 864 bytes
... ... ...
> ANALYZE TABLE students COMPUTE STATISTICS;
> DESC EXTENDED students;
col_name data_type comment
-------------------- -------------------- -------
name string null
student_id int null
... ... ...
Statistics 864 bytes, 2 rows
... ... ...
-- Note: ANALYZE TABLE .. PARTITION is not supported for Delta tables.
> ANALYZE TABLE students PARTITION (student_id = 111111) COMPUTE STATISTICS;
> DESC EXTENDED students PARTITION (student_id = 111111);
col_name data_type comment
-------------------- -------------------- -------
name string null
student_id int null
... ... ...
Partition Statistics 432 bytes, 1 rows
... ... ...
OutputFormat org.apache.hadoop...
> ANALYZE TABLE students COMPUTE STATISTICS FOR COLUMNS name;
> DESC EXTENDED students name;
info_name info_value
-------------- ----------
col_name name
data_type string
comment NULL
min NULL
max NULL
num_nulls 0
distinct_count 2
avg_col_len 4
max_col_len 4
histogram NULL
> ANALYZE TABLES IN school_schema COMPUTE STATISTICS NOSCAN;
> DESC EXTENDED teachers;
col_name data_type comment
-------------------- -------------------- -------
name string null
teacher_id int null
... ... ...
Statistics 1382 bytes
... ... ...
> DESC EXTENDED students;
col_name data_type comment
-------------------- -------------------- -------
name string null
student_id int null
... ... ...
Statistics 864 bytes
... ... ...
> ANALYZE TABLES COMPUTE STATISTICS;
> DESC EXTENDED teachers;
col_name data_type comment
-------------------- -------------------- -------
name string null
teacher_id int null
... ... ...
Statistics 1382 bytes, 2 rows
... ... ...
> DESC EXTENDED students;
col_name data_type comment
-------------------- -------------------- -------
name string null
student_id int null
... ... ...
Statistics 864 bytes, 2 rows
... ... ...
> ANALYZE TABLE some_delta_table COMPUTE DELTA STATISTICS;