Garantizar la calidad de los datos mediante contratos de datos

Un contrato de datos es un acuerdo formal entre un productor y un consumidor de datos que define, entre otras cosas, la estructura, el esquema y la calidad esperados de los datos. Garantiza que los datos cumplan los requisitos y se ajusten a las definiciones de la empresa.

Los contratos de datos destinados a su uso en IBM watsonx.data intelligence deben estar redactados en formato YAML o JSON y cumplir con el Estándar de Contratos de Datos Abiertos.

Vista previa técnica Esta es una vista previa de tecnología y todavía no está soportada para su uso en entornos de producción.

Permisos necesarios
Debes tener el rol de administrador o editor en el proyecto, así como los permisos de usuario «Gestionar activos de calidad de datos» y «Ejecutar reglas de calidad de datos ».

Los contratos de datos se pueden gestionar y aplicar íntegramente a través de la interfaz de usuario de Data Product Hub. No obstante, los usuarios también pueden gestionar y controlar las versiones de los archivos de contrato en formato YAML o JSON en un sistema de control de versiones externo, como Git. A continuación, pueden ejecutar validaciones de la calidad de los datos directamente mediante la API de aplicación de contratos de datos.

La API de aplicación de contratos de datos ofrece métodos que puedes utilizar para estas tareas:

  1. Sube un nuevo contrato de datos o actualiza uno ya existente.
  2. Realiza pruebas de validación de la calidad de los datos basadas en ese contrato.
  3. Recupera los resultados de la prueba.

Las llamadas a la API requieren uno o varios de estos parámetros:

project_id
El ID del proyecto que deseas utilizar como espacio de trabajo para tus validaciones.
id_contrato_datos
El identificador del contrato de datos con el que desea validar sus datos. Puedes obtener el ID del id campo de la respuesta al crear un contrato de datos. También puedes enviar una GET /data_quality/v4/projects/{project_id}/data_contracts llamada para obtener una lista de todos los contratos de datos de un proyecto.

Los siguientes tipos de comprobaciones de calidad de los datos se validan para los contratos de datos:

  • Reglas en formato SQL
  • Estas métricas de la biblioteca a nivel de columna:
    • Valores nulos
    • Valores perdidos
    • Valores no válidos
    • Valores duplicados
  • Estas métricas de la biblioteca a nivel de esquema:
    • Recuento de filas
    • Valores duplicados

Para cada comprobación, puedes proporcionar información sobre la programación en el contrato de datos.

Para obtener más información sobre estas comprobaciones de calidad de los datos y sobre cómo configurar la programación, consulte el Estándar de Contrato de Datos Abiertos: Calidad de los datos.

Aplicar un nuevo contrato de datos

Quieres aplicar un contrato de datos que aún no existe en el proyecto:

  1. Crea el contrato en formato YAML o JSON, por ejemplo, en Git.

  2. Opcional: Comprueba que el contrato cumple con la sintaxis definida en el estándar ODCS antes de crearlo en el proyecto:

    POST /data_quality/v4/projects/{project_id}/data_contracts_validation
    
  3. Crea el contrato en el proyecto:

    POST /data_quality/v4/projects/{project_id}/data_contracts
    
  4. Ejecuta la prueba:

    POST /data_quality/v4/projects/{project_id}/data_contracts/{data_contract_id}/test
    

    Los activos de datos y las reglas SQL definidas en el contrato de datos se crean en el proyecto y las reglas se ejecutan, ya sea directamente o de forma programada. Si desea eliminar las reglas de calidad de datos del proyecto una vez finalizada la prueba, establezca el retain_dq_objects parámetro de la llamada en false.

  5. Recuperar los resultados de las pruebas:

    GET /data_quality/v4/projects/{project_id}/data_contracts/{data_contract_id}/test_results
    
  6. Revisa los resultados para determinar si los datos cumplen con los estándares de calidad establecidos.

Aplicación de un contrato de datos actualizado

Has actualizado el contrato de datos y debes volver a comprobar tus datos. Por ejemplo, han cambiado los datos sujetos al contrato de datos o los requisitos de calidad de los datos.

  1. Actualiza el contrato en el repositorio de código fuente, por ejemplo, en Git.

  2. Actualiza el contrato en el proyecto:

    PUT /data_quality/v4/projects/{project_id}/data_contracts/{data_contract_id}
    
  3. Ejecuta la prueba:

    POST /data_quality/v4/projects/{project_id}/data_contracts/{data_contract_id}/test
    

    En función de los cambios que se produzcan en el contrato de datos, se actualizan o añaden los activos de datos y las reglas SQL, y estas reglas se ejecutan, ya sea de forma inmediata o según un calendario programado.

  4. Recuperar los resultados de las pruebas:

    GET /data_quality/v4/projects/{project_id}/data_contracts/{data_contract_id}/test_results
    
  5. Revisa los resultados para determinar si los datos cumplen con los estándares de calidad establecidos.

Buscar un contrato de datos específico y realizar pruebas o repetirlas según sea necesario

Quieres saber si existe un contrato concreto en tu proyecto y si se ha aplicado, para decidir si debes volver a ejecutar las pruebas de calidad de los datos o incluso crear un nuevo contrato.

  1. Selecciona el contrato que deseas buscar en el repositorio de origen. Anota el nombre, el ID o cualquier metadato que puedas relacionar con el contenido del proyecto.

  2. Enumera los contratos de datos que hay en el proyecto:

    GET /data_quality/v4/projects/{project_id}/data_contracts
    
  3. Si el contrato que buscas existe en el proyecto, comprueba si hay resultados disponibles:

    GET /data_quality/v4/projects/{project_id}/data_contracts/{data_contract_id}/test_results
    
    1. Si los resultados están disponibles y siguen siendo válidos, no es necesario tomar ninguna medida adicional.

    2. Si no hay resultados disponibles o si los resultados existentes están desactualizados, por ejemplo, porque se basan en un contrato anterior o en datos antiguos, realiza la prueba:

      POST /data_quality/v4/projects/{project_id}/data_contracts/{data_contract_id}/test
      
    3. Obtener los resultados:

    GET /data_quality/v4/projects/{project_id}/data_contracts/{data_contract_id}/test_results
    
  4. Si el contrato que buscas no existe en el proyecto, sigue los pasos que se indican en «Aplicar un nuevo contrato de datos ».

Eliminar contratos, reglas o resultados

Puedes eliminar los contratos de datos y los resultados de las pruebas de un proyecto:

  • Eliminar uno o varios contratos:

    DELETE /data_quality/v4/projects/{project_id}/data_contracts
    

    Indique los ID de los contratos en una lista separada por comas.

  • Eliminar los resultados de las pruebas de un contrato concreto:

    DELETE /data_quality/v4/projects/{project_id}/data_contracts/{data_contract_id}/test_results