Crear perfiles de calidad de los datos y validarlos
En esta guía de inicio rápido, se muestra cómo usar Knowledge Catalog (antes Dataplex Universal Catalog) para crear un perfil de una tabla de BigQuery, definir reglas de calidad de los datos basadas en estadísticas del perfil y ejecutar un análisis de calidad de los datos.
Completa los siguientes pasos:
- Crea un conjunto de datos y una tabla de BigQuery con datos de muestra de bicicletas compartidas que contengan anomalías intencionales, como duplicados y valores nulos, para probar las capacidades de análisis.
- Crea y ejecuta un análisis de perfil de datos en la tabla. El perfilamiento de datos calcula estadísticas a nivel de la columna, como los porcentajes de valores nulos, los recuentos de valores únicos y las distribuciones de valores. Para obtener más información, consulta Acerca de la generación de perfiles de datos.
- Revisa los resultados del análisis del perfil de datos para encontrar patrones y posibles anomalías.
- Define reglas de calidad de los datos según los resultados del perfil y ejecuta un análisis de calidad de los datos. Los análisis de calidad de los datos validan tus datos según las reglas definidas para identificar anomalías. Para obtener más información, consulta Información sobre la calidad de los datos automáticos.
- Revisa los resultados de la evaluación para ver qué reglas de calidad se aprobaron o rechazaron.
Antes de comenzar
Haz lo siguiente para configurar tu proyecto:
- Accede a tu cuenta de Google Cloud . Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Knowledge Catalog and BigQuery APIs.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Knowledge Catalog and BigQuery APIs.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.
Roles obligatorios
Para obtener los permisos que necesitas para crear y ejecutar análisis de perfil y calidad de los datos, y administrar recursos de BigQuery, pídele a tu administrador que te otorgue los siguientes roles de IAM en el proyecto:
-
Crear, ejecutar y borrar análisis de datos:
Editor de DataScan de Dataplex (
roles/dataplex.dataScanEditor) -
Crear, completar y borrar tablas de muestra:
Propietario de datos de BigQuery (
roles/bigquery.dataOwner) -
Ejecutar consultas en SQL en BigQuery:
Usuario de trabajo de BigQuery (
roles/bigquery.jobUser)
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.
Si tienes los permisos necesarios para administrar el acceso a IAM en tu proyecto, puedes otorgar estos roles a tu propia cuenta de usuario ejecutando los siguientes comandos de gcloud:
gcloud projects add-iam-policy-binding PROJECT_ID \
--member="user:USER_EMAIL" \
--role="roles/dataplex.dataScanEditor"
gcloud projects add-iam-policy-binding PROJECT_ID \
--member="user:USER_EMAIL" \
--role="roles/bigquery.dataOwner"
gcloud projects add-iam-policy-binding PROJECT_ID \
--member="user:USER_EMAIL" \
--role="roles/bigquery.jobUser"
Reemplaza lo siguiente:
PROJECT_ID: Es el ID del proyecto de Google Cloud .USER_EMAIL: La dirección de correo electrónico de tu cuenta de usuario (por ejemplo,name@example.com)
Otorga permisos al agente de servicio de Knowledge Catalog
Un agente de servicio es una cuenta de servicio administrada por Google que Knowledge Catalog usa para ejecutar consultas de análisis en BigQuery en tu nombre.
En la Google Cloud consola, haz clic en Activar Cloud Shell en la barra de herramientas. El aprovisionamiento y la conexión al entorno demorarán unos minutos.
Crea el agente de servicio de Knowledge Catalog:
gcloud beta services identity create --service=dataplex.googleapis.comEste comando crea el agente de servicio si aún no se aprovisionó y muestra su correo electrónico. Si tu proyecto ya tiene un agente de servicio de Knowledge Catalog, el comando devolverá la identidad existente sin realizar ningún cambio.
El resultado es similar a lo siguiente:
serviceAccount:service-PROJECT_NUMBER@gcp-sa-dataplex.iam.gserviceaccount.comToma nota del
PROJECT_NUMBERen el resultado para los próximos pasos.Otorga el rol de Usuario de trabajo de BigQuery (
roles/bigquery.jobUser) para que Knowledge Catalog pueda ejecutar trabajos de consulta en tu proyecto:gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-dataplex.iam.gserviceaccount.com" \ --role="roles/bigquery.jobUser"
Reemplaza lo siguiente:
PROJECT_ID: Es el ID del proyecto de Google Cloud .PROJECT_NUMBER: Es el número del proyecto de Google Cloud .
Otorga el rol de visualizador de datos de BigQuery (
roles/bigquery.dataViewer) para que el agente de servicio pueda leer los datos y el esquema de tu tabla:gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-dataplex.iam.gserviceaccount.com" \ --role="roles/bigquery.dataViewer"
Reemplaza lo siguiente:
PROJECT_ID: Es el ID del proyecto de Google Cloud .PROJECT_NUMBER: Es el número del proyecto de Google Cloud .
Crea un conjunto de datos y una tabla de muestra
Para probar los análisis de calidad de los datos y la generación de perfiles de forma segura sin afectar los datos de producción, configura un conjunto de datos de BigQuery dedicado y crea una tabla que contenga datos de muestra directamente en tu proyecto.
Console
En la consola de Google Cloud , ve a la página BigQuery.
En el panel Explorador, haz clic en Ver acciones junto al ID de tu proyecto y, luego, en Crear conjunto de datos.
En el campo ID de conjunto de datos, ingresa
quickstart_data_profile.En la lista Ubicación de los datos, selecciona us-central1 (Iowa).
Haz clic en Crear conjunto de datos.
En el editor de consultas, ingresa la siguiente consulta en SQL para generar datos de ejemplo de bicicletas compartidas en tu tabla
bikeshare_trips:CREATE OR REPLACE TABLE `PROJECT_ID.quickstart_data_profile.bikeshare_trips` AS SELECT -- Duplicate and null IDs IF(MOD(x, 100) = 0, NULL, IF(x > 9900, 1000 + (x - 9900), 1000 + x)) AS trip_id, -- Nulls and unrecognized category values CASE WHEN MOD(x, 50) = 0 THEN 'INVALID_TIER' WHEN MOD(x, 25) = 0 THEN NULL WHEN MOD(x, 4) = 0 THEN 'Local Rider' WHEN MOD(x, 4) = 1 THEN 'Walk Up' WHEN MOD(x, 4) = 2 THEN 'Student Membership' ELSE 'Weekender' END AS subscriber_type, -- Nulls and malformed bike IDs CASE WHEN MOD(x, 60) = 0 THEN 'UNKNOWN' WHEN MOD(x, 30) = 0 THEN NULL ELSE CAST(2000 + x AS STRING) END AS bike_id, -- Null dates and future timestamps CASE WHEN MOD(x, 70) = 0 THEN NULL WHEN MOD(x, 40) = 0 THEN TIMESTAMP_ADD(CURRENT_TIMESTAMP(), INTERVAL x MINUTE) ELSE TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL x MINUTE) END AS start_time, -- Nulls and placeholder station values CASE WHEN MOD(x, 20) = 0 THEN 'STATION_UNKNOWN' WHEN MOD(x, 10) = 0 THEN NULL ELSE CAST(100 + MOD(x, 50) AS STRING) END AS start_station_id, -- Negative durations, zeros, and extreme outliers CASE WHEN MOD(x, 15) = 0 THEN -10.0 WHEN MOD(x, 35) = 0 THEN 0.0 WHEN MOD(x, 200) = 0 THEN 99999.0 ELSE CAST(MOD(x, 120) + 1.5 AS FLOAT64) END AS duration_minutes FROM UNNEST(GENERATE_ARRAY(1, 10000)) AS x;
Reemplaza
PROJECT_IDpor el ID del proyecto de Google Cloud .Haz clic en Ejecutar.
gcloud
En Cloud Shell, crea el conjunto de datos
quickstart_data_profileen la regiónus-central1:bq --location=us-central1 mk --dataset PROJECT_ID:quickstart_data_profile
Reemplaza
PROJECT_IDpor el ID del proyecto deGoogle Cloud .Crea y propaga la tabla de muestra
bikeshare_trips:bq query \ --use_legacy_sql=false \ "CREATE OR REPLACE TABLE \`PROJECT_ID.quickstart_data_profile.bikeshare_trips\` AS SELECT IF(MOD(x, 100) = 0, NULL, IF(x > 9900, 1000 + (x - 9900), 1000 + x)) AS trip_id, CASE WHEN MOD(x, 50) = 0 THEN 'INVALID_TIER' WHEN MOD(x, 25) = 0 THEN NULL WHEN MOD(x, 4) = 0 THEN 'Local Rider' WHEN MOD(x, 4) = 1 THEN 'Walk Up' WHEN MOD(x, 4) = 2 THEN 'Student Membership' ELSE 'Weekender' END AS subscriber_type, CASE WHEN MOD(x, 60) = 0 THEN 'UNKNOWN' WHEN MOD(x, 30) = 0 THEN NULL ELSE CAST(2000 + x AS STRING) END AS bike_id, CASE WHEN MOD(x, 70) = 0 THEN NULL WHEN MOD(x, 40) = 0 THEN TIMESTAMP_ADD(CURRENT_TIMESTAMP(), INTERVAL x MINUTE) ELSE TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL x MINUTE) END AS start_time, CASE WHEN MOD(x, 20) = 0 THEN 'STATION_UNKNOWN' WHEN MOD(x, 10) = 0 THEN NULL ELSE CAST(100 + MOD(x, 50) AS STRING) END AS start_station_id, CASE WHEN MOD(x, 15) = 0 THEN -10.0 WHEN MOD(x, 35) = 0 THEN 0.0 WHEN MOD(x, 200) = 0 THEN 99999.0 ELSE CAST(MOD(x, 120) + 1.5 AS FLOAT64) END AS duration_minutes FROM UNNEST(GENERATE_ARRAY(1, 10000)) AS x;"
Crea y ejecuta un análisis de perfil de datos
Un análisis de perfil de datos examina las filas de tu tabla para calcular estadísticas, como recuentos de valores únicos, proporciones de valores nulos y rangos de distribución de datos.
Console
En la consola de Google Cloud , ve a la página Calidad y creación de perfiles de datos.
Haz clic en Crear análisis del perfil de datos.
En Elegir tipo, deja seleccionada la opción Análisis de perfil de datos.
En General, en el campo Nombre visible, ingresa
bikeshare-trips-profile.En Tabla para analizar, en el campo Tabla, haz clic en Explorar, selecciona la tabla
quickstart_data_profile.bikeshare_tripsen tu proyecto y, luego, haz clic en Seleccionar.En Modo, selecciona Estándar.
En Alcance, selecciona Datos completos.
En Programar, selecciona A pedido.
Deja las otras opciones de configuración con sus valores predeterminados.
Haz clic en Ejecutar análisis.
Comienza el trabajo de análisis. Por lo general, Knowledge Catalog tarda entre 3 y 5 minutos en ejecutar el análisis y calcular las estadísticas de tu tabla.
gcloud
En Cloud Shell, crea el análisis del perfil de datos:
gcloud dataplex datascans create data-profile bikeshare-trips-profile \ --location=us-central1 \ --data-source-resource="//bigquery.googleapis.com/projects/PROJECT_ID/datasets/quickstart_data_profile/tables/bikeshare_trips" \ --description="Data profile scan for sample bikeshare dataset"
Reemplaza
PROJECT_IDpor el ID del proyecto deGoogle Cloud .Ejecuta el análisis del perfil de datos:
gcloud dataplex datascans run bikeshare-trips-profile \ --location=us-central1
El trabajo de análisis se inicia en segundo plano. Por lo general, el análisis tarda entre 3 y 5 minutos en completarse.
Revisa los resultados del análisis del perfil de datos
Una vez que finalice el análisis, revisa las estadísticas de las columnas para comprender las características de tus datos.
En la consola de Google Cloud , ve a la página Calidad y creación de perfiles de datos.
En la lista de análisis, haz clic en bikeshare-trips-profile.
Si aún no se ejecutó el análisis, haz clic en Ejecutar ahora.
En la sección Descripción general, espera a que el trabajo de análisis más reciente muestre el estado Sin errores.
En la siguiente imagen, se muestra el trabajo de análisis en la sección Descripción general con el estado Completado:
Inspecciona los resultados del análisis para comprender la distribución de los datos de tu tabla y, luego, identifica los posibles objetivos de validación de la calidad de los datos. En la pestaña Resultados del trabajo más reciente, Knowledge Catalog muestra métricas a nivel de la columna, incluidas % de nulos, Recuento y porcentaje de valores únicos, Valores principales y Estadísticas resumidas.
En la siguiente tabla, se muestra qué métrica de perfil debes verificar para cada columna de la tabla, cómo interpretar los resultados y a qué regla de calidad de los datos debes orientarte:
Columna de la tabla Métrica de resultado del perfil Qué buscar y cómo interpretar Objetivo de validación de la calidad de los datos duration_minutesEstadísticas de resumen Se detectaron valores negativos: El valor de Min es de -10.0minutos. La duración transcurrida del viaje no puede ser negativa, lo que indica que las grabaciones del sensor o del viaje no son válidas.Segmenta con una regla de Validez (rango) (como duration_minutes ≥ 1.0) para requerir tiempos de viaje transcurridos positivos.start_station_idPorcentaje nulo Alrededor del 5% de valores nulos: El porcentaje de valores nulos es superior al 0%, lo que indica que algunos registros no tienen identificadores de salida de la estación (como los viajes sin estaciones o sin quioscos). Segmenta con una regla de Integridad (no nulo) para detectar y marcar los registros con IDs de estación faltantes. subscriber_typeValores principales Categorías inesperadas: La lista de valores frecuentes incluye categorías no estándar (como INVALID_TIER) junto con niveles de membresía válidos, lo que indica que hay problemas de validación de la entrada del usuario o de la transferencia de datos.Segmenta tus anuncios con una regla de Validez (establecida) para exigir que todos los valores entrantes pertenezcan a tu lista permitida de tipos de membresía. trip_idRecuento y porcentaje únicos Se detectaron IDs duplicados: La singularidad es inferior al 100% (alrededor del 98%), lo que indica que hay registros de identificadores repetidos. Las claves primarias y los identificadores de viaje deben ser 100% únicos. Segmenta con una regla de Unicidad para marcar y evitar registros de viajes duplicados.
Estos resultados del perfil te brindan una referencia basada en evidencia para crear reglas de calidad de los datos segmentadas.
Crea y ejecuta un análisis de calidad de los datos
Ahora que descubriste cómo se ven los datos, configura reglas automáticas de calidad de los datos para detectar anomalías. En este paso, configurarás cuatro tipos de reglas comunes según los resultados de tu perfil.
Console
En la consola de Google Cloud , ve a la página Calidad y creación de perfiles de datos.
Haz clic en Crear análisis de calidad de los datos.
En General, en el campo Nombre visible, ingresa
bikeshare-trips-quality.En Tabla para analizar, en el campo Tabla, haz clic en Explorar, selecciona la tabla
quickstart_data_profile.bikeshare_tripsy, luego, haz clic en Seleccionar.En Alcance, selecciona Datos completos.
En Programar, selecciona A pedido.
Deja el resto de los parámetros con la configuración predeterminada y haz clic en Continuar.
En la sección Reglas de calidad de los datos, haz clic en Agregar reglas y selecciona Tipos de reglas integradas.
En el panel Agregar reglas, selecciona las columnas y los tipos de reglas:
- En el campo Elegir columnas, haz clic en Explorar y selecciona
duration_minutes,start_station_id,subscriber_typeytrip_id. - Haz clic en Seleccionar.
- En la lista Choose rule types, selecciona Range check, NULL check, Value-set check y Uniqueness check, y, luego, haz clic en OK.
En la lista de reglas generadas, selecciona la casilla de verificación de cada una de las siguientes reglas:
duration_minutes: Verificación de rangostart_station_id: Verificación de NULLsubscriber_type: Verificación del conjunto de valorestrip_id: Verificación de unicidad
Haz clic en Seleccionar.
- En el campo Elegir columnas, haz clic en Explorar y selecciona
En la tabla Reglas de calidad de los datos, configura los parámetros de las reglas que requieren valores:
- En
duration_minutes(Verificación de rango), haz clic en Editar, ingresa1.0en el campo Valor mín. y haz clic en Guardar. - En
subscriber_type(Verificación del conjunto de valores), haz clic en Editar, luego en Agregar valor para agregar cada uno de los valores permitidos (Local Rider,Walk Up,Student MembershipyWeekender) y, por último, en Guardar.
- En
Haz clic en Continuar y, luego, en Ejecutar análisis.
gcloud
En Cloud Shell, crea un archivo llamado
dq_bikeshare.yamlcon especificaciones de reglas que se orienten a las anomalías encontradas en tu perfil:cat << 'EOF' > dq_bikeshare.yaml rules: - column: trip_id dimension: UNIQUENESS uniquenessExpectation: {} - column: start_station_id dimension: COMPLETENESS nonNullExpectation: {} - column: duration_minutes dimension: VALIDITY rangeExpectation: minValue: "1.0" - column: subscriber_type dimension: VALIDITY setExpectation: values: - "Local Rider" - "Walk Up" - "Student Membership" - "Weekender" EOFCrea el análisis de calidad de los datos:
gcloud dataplex datascans create data-quality bikeshare-trips-quality \ --location=us-central1 \ --data-source-resource="//bigquery.googleapis.com/projects/PROJECT_ID/datasets/quickstart_data_profile/tables/bikeshare_trips" \ --data-quality-spec-file="dq_bikeshare.yaml" \ --description="Data quality scan for sample bikeshare dataset"
Reemplaza
PROJECT_IDpor el ID del proyecto deGoogle Cloud .Ejecuta el análisis de calidad de los datos:
gcloud dataplex datascans run bikeshare-trips-quality \ --location=us-central1
Revisa las evaluaciones de las reglas de calidad de los datos
Verifica los resultados de la calidad de los datos para ver cómo tus reglas evaluaron los datos de muestra y cómo identificaron las anomalías.
En la consola de Google Cloud , ve a la página Calidad y creación de perfiles de datos.
En la tabla Scans, haz clic en el análisis bikeshare-trips-quality.
En la sección Resumen, haz clic en Ver resultados para abrir los detalles del trabajo.
En el panel Detalles del trabajo, revisa los resultados de la evaluación:
Estado de la calidad de los datos: Como se esperaba, las 3 dimensiones evaluadas muestran el estado Failed.
- Validez: Fallida. La columna
duration_minutescontiene valores negativos y la columnasubscriber_typecontiene valores de membresía no válidos (INVALID_TIER). - Integridad: Falló. La columna
start_station_idcontiene valores nulos. - Unicidad: Falló. La columna
trip_idcontiene registros duplicados.
- Validez: Fallida. La columna
Reglas: En la tabla Reglas, las 4 reglas evaluadas muestran el estado Falló.
duration_minutes: Verificación de rango (Error)start_station_id: Verificación de valores nulos (Error)subscriber_type: Verificación de conjunto de valores (Failed)trip_id: Verificación de unicidad (Falló)
Para cualquier regla que haya fallado, puedes copiar la consulta en SQL en la columna Consulta para obtener registros con errores y ejecutarla en BigQuery para aislar e inspeccionar las filas no válidas.
Ahora, creaste un perfil de una tabla de BigQuery para descubrir estadísticas de columnas y usaste esas estadísticas para definir y validar reglas de calidad de los datos automatizadas.
Realiza una limpieza
Sigue estos pasos para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos que usaste en esta página.
Console
En la consola de Google Cloud , ve a la página Calidad y creación de perfiles de datos.
En la tabla Scans, selecciona bikeshare-trips-quality y bikeshare-trips-profile.
Haz clic en Borrar y confirma tu decisión.
Ve a la página de BigQuery.
En el panel Explorador, haz clic en Conjuntos de datos.
Selecciona el conjunto de datos
quickstart_data_profiley, luego, haz clic en Borrar.
gcloud
En Cloud Shell, borra el análisis de calidad de los datos, el análisis del perfil de datos y el conjunto de datos de muestra:
gcloud dataplex datascans delete bikeshare-trips-quality --location=us-central1 --quiet gcloud dataplex datascans delete bikeshare-trips-profile --location=us-central1 --quiet bq rm -r -f -d PROJECT_ID:quickstart_data_profile
Reemplaza PROJECT_ID por el ID del proyecto deGoogle Cloud .
¿Qué sigue?
- Visualiza y soluciona problemas relacionados con los resultados del análisis de calidad de los datos
- Supervisa los análisis de datos y configura alertas
- Crea un flujo de trabajo de calidad de los datos como política de código con la CLI de Antigravity
- Administra reglas de calidad de los datos como código con Terraform
- Cómo reutilizar reglas de calidad de los datos en varias tablas
- Explora casos de uso adicionales de Knowledge Catalog