Ahora puede calcular las estadísticas de nivel de columna de Azure Data Lake Storage Conjuntos de datos de (ADLS) con COMPUTE STATISTICS
Comando SQL. Los comandos SQL que calculan las estadísticas del conjunto de datos son una extensión del ANALYZE TABLE
comando. Detalles completos sobre la ANALYZE TABLE
El comando se encuentra en Documentación de referencia SQL.
Las estadísticas calculadas se almacenan en tablas temporales que tienen persistencia en el nivel de sesión. Puede acceder a los resultados de los cálculos en cualquier momento durante esa sesión. No se puede acceder a ellas en diferentes sesiones de PSQL.
Para ver las estadísticas que se calcularon con ANALYZE TABLE COMPUTE STATISTICS
, puede utilizar una consulta SELECT en el nombre del alias o el ID de estadísticas. También puede limitar el ámbito del análisis estadístico a todo el conjunto de datos, a un subconjunto de un conjunto de datos, a todas las columnas o a un subconjunto de columnas.
El COMPUTE STATISTICS
, FILTERCONTEXT
, y FOR COLUMNS
Los comandos de no son compatibles con las tablas de almacenamiento acelerado. Estas extensiones para ANALYZE TABLE
Actualmente, los comandos solo son compatibles con tablas ADLS. Para obtener más información, consulte la SECCIÓN ANALIZAR TABLA de la guía de sintaxis SQL.
Esta guía le ayuda a estructurar las consultas para que pueda calcular las estadísticas de columna de un conjunto de datos de ADLS. Con estos comandos, puede ver las estadísticas generadas en la sesión a través de un cliente SQL mediante una consulta SQL.
Se han añadido construcciones adicionales a ANALYZE TABLE
que le permite calcular estadísticas para un subconjunto de un conjunto de datos y para determinadas columnas. Para calcular las estadísticas del conjunto de datos, debe utilizar el ANALYZE TABLE <tableName> COMPUTE STATISTICS
formato.
El comportamiento predeterminado calcula las estadísticas de conjunto de datos completo y para todas las columnas. Para calcular las estadísticas de todas las columnas, debe utilizar el formato de consulta ANALYZE TABLE COMPUTE STATISTICS
. Usted es no se recomienda utilizar la variable COMPUTE STATISTICS
sin filtros en un conjunto de datos ADLS, ya que el tamaño del conjunto de datos puede ser muy grande (potencialmente petabytes de datos). En su lugar, siempre debe considerar la ejecución del comando analyze mediante FILTERCONTEXT
y una lista de columnas especificada. Consulte las secciones sobre limitación de columnas analizadas y adición de una condición de filtro para obtener más información.
El ejemplo que se muestra a continuación calcula las estadísticas de adc_geometric
conjunto de datos y para todo columnas en el conjunto de datos.
ANALYZE TABLE adc_geometric COMPUTE STATISTICS;
El COMPUTE STATISTICS
El comando no admite los tipos de datos de matriz o asignación. Puede establecer un skip_stats_for_complex_datatypes
indicador que debe notificarse o que debe descartarse si el marco de datos de entrada tiene columnas con matrices y tipos de datos de asignación. De forma predeterminada, el indicador se establece en true. Para habilitar las notificaciones o los errores, utilice el siguiente comando: SET skip_stats_for_complex_datatypes = false
.
Dado que los resultados de los cálculos pueden ser una gran cantidad de datos, no es razonable devolver los datos calculados directamente en la salida de la consola. Aunque los nombres de alias son opcionales, se recomienda utilizarlos como práctica recomendada al calcular las estadísticas. Proporcione un nombre de alias en la instrucción para hacer referencia descriptiva a los resultados en las consultas SQL. Como alternativa, un generado automáticamente Statistics ID
se genera y utiliza para almacenar la información calculada.
El ejemplo siguiente almacena las estadísticas calculadas de salida en la variable alias_name
para referencia posterior. El nombre de alias utilizado en la consulta está disponible para referencia en cuanto la variable ANALYZE TABLE
se ha ejecutado el comando.
ANALYZE TABLE adc_geometric COMPUTE STATISTICS AS alias_name;
El resultado del ejemplo anterior es SUCCESSFULLY COMPLETED, alias_name
. La salida de la consola no muestra las estadísticas en la respuesta al comando analyze table compute statistics. Para ver los resultados detallados, debe utilizar una consulta SELECT en el nombre del alias o el ID de estadísticas.
Si no proporciona un nombre de alias por adelantado, el Servicio de consultas generará automáticamente un nombre para el Statistics ID
que sigue el formato de <tableName_stats_{incremental_number}>
. Si se proporciona un nombre de alias, este aparece en la Statistics ID
columna.
Ejemplo de salida de un COMPUTE STATISTICS
La consulta es la siguiente:
| Statistics ID |
| --------------------- |
| adc_geometric_stats_1 |
(1 row)
Puede hacer lo siguiente consultar las estadísticas calculadas directamente haciendo referencia al Statistics ID
. La instrucción de ejemplo siguiente le permite ver el resultado en su totalidad cuando se utiliza con el Statistics ID
o el nombre del alias.
SELECT * FROM adc_geometric_stats_1;
El resultado de las estadísticas calculadas puede ser similar al ejemplo siguiente.
columnName | mean | max | min | standardDeviation | approxDistinctCount | nullCount | dataType
------------------------------------------------------------+----------------+----------------+----------------+-------------------+---------------------+-----------+-----------
marketing.trackingcode | 0.0 | 0.0 | 0.0 | 0.0 | 1213.0 | 0 | String
_experience.analytics.customdimensions.evars.evar13 | 0.0 | 0.0 | 0.0 | 0.0 | 8765.0 | 20 | String
_experience.analytics.customdimensions.evars.evar74 | 0.0 | 0.0 | 0.0 | 0.0 | 11.0 | 0 | String
web.webpagedetails.name | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0 | String
_experience.analytics.event1to100.event8.value | 5.0 | 9077.0 | 123.0 | 10.0 | 1001.0 | 80 | Double
search.ispaid | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0 | Boolean
commerce.productlistviews.value | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 10 | Double
device.typeid | 0.0 | 0.0 | 0.0 | 0.0 | 0.0 | 10 | String
commerce.purchases.value | 765.0 | 98760.0 | -980.0 | 32.0 | 99.0 | 90 | Double
_experience.analytics.customdimensions.props.prop45 | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0 | String
environment.browserdetails.javaenabled | 0.0 | 0.0 | 0.0 | 0.0 | 1.0 | 0 | Boolean
timestamp | 0.0 | 0.0 | 0.0 | 0.0 | 98.0 | 3 | Timestamp
(12 rows)
Puede usar el complemento SHOW STATISTICS
para mostrar los metadatos de todas las estadísticas temporales generadas en la sesión. Este comando puede ayudarle a refinar el ámbito del análisis estadístico.
Un ejemplo de salida de SHOW STATISTICS
se ve a continuación.
statsId | tableName | columnSet | filterContext | timestamp
----------------------+---------------+-----------+-----------------------------+--------------------
adc_geometric_stats_1 | adc_geometric | (age) | | 25/06/2023 09:22:26
demo_table_stats_1 | demo_table | (*) | ((age > 25)) | 25/06/2023 12:50:26
age_stats | castedtitanic | (age) | ((age > 25) AND (age < 40)) | 25/06/2023 09:22:26
A continuación se proporciona una descripción de los nombres de las columnas de metadatos.
El nombre de la columna | Descripción |
---|---|
statsId |
Este ID hace referencia a la tabla de estadísticas temporales generada por el COMPUTE STATISTICS comando. |
tableName |
La tabla original utilizada para el análisis. |
columnSet |
Una lista de las columnas elegidas específicamente para el análisis. Un valor vacío indica que se analizaron todas las columnas. Consulte la sección sobre limitar columnas para obtener más información. |
filterContext |
Una lista de los filtros aplicados al análisis. |
timestamp |
Cualquier filtro cronológico aplicado al análisis de datos para centrarse en un periodo específico. Consulte la sección condición de filtro de marca de tiempo para obtener más información. |
Puede utilizar el ID de estadísticas o el nombre de alias para buscar las estadísticas calculadas con una instrucción SELECT en cualquier momento dentro de esa sesión. El ID de estadísticas y las estadísticas generadas solo son válidas para esta sesión en particular y no se puede acceder a ellas desde distintas sesiones de PSQL. Las estadísticas calculadas no son persistentes actualmente. Consulte la sección sobre cómo ver el resultado de las estadísticas calculadas para obtener más información.
Para enfocar el análisis, puede calcular las estadísticas de columnas de conjuntos de datos concretas haciendo referencia a ellas por su nombre. Utilice el FOR COLUMNS (<col1>, <col2>)
sintaxis para dirigirse a columnas específicas. El ejemplo siguiente calcula las estadísticas de las columnas commerce
, id
, y timestamp
para el conjunto de datos tableName
.
ANALYZE TABLE tableName COMPUTE STATISTICS FOR columns (commerce, id, timestamp);
Puede calcular las estadísticas de cualquier nivel raíz o columna anidada. En el siguiente ejemplo se muestran estas referencias.
ANALYZE TABLE adcgeometric COMPUTE STATISTICS FOR columns (commerce, commerce.purchases.value, commerce.productListAdds.value);
Para enfocar el análisis de las columnas según la cronología, puede agregar una condición de filtro de marca de tiempo. Esta condición se puede utilizar para filtrar los datos históricos o enfocar el análisis de datos en un período específico. El FILTERCONTEXT
El comando calcula las estadísticas de un subconjunto del conjunto de datos en función de la condición de filtro proporcionada.
En el ejemplo siguiente, las estadísticas se calculan en todas las columnas del conjunto de datos tableName
, donde la marca de tiempo de la columna tiene valores entre el rango especificado de 2023-04-01 00:00:00
y 2023-04-05 00:00:00
.
ANALYZE TABLE tableName FILTERCONTEXT (timestamp >= to_timestamp('2023-04-01 00:00:00') and timestamp <= to_timestamp('2023-04-05 00:00:00')) COMPUTE STATISTICS FOR ALL COLUMNS;
Puede combinar el límite de columnas y el filtro para crear consultas computacionales altamente específicas para las columnas del conjunto de datos. Por ejemplo, la siguiente consulta calcula las estadísticas de las columnas commerce
, id
, y timestamp
para el conjunto de datos tableName
, donde la marca de tiempo de la columna tiene valores entre el rango especificado de 2023-04-01 00:00:00
y 2023-04-05 00:00:00
.
ANALYZE TABLE tableName FILTERCONTEXT (timestamp >= to_timestamp('2023-04-01 00:00:00') and timestamp <= to_timestamp('2023-04-05 00:00:00')) COMPUTE STATISTICS FOR columns (commerce, id, timestamp);
Al leer este documento, ahora comprende mejor cómo generar estadísticas de nivel de columna a partir de un conjunto de datos ADLS mediante una consulta SQL. Se recomienda leer el Guía de sintaxis de SQLl para descubrir más características del servicio de consultas de Adobe Experience Platform.