Crea perfiles y valida la calidad de los datos
Knowledge Catalog (anteriormente, Dataplex Universal Catalog) te permite crear perfiles de tablas de BigQuery para calcular estadísticas a nivel de columna, como porcentajes de valores nulos, recuentos de valores únicos y distribuciones de valores. Luego, puedes usar estas estadísticas para definir reglas de calidad de los datos y validar tus registros en busca de anomalías.
En esta guía de inicio rápido, propagarás una tabla de BigQuery de muestra con anomalías intencionales, ejecutarás un análisis de perfil de datos y evaluarás los resultados con un análisis de calidad de los datos. Para obtener más información, consulta Acerca de la generación de perfiles de datos y Acerca de la calidad de los datos automáticos.
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, if any are not already enabled.
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, if any are not already enabled.
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 perfiles 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:
-
Crea, ejecuta y borra análisis de datos:
Editor de DataScan de Dataplex (
roles/dataplex.dataScanEditor) -
Crea, propaga y borra 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 de 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: Es 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 consola de Google Cloud , haz clic en Activar Cloud Shell en la barra de herramientas. El aprovisionamiento y la conexión al entorno tardan solo unos momentos.
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 genera su correo electrónico. Si tu proyecto ya tiene un agente de servicio de Knowledge Catalog, el comando devuelve 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 de la
PROJECT_NUMBERen el resultado para los próximos pasos.Otorga el rol 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 la 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 la generación de perfiles y las verificaciones de calidad de los datos de forma segura sin tocar los datos de producción, configura un conjunto de datos de BigQuery dedicado y crea una tabla que contenga datos de muestra de uso compartido de bicicletas con anomalías intencionales, como duplicados y valores nulos.
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 del 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 muestra de uso compartido de bicicletas 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 perfiles de datos
Un análisis de perfil de datos busca en las filas de la tabla para calcular estadísticas, incluidos los recuentos de valores únicos, las proporciones de valores nulos y los 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 Elige el tipo, deja seleccionada la opción Análisis de perfiles 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 Programa, selecciona On demand.
Deja las demás opciones de configuración con sus valores predeterminados.
Haz clic en Ejecutar análisis.
Se inicia 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 de perfiles 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 el análisis aún no se ejecutó, haz clic en Ejecutar ahora.
En la sección Descripción general, espera a que el trabajo de análisis más reciente muestre Sin errores.
En la siguiente imagen, se muestra el trabajo de análisis en la sección Descripción general con el estado Correcto:
Inspecciona los resultados del análisis para comprender la distribución de los datos de tu tabla y, así, identificar 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 columna, como %nulo, Recuento único y %, Valores principales y Estadísticas de resumen.
En la siguiente tabla, se muestra qué métrica de perfil se debe verificar para cada columna de la tabla, cómo interpretar los resultados y a qué regla de calidad de los datos se debe orientar:
Columna de la tabla Métrica de resultados del perfil Qué buscar y cómo interpretar los datos Objetivo de validación de la calidad de los datos duration_minutesEstadísticas de resumen Se detectaron valores negativos: El valor mínimo 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.Orienta con una regla de Validez (rango) (como duration_minutes ≥ 1.0) para exigir tiempos de viaje transcurridos positivos.start_station_idPorcentaje nulo Alrededor del 5% de valores nulos: El porcentaje nulo es superior al 0%, lo que indica que algunos registros carecen de identificadores de salida de la estación (como viajes sin muelle o sin quiosco). Orienta con una regla de Integridad (no nula) 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 entrada o transferencia de datos de usuario no validados.Segmenta con una regla de Validez (conjunto) para aplicar 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 unicidad es inferior al 100% (alrededor del 98%), lo que indica registros de identificadores repetidos. Las claves primarias y los identificadores de viaje deben ser 100% únicos. Orienta con una regla de Unicidad para marcar y evitar registros de viajes duplicados.
Estos hallazgos de perfiles te brindan un modelo de referencia basado en evidencia para crear reglas de calidad de los datos específicas.
Crea y ejecuta un análisis de calidad de los datos
Ahora que descubriste cómo se ven los datos, configura reglas de calidad de los datos automatizadas para detectar anomalías. En este paso, configurarás cuatro tipos de reglas comunes en función de 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 Programa, selecciona On demand.
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 Elige tipos de reglas, selecciona Verificación de rango, Verificación de NULL, Verificación de conjunto de valores y Verificación de unicidad y, luego, haz clic en Aceptar.
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 para las reglas que requieren valores:
- Para
duration_minutes(Verificación de rango), haz clic en Editar, ingresa1.0en el campo Valor mínimo y haz clic en Guardar. - En
subscriber_type(Verificación de conjunto de valores), haz clic en Editar, haz clic en Agregar valor para agregar cada uno de los valores permitidos (Local Rider,Walk Up,Student MembershipyWeekender) y haz clic en Guardar.
- Para
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 que se encontraron 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 la muestra de datos y las anomalías identificadas.
En la consola de Google Cloud , ve a la página Calidad y creación de perfiles de datos.
En la tabla Análisis, haz clic en el análisis bikeshare-trips-quality.
En la sección Descripción general, 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 un estado de Con errores.
- Validez: Fallida. La columna
duration_minutescontiene valores negativos, ysubscriber_typecontiene valores de membresía no válidos (INVALID_TIER). - Integridad: Fallida. La columna
start_station_idcontiene valores nulos. - Unicidad: Fallida. La columna
trip_idcontiene registros duplicados.
- Validez: Fallida. La columna
Reglas: En la tabla Reglas, las 4 reglas evaluadas muestran un estado de Con errores.
duration_minutes: Verificación de rango (con errores)start_station_id: Verificación de valores nulos (con errores)subscriber_type: Verificación del conjunto de valores (Fallida)trip_id: Verificación de unicidad (Con errores)
Para cualquier regla con errores, 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 Análisis, 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 de los resultados del análisis de calidad de los datos
- Supervisa las métricas de Knowledge Catalog
- Crea un flujo de trabajo de calidad de los datos de política como código con la CLI de Antigravity
- Administra las reglas de calidad de los datos como código con Terraform
- Reutiliza reglas de calidad de los datos en varias tablas
- Explora casos de uso adicionales de Knowledge Catalog