Contratos de datos
Las responsabilidades se distribuyen entre dominios de una arquitectura federada, lo que puede dificultar la supervisión de dependencias y obtener información del uso de datos. Los contratos de datos pueden ayudarle a obtener información sobre el uso de datos porque proporcionan información sobre quién posee cada producto de datos. Asimismo, los contratos de datos le ayudarán a establecer estándares y administrar con confianza las canalizaciones de datos. Son esenciales para una realizar administración sólida de los datos y le proporcionarán información sobre:
Qué productos de datos se consumen.
Qué usuarios consumen qué productos de datos.
Cuál es el propósito de los usuarios para consumir productos de datos específicos.
La distribución y el uso de productos de datos tienen dos dimensiones: problemas técnicos y problemas empresariales. Los problemas técnicos incluyen el control de la canalizaciones de datos y las expectativas de estabilidad mutua de los datos. Los problemas empresariales incluyen los contratos de propósito de uso compartido de datos, que definen el uso, la privacidad y los objetivos del propósito, incluidas las limitaciones.
Estas dos dimensiones implican roles diferentes. Por lo general, debe confiar en los propietarios de aplicaciones o en los ingenieros de datos para problemas técnicos y en los propietarios de productos o representantes empresariales para problemas empresariales.
Contratos de datos
Los contratos de datos son similares a los contratos de servicios o los contratos de entrega de datos.
En una arquitectura más grande o distribuida, puede ser difícil supervisar los cambios. Para simplificar la supervisión, implemente el control de versiones y administre la compatibilidad siempre que tenga un producto de datos popular y ampliamente utilizado.
Si las aplicaciones están acopladas, eso indica que hay un alto grado de interdependencia entre ellas. Las aplicaciones que acceden a datos de otras aplicaciones o los consumen, siempre se acaban acoplando. Por ejemplo, cualquier cambio en la estructura de datos es probable que afecte directamente a otras aplicaciones que accedan a esos datos o los consuman. En situaciones en las que hay varias aplicaciones acopladas, es habitual encontrar un efecto en cascada donde un pequeño cambio en una sola aplicación afecta a muchas otras aplicaciones. Como tiene una mayor probabilidad de que haya efectos no deseados incluso realizando cambios menores, muchos arquitectos e ingenieros de software evitan la creación de arquitecturas acopladas.
Un contrato de datos garantiza la compatibilidad de la interfaz, e incluye los términos del servicio y el contrato de nivel de servicio (SLA). Los términos de servicio describen cómo se pueden usar los datos; por ejemplo, restringir su uso solo al desarrollo, las pruebas o la producción. Los Acuerdos de Nivel de Servicio describen la calidad necesaria de la entrega de datos y la interfaz. Los detalles de calidad que puede especificar en un Acuerdo de Nivel de Servicio incluyen:
- Tiempo de actividad
- Tasas de error
- Disponibilidad
- Desuso
- Un plan de desarrollo
- Números de versión
Puede guardar los metadatos que capturan estos detalles en el control de código fuente, lo que le permitirá desencadenar automáticamente validaciones e implementaciones. Para obtener más información sobre el control de código fuente, consulte Control de código fuente en Azure Data Factory.
Los contratos de datos proporcionan información sobre el acoplamiento y las dependencias entre dominios y aplicaciones. Un contrato también permite realizar pruebas de contratos, lo que garantiza que todos los cambios en la aplicación y la interfaz se validen con los requisitos de datos de los consumidores. Para detectar si sus flujos de datos se vuelven vulnerables a los cambios del origen de datos en sentido ascendente, puede realizar la detección del desfase de esquema. Para más información, consulte Desfase de esquema en el flujo de datos de asignación.
Los contratos de datos suelen formar parte de marcos de ingesta controlados por metadatos. Puede almacenar contratos de datos en registros de metadatos dentro de un metastore administrado de forma central. Desde esa ubicación central, los contratos de datos desempeñan un papel importante en varias áreas de ingesta de datos, entre las que se incluyen:
Ejecución de canalización
Creación de productos de datos
Validación de tipos de datos
Esquemas
Estándares de interoperabilidad
Versiones del protocolo
Reglas predeterminadas en los datos que faltan
Los contratos de datos implican grandes cantidades de metadatos técnicos. Para documentar las canalizaciones y los productos de datos, debe tener una descripción clara de los orígenes de datos, todas las transformaciones que han sufrido los datos y cómo entregarlos en última instancia.
En una arquitectura distribuida, tiene que distribuir un marco de canalización de datos entre distintos dominios, y los dominios se ajustarán a una forma común de trabajar. Dado que los dominios procesan los datos por sí mismos, ellos se encargan del control y la responsabilidad, mientras que el marco y los metadatos permanecen bajo la gobernanza central.
Al implementar un método federado, empiece con algo pequeño. Empiece con los conceptos básicos, como almacenar metadatos para la validación de esquemas, identificadores de empresa y referencias a otros conjuntos de datos en un repositorio de metadatos compartido. Agregue compatibilidad con EL linaje de datos para visualizar el movimiento de datos. Arranque los procesos e implemente controles mediante bibliotecas como Great Expectations para validar la calidad de los datos técnicos.
Todos los controles deben formar parte de los procedimientos de integración continua. Capture toda la información en tiempo de ejecución, incluidas las métricas y el registro, y convierta esa información en parte de la base de metadatos para obtener información de estabilidad de la canalización de datos. Esta configuración garantiza que tiene un bucle de comentarios entre los dominios y la cabina de administración central.
A medida que se estabiliza todo el movimiento de datos, capture los atributos de datos (como tablas y columnas) que usan los consumidores de datos y use esta información para continuar el escalado. Puede incluir esta información en el metastore administrado centralmente. La información de uso de datos le permite detectar cambios importantes e identificar sus efectos en los productores y consumidores de datos. Si un conjunto de datos de productos de datos no tiene consumidores, puede experimentar cambios perjudiciales. Use el control de código fuente (como Git) para permitir un proceso de protocolo de enlace entre proveedores y consumidores de los datos.
Contratos de uso compartido de datos
Los contratos de uso compartido de datos son una extensión de los contratos de datos. Los contratos describen el uso, la privacidad y el propósito de los datos, incluidas las limitaciones. Los contratos de uso compartido de datos son independientes de la interfaz y ofrecen información sobre qué datos se usan para un propósito determinado. También funcionan como entrada para los controles de seguridad de datos. Puede usar un contrato de uso compartido de datos para describir qué filtros o protecciones de seguridad se deben aplicar a los datos.
Los contratos de uso compartido de datos también evitan la comunicación errónea sobre el uso de datos. Los propietarios de dominios deben analizar los problemas relacionados con el uso compartido y el uso de datos antes de compartirlos. Estar familiarizado con esta información es fundamental para obtener la capacidad de regular los datos y su uso y asegurarse de que puede serle de ayuda a su organización. Una vez que todos los propietarios de dominio colaboren entre ellos, asegúrese de que lo documentan en un contrato de uso compartido de datos. En este contrato, también puede abordar áreas como:
La calidad de los datos funcionales
La historización
La administración del ciclo de vida de los datos
La distribución adicional de los datos
Aplique clasificaciones y condiciones como etiquetas de confidencialidad o condiciones de filtrado para proteger los datos.
En el diagrama de la sección anterior se muestran determinados elementos etiquetados como sidecar del producto de datos. Un sidecar del producto de datos es un componente o capa para insertar la ejecución de directivas, como controles de acceso a datos o métodos de salida de consumo de datos. Se trata de una abstracción de seguridad que usa contratos de datos para controlar la aplicación de seguridad en los datos del dominio. Puede crear un sidecar de producto de datos desde el repositorio de contratos de datos como una lista de control de acceso (ACL) o una vista sin servidor, o bien puede crear uno mediante el conjunto de datos duplicado que haya seleccionado y filtrado para un consumidor específico. En cualquier caso, el objetivo debe ser derivar las vistas de seguridad de los contratos de datos, de forma totalmente automatizada.
Conecte los atributos del contrato de datos y la documentación. Asegúrese de proporcionar contexto semántico y una relación con el glosario para que los consumidores puedan comprender cómo se traducen los requisitos empresariales en una implementación real. Si una relación con los términos empresariales es importante para su organización, considere la posibilidad de implementar directivas como, por ejemplo, permitir que los contratos de datos se establezcan después de que todos los atributos del producto de datos estén vinculados a entidades de términos empresariales. También puede aplicar este tipo de directiva a cambios contextuales, como ajustes de relación o definición.
Uso de los contratos de datos
Comience poco a poco cuando quiera usar contratos de datos. No introduzca demasiados cambios a la vez; los contratos de datos requieren un cambio cultural y los usuarios necesitan tiempo para familiarizarse con ellos y comprender la importancia de la propiedad de los datos. También debe encontrar el punto de equilibrio entre la cantidad adecuada de atributos de metadatos en los contratos de datos.
En los pasos siguientes se describe el proceso de implementación de contratos de datos para su organización.
Asegúrese de que las canalizaciones de datos técnicos son estables. Los casos de uso no pueden llegar a la producción si las canalizaciones a través de las que se mueven experimentan interrupciones inesperadas.
Ponga en marcha procesos simples y pragmáticos a medida que empiece a usar contratos de uso compartido. Puede empezar diseñando un formulario o plantilla simple en Microsoft Forms. Use un lenguaje claro y conciso que los lectores puedan entender fácilmente. El objetivo de la primera fase se centra en el cambio cultural y la recopilación de requisitos. Asegúrese de no complicar demasiado las cosas; acepte procesos manuales, limite los requisitos de metadatos iniciales e itere hasta que esos requisitos sean estables.
Después de poner en marcha los primeros procesos, reemplace los formularios manuales por una aplicación, una base de datos o una cola de mensajes basada en la web. El equipo central de gobernanza de datos debe seguir siendo responsable de la supervisión durante esta fase. La granularidad del acceso a los datos en este momento suele ser específica, centrándose en carpetas o archivos. Siempre que sea posible, use las API de REST para aprovisionar automáticamente las directivas de acceso a datos o las ACL.
Ponga a los propietarios o administradores de datos a cargo de un flujo de trabajo seguro para la administración de aprobaciones. El rol central de la gobernanza de datos debe supervisar las aprobaciones solo desde un rol secundario y revisar todos los contratos de datos con regularidad. En este momento, debe tener un catálogo de datos como Azure Purview en funcionamiento que muestre todos los productos de datos listos para el consumo. Para mejorar la funcionalidad del cumplimiento de datos y la seguridad, permita selecciones y filtros específicos y considere la posibilidad de usar técnicas como el enmascaramiento de datos dinámico para evitar que los datos se dupliquen.
En la fase final del recorrido de implementación del contrato de datos, todo debe estar totalmente automatizado para que pueda usarlo un usuario de autoservicio. El aprendizaje automático automatizado debe predecir aprobaciones de datos. Seguridad
Al final del proceso, todo será de autoservicio y totalmente automatizado. Esto incluye la aplicación de seguridad automatizada y el aprendizaje automático para predecir aprobaciones de datos. Las vistas seguras, por ejemplo, se implementan automáticamente después de la aprobación.
Los contratos de datos son una adición relativamente nueva pero importante a la arquitectura de la malla de datos, lo que proporciona transparencia para el uso de datos y las dependencias. Céntrese en la estabilidad técnica y la estandarización cuando empiece a usar contratos de datos y, a continuación, use un proceso aprendido por lecciones a medida que itera. Cree y automatice lentamente la gobernanza de datos para que no aumente la sobrecarga de su organización.
Como parte de la documentación del contrato de datos, también necesitará obtener los términos del servicio y los Acuerdos de Nivel de Servicio (SLA). Use los Acuerdos de Nivel de Servicio para describir los requisitos de calidad de la entrega de datos y las interfaces, entre los que se incluyen el tiempo de actividad, las tasas de error y la disponibilidad. Los Acuerdos de Nivel de Servicio también pueden incluir cualquier requisito de desuso, el plan de desarrollo y el número de versión que necesite definir.