En este documento, se describe la calidad automática de los datos de Dataplex, que te permite definir y medir la calidad de tus datos. Puedes automatizar el análisis de datos, validarlos con reglas definidas y registrar alertas si tus datos no cumplen con los requisitos de calidad. Puedes administrar las implementaciones y las reglas de calidad de los datos como código, lo que mejora la integridad de las canalizaciones de producción de datos.
Para comenzar, usa las recomendaciones de reglas de generación de perfiles de datos de Dataplex o compila reglas personalizadas en la consola de Google Cloud. Dataplex proporciona supervisión, solución de problemas y alertas de Cloud Logging que se integran en la calidad de datos automática de Dataplex.
Modelo conceptual
Un análisis de datos es un trabajo de Dataplex que muestra datos de
BigQuery y Cloud Storage y, luego, infiere varios tipos de
metadatos. Para medir la calidad de una tabla mediante la calidad automática de los datos, debes crear un objeto DataScan
de tipo data quality
. El análisis se ejecuta en una sola tabla de BigQuery. El análisis utiliza recursos en un proyecto de usuario de Google, por lo que no necesitas configurar tu propia infraestructura.
La creación y el uso de un análisis de calidad de los datos consta de los siguientes pasos:
- Definición de la regla
- Ejecución de reglas
- Supervisión y alertas
- Soluciona problemas
Definición de la regla
Las reglas de calidad de los datos asociadas con un análisis de calidad de los datos definen las expectativas relacionadas con los datos. Puedes crear reglas de calidad de los datos de las siguientes maneras:
- Usa las recomendaciones de la generación de perfiles de datos de Dataplex
- Utiliza las reglas predefinidas
- Crea reglas de SQL personalizadas
Reglas predefinidas
Dataplex admite dos categorías de reglas predefinidas: a nivel de fila o agregadas.
- Nivel de fila
En el caso de las reglas de categoría a nivel de fila, la expectativa se aplica a cada fila de datos. Cada fila pasa o reprueba la condición de forma independiente. Por ejemplo,
column_A_value < 1
.Las verificaciones a nivel de fila requieren que especifiques un umbral para aprobar. Cuando el porcentaje de filas que pasan la regla es inferior al valor del umbral, la regla falla.
- Agregación
En el caso de las reglas agregadas, la expectativa se aplica a un solo valor agregado en todos los datos. Por ejemplo,
Avg(someCol) >= 10
. Para pasar, la verificación debe evaluarse como el booleanotrue
. Las reglas de agregación no proporcionan un recuento independiente de aprobación o error en cada fila.
Para ambas categorías de reglas, puedes establecer los siguientes parámetros:
- La columna a la que se aplica la regla.
- Una dimensión de un conjunto de dimensiones predefinidas.
En la siguiente tabla, se enumeran los tipos de reglas de agregación y a nivel de fila admitidos:
Tipo de regla (nombre en la consola de Google Cloud) |
Nivel de fila o regla de agregación | Descripción | Tipos de columnas admitidos | Parámetros específicos de la regla |
---|---|---|---|---|
RangeExpectation (Comprobación de rango) |
Nivel de fila | Verifica si el valor está entre mín. y máx. | Todas las columnas de tipo numérico, de fecha y de marca de tiempo. | Obligatorio:
|
NonNullExpectation (Verificación nula) |
Nivel de fila | Valida que los valores de la columna no sean NULO. | Todos los tipos de columnas admitidos. | Obligatorio:
|
SetExpectation (Establecer verificación) |
Nivel de fila | Comprueba si los valores de una columna son uno de los valores especificados en un conjunto. | Todos los tipos de columnas admitidos, excepto Record y Struct . |
Obligatorio:
|
RegexExpectation (Comprobación de expresiones regulares) |
Nivel de fila | Verifica los valores con una expresión regular especificada. | String | Obligatorio:
|
Uniqueness (Verificación de unicidad) |
Agregación | Verifica si todos los valores de una columna son únicos. | Todos los tipos de columnas admitidos, excepto Record y Struct . |
Obligatorio:
|
StatisticRangeExpectation (Verificación estadística) |
Agregación | Comprueba si la medida estadística determinada coincide con el rango esperado. | Todos los tipos de columnas numéricas compatibles. | Obligatorio:
|
Tipos de reglas de SQL personalizadas compatibles
Las reglas de SQL proporcionan flexibilidad para expandir la validación con una lógica personalizada. Estas reglas se presentan en los siguientes tipos.
Tipo de regla | Nivel de fila o regla de agregación | Descripción | Tipos de columnas admitidos | Parámetros específicos de la regla | Ejemplo |
---|---|---|---|---|---|
Condición de la fila | Nivel de fila | Especifica una expectativa para cada fila mediante la definición de una expresión de SQL en una cláusula La expresión puede incluir una referencia a otra tabla, por ejemplo, para crear verificaciones de integridad referencial. |
Todas las columnas | Obligatorio:
|
grossWeight <= netWeight |
Expresión de SQL agregada | Agregación | Estas reglas se ejecutan una vez por tabla. Proporciona una expresión de SQL que se evalúe como un valor booleano La expresión de SQL puede incluir una referencia a otra tabla mediante las subconsultas de expresión. |
Todas las columnas | Obligatorio:
|
Ejemplo de agregación simple: Uso de una subconsulta de expresión para comparar valores en una tabla diferente: |
Aserción de SQL | Agregación | Una regla de aserción usa una consulta de calidad de los datos para encontrar filas que fallan en una o más condiciones especificadas en la consulta. Proporciona una instrucción de SQL que se evalúe para mostrar filas que coincidan con el estado no válido. Si la consulta muestra alguna fila, la regla falla. Omite el punto y coma final de la instrucción de SQL. La instrucción de SQL puede incluir una referencia a otra tabla mediante las subconsultas de expresión. |
Todas las columnas | Obligatorio:
|
Ejemplo agregado simple para asegurarte de que Uso de una subconsulta de expresión para comparar valores en una tabla diferente: |
Para ver ejemplos de reglas, consulta Reglas de muestra de calidad de datos automática.
Para conocer las funciones de SQL compatibles, consulta la referencia de GoogleSQL.
Dimensiones
Las dimensiones te permiten agregar los resultados de varias reglas de calidad de los datos para la supervisión y las alertas. Debes asociar cada regla de calidad de datos con una dimensión. Dataplex admite las siguientes dimensiones:
- Actualidad
- Volumen
- Integridad
- Validez
- Coherencia
- Exactitud
- Unicidad
Entrada escrita en reglas
Todos los parámetros de valor se pasan como valores de cadena a la API. Dataplex requiere que las entradas sigan el formato especificado de BigQuery.
Los parámetros de tipo binario se pueden pasar como una string codificada en base64.
Tipo | Formatos admitidos | Ejemplos |
---|---|---|
Objeto binario | Valor codificado en base64 | YXBwbGU= |
Marca de tiempo | AAAA-[M]M-[D]D[( |T)[H]H:[M]M:[S]S[.F]] [time_zone] O AAAA-[M]M-[D]D[( |T)[H]H:[M]M:[S]S[.F]][time_zone_offset] |
2014-09-27 12:30:00.45-08 |
Fecha | AAAA-M[M]-D[D] | 2014-09-27 |
Tiempo | [H]H:[M]M:[S]S[.DDDDDD] | 12:30:00,45 |
DateTime | AAAA-[M]M-[D]D [[H]H:[M]M:[S]S[.DDDDDD]] | 2014-09-27 12:30:00.45 |
Parámetro de referencia de datos
Cuando creas una regla de SQL personalizada, puedes hacer referencia a una tabla de fuente de datos y a todos sus filtros de condiciones previas si usas el parámetro de referencia de datos ${data()}
en la regla, en lugar de mencionar de forma explícita la tabla de origen y sus filtros.
Algunos ejemplos de filtros de condiciones previas incluyen los filtros de filas, los porcentajes de muestreo y los filtros incrementales. El parámetro ${data()}
distingue mayúsculas de minúsculas.
Por ejemplo, supongamos que tienes una tabla de fuente de datos llamada my_project_id.dim_dataset.dim_currency
. Deseas ejecutar un análisis incremental de la calidad de los datos que solo analice los datos diarios nuevos. En la tabla, se aplica un filtro de filas que filtra las entradas de hoy, transaction_timestamp >= current_date()
.
Una regla de SQL personalizada para encontrar filas con discount_pct
para hoy se ve de la siguiente manera:
discount_pct IN (SELECT discount_pct FROM my_project_id.dim_dataset.dim_currency WHERE transaction_timestamp >= current_date())
Si usas el parámetro de referencia de datos, puedes simplificar la regla:
discount_pct IN (SELECT discount_pct FROM ${data()})
En este ejemplo, el parámetro ${data()}
hace referencia a la tabla de fuente de datos con las entradas actuales, my_project_id.dim_dataset.dim_currency WHERE transaction_timestamp >= current_date()
.
En este ejemplo, el parámetro de referencia de datos se refiere solo a los datos incrementales.
Cuando usas un alias dentro de una subconsulta para hacer referencia a las columnas de la tabla de origen, puedes usar el parámetro de referencia de datos para hacer referencia a la tabla de origen, o bien omitir la referencia de tabla. No hagas referencia a las columnas de la tabla de origen mediante una referencia de tabla directa en la cláusula WHERE
.
Recomendado:
Usa el parámetro de referencia de datos:
discount_pct IN ( SELECT discount_pct FROM `my_project_id.dim_dataset.dim_currency` AS temp-table WHERE temp-table.transaction_timestamp = ${data()}.timestamp )
Omite la referencia de la tabla:
discount_pct IN ( SELECT discount_pct FROM `my_project_id.dim_dataset.dim_currency` AS temp-table WHERE temp-table.transaction_timestamp = timestamp )
No se recomienda:
No uses una referencia de tabla directa:
discount_pct IN ( SELECT discount_pct FROM `my_project_id.dim_dataset.dim_currency` AS temp-table WHERE temp-table.transaction_timestamp = `my_project_id.dim_dataset.dim_currency`.timestamp )
Ejecución de reglas
Puedes programar análisis de calidad de los datos para que se ejecuten en un intervalo específico o ejecutar un análisis a pedido. Para administrar los análisis de calidad de los datos, puedes usar la API o la consola de Google Cloud.
Cuando ejecutas un análisis de calidad de los datos, Dataplex crea un trabajo. Como parte de la especificación de un análisis de calidad de los datos, puedes especificar que el alcance de un trabajo sea una de las siguientes opciones:
- Tabla completa
- Cada trabajo valida toda la tabla.
- Incremental
- Cada trabajo valida datos incrementales. Para determinar los incrementos, proporciona una columna
Date
/Timestamp
en la tabla que se pueda usar como marcador. Por lo general, esta es la columna en la que se particiona la tabla.
Filtra datos
Dataplex puede filtrar los datos que se analizarán para determinar su calidad mediante un filtro de filas. Crear un filtro de fila te permite enfocarte en los datos dentro de un período o segmento específico, como una región determinada. El uso de filtros puede reducir el tiempo y el costo de ejecución, por ejemplo, filtrar datos con una marca de tiempo anterior a una fecha determinada.
Datos de muestra
Dataplex te permite especificar un porcentaje de registros de tus datos para muestrear para ejecutar un análisis de calidad de los datos. Crear análisis de calidad de los datos en una muestra más pequeña de datos puede reducir el tiempo de ejecución y el costo de consultar todo el conjunto de datos.
Supervisión y alertas
Puedes exportar los resultados del análisis a una tabla de BigQuery para analizarlos en detalle. Para personalizar los informes, puedes conectar los datos de la tabla de BigQuery a un panel Puedes crear un informe agregado con la misma tabla de resultados en varios análisis.
Puedes supervisar los trabajos de calidad de los datos con los registros data_scan
y data_quality_scan_rule_result
en el Explorador de registros.
Para cada trabajo de calidad de los datos, el registro data_scan
con el campo data_scan_type
configurado como DATA_QUALITY
contiene la siguiente información:
- Es la fuente de datos que se usa para el análisis de datos.
- Detalles de la ejecución del trabajo, como la hora de creación, la hora de inicio, la hora de finalización y el estado del trabajo.
- Resultado del trabajo de calidad de los datos: aprobado o reprobado.
- Se aprobó o fracasó a nivel de dimensión.
Cada trabajo exitoso contiene un registro data_quality_scan_rule_result
con la siguiente información detallada sobre cada regla de ese trabajo:
- Información de configuración, como el nombre, el tipo de regla, el tipo de evaluación y la dimensión
- Información del resultado, como aprobada o con errores, recuento total de filas, recuento de filas de aprobación, recuento de filas nulas y recuento de filas evaluadas.
La información de los registros está disponible a través de la API y la consola de Google Cloud. Puedes usar esta información para configurar alertas. Para obtener más información, consulta Configura alertas en Cloud Logging.
Solucionar fallas
Cuando una regla falla, Dataplex produce una consulta que muestra todas las columnas de la tabla (no solo la con errores).
Limitaciones
- Los resultados del análisis de calidad de los datos no se publican en Data Catalog como etiquetas.
- Las recomendaciones de reglas solo se admiten en la consola de Google Cloud.
- La elección de las dimensiones se fija en una de las siete dimensiones predefinidas.
- La cantidad de reglas por análisis de calidad de los datos se limita a 1,000.
Precios
Dataplex usa el SKU de procesamiento premium para cobrar por la calidad automática de los datos. Para obtener más información, consulta los precios de Dataplex.
Aún no está disponible la publicación automática de los resultados de la calidad de los datos en el catálogo. Cuando esté disponible, se cobrará con la misma tarifa que los precios de almacenamiento de metadatos de catálogo. Consulta Precios para obtener más detalles.
El procesamiento premium de Dataplex para la calidad automática de los datos se factura por segundo con un mínimo de un minuto.
No se aplican cargos por los análisis fallidos de calidad de los datos.
El cargo depende de la cantidad de filas y columnas, la cantidad de datos que analizaste, la configuración de las reglas de calidad de los datos, la configuración de partición y agrupamiento en clústeres de la tabla, y la frecuencia del gscan.
Existen varias opciones para reducir el costo de los análisis automáticos de calidad de los datos:
Separa los cargos por la calidad de los datos de otros cargos en el SKU de procesamiento premium de Dataplex, usa la etiqueta
goog-dataplex-workload-type
con el valorDATA_QUALITY
.Filtra los cargos agregados. Usa las siguientes etiquetas:
goog-dataplex-datascan-data-source-dataplex-entity
goog-dataplex-datascan-data-source-dataplex-lake
goog-dataplex-datascan-data-source-dataplex-zone
goog-dataplex-datascan-data-source-project
goog-dataplex-datascan-data-source-region
goog-dataplex-datascan-id
goog-dataplex-datascan-job-id
Próximos pasos
- Obtén información para usar la calidad de datos automática.
- Obtén más información sobre la generación de perfiles de datos.
- Aprende a usar la generación de perfiles de datos.