

# Generación de estadísticas de columnas bajo demanda
<a name="column-stats-on-demand"></a>

Puede ejecutar la tarea de estadísticas de columnas para la tarea de tablas de AWS Glue Data Catalog bajo demanda sin una programación establecida. Esta opción resulta útil para realizar un análisis ad hoc o cuando es necesario calcular las estadísticas de forma inmediata.

Siga estos pasos para generar las estadísticas de columnas bajo demanda para el catálogo de datos mediante la consola de AWS Glue o AWS CLI.

------
#### [ Consola de administración de AWS ]

**Generación de estadísticas de columnas mediante la consola**

1. Inicie sesión en la consola de AWS Glue en [https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/). 

1. Seleccione las tablas del Data Catalog.

1.  Seleccione una tabla de la lista. 

1. Seleccione **Generar estadísticas** en el menú **Acciones**.

   También puede elegir la opción **Generar**, **Generar bajo demanda** en la pestaña **Estadísticas de columnas**, en la sección inferior de la página de **Tabla**.

1. Siga los pasos 7 a 11 de [Generación de estadísticas de columnas según una programación](generate-column-stats.md) para generar estadísticas de columnas para la tabla.

1. En la página **Generar estadísticas**, especifique las siguientes opciones:   
![\[La captura de pantalla muestra las opciones disponibles para generar estadísticas de columnas.\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/images/generate-column-stats.png)
   + **Todas las columnas**: elija esta opción para generar estadísticas para todas las columnas de la tabla.
   + **Columnas seleccionadas**: elija esta opción para generar estadísticas para columnas específicas. Puede seleccionar las columnas en la lista desplegable.
   + **Rol de IAM**: elija **Crear un nuevo rol de IAM** que tenga las políticas de permisos necesarias para ejecutar la tarea de generación de estadísticas de columnas. Elija Ver detalles del permiso para revisar la declaración de la política. También puede elegir un rol de IAM de la lista. Para obtener más información sobre los permisos necesarios, consulte [Requisitos previos para generar estadísticas de columnas](column-stats-prereqs.md).

     AWS Glue asume los permisos del rol que se especifican para generar estadísticas. 

     Para obtener más información sobre cómo proporcionar roles para AWS Glue, consulte [Políticas basadas en identidad para AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/security_iam_service-with-iam.html#security_iam_service-with-iam-id-based-policies).
   + (Opcional) A continuación, elija una configuración de seguridad para habilitar el cifrado en reposo de los registros.
   + **Filas de muestra**: elija solo un porcentaje específico de filas de la tabla para generar estadísticas. El valor predeterminado es Todas las filas. Utilice las flechas hacia arriba y hacia abajo para aumentar o disminuir el valor porcentual.
**nota**  
Se recomienda incluir todas las filas de la tabla para calcular estadísticas precisas. Utilice filas de muestra para generar estadísticas de columnas solo cuando los valores aproximados sean aceptables.

   Elija **Generar estadísticas** para ejecutar la tarea.

------
#### [ AWS CLI ]

Este comando activará la ejecución de una tarea de estadísticas de columnas para la tabla especificada. Debe proporcionar el nombre de la base de datos, el nombre de la tabla, un rol de IAM con permisos para generar estadísticas y, de forma opcional, proporcionar los nombres de las columnas y un porcentaje del tamaño de la muestra para el cálculo de las estadísticas.

```
aws glue start-column-statistics-task-run \ 
    --database-name 'database_name \ 
    --table-name 'table_name' \ 
    --role 'arn:aws:iam::123456789012:role/stats-role' \
    --column-name 'col1','col2'  \
    --sample-size 10.0
```

Este comando iniciará una tarea para generar estadísticas de columnas para la tabla especificada. 

------

## Actualización de estadísticas de columnas bajo demanda
<a name="update-column-stats-on-demand"></a>

 Mantener las estadísticas de las columnas actualizadas es fundamental para que el optimizador de consultas genere planes de ejecución eficientes, lo que garantiza un mejor rendimiento de las consultas, una reducción del consumo de recursos y un mejor rendimiento general del sistema. Este proceso es especialmente importante después de cambios importantes en los datos, como cargas masivas o modificaciones exhaustivas, que pueden hacer que las estadísticas existentes queden obsoletas. 

Debe ejecutar explícitamente la tarea **Generar estadísticas** desde la consola AWS Glue para actualizar las estadísticas de las columnas. El catálogo de datos no actualiza automáticamente las estadísticas.

Si no utiliza la característica de generación de estadísticas de AWS Glue en la consola, puede actualizar manualmente las estadísticas de las columnas mediante la operación de API [UpdateColumnStatisticsForTable](https://docs.aws.amazon.com/glue/latest/webapi/API_UpdateColumnStatisticsForTable.html) o AWS CLI. En el siguiente ejemplo, se muestra cómo actualizar las estadísticas de las columnas mediante AWS CLI.

```
aws glue update-column-statistics-for-table --cli-input-json:

{
    "CatalogId": "111122223333",
    "DatabaseName": "database_name",
    "TableName": "table_name",
    "ColumnStatisticsList": [
        {
            "ColumnName": "col1",
            "ColumnType": "Boolean",
            "AnalyzedTime": "1970-01-01T00:00:00",
            "StatisticsData": {
                "Type": "BOOLEAN",
                "BooleanColumnStatisticsData": {
                    "NumberOfTrues": 5,
                    "NumberOfFalses": 5,
                    "NumberOfNulls": 0
                }
            }
        }
    ]
}
```