Linaje de datos en Amazon DataZone - Amazon DataZone

Linaje de datos en Amazon DataZone

El linaje de datos de Amazon DataZone es una característica compatible con OpenLineage basada en API que puede ayudarle a capturar y visualizar eventos de linaje, desde sistemas habilitados para OpenLineage o mediante API, para rastrear los orígenes de los datos, realizar un seguimiento de las transformaciones y ver el consumo de datos entre las organizaciones. Le proporciona una visión global de sus activos de datos para ver el origen de los activos y su cadena de conexiones. Los datos de linaje incluyen información sobre las actividades del catálogo de datos empresariales de Amazon DataZone, incluida la información sobre los activos catalogados, los suscriptores de esos activos y las actividades que tienen lugar fuera del catálogo de datos empresariales capturados a través de programación mediante las API.

El linaje se puede configurar para que se capture automáticamente desde las bases de datos de AWS Glue y Amazon Redshift cuando se agregan a Amazon DataZone. Además, las ejecuciones de trabajos ETL de Spark en la consola o los cuadernos de AWS Glue (v5.0 y superiores) se pueden configurar para enviar eventos de linaje a los dominios de Amazon DataZone.

En Amazon DataZone, los administradores de los dominios pueden configurar el linaje al definir los esquemas integrados del lago de datos y el almacén de datos, lo que garantiza que todas las ejecuciones de orígenes de datos creados a partir de esos recursos estén habilitadas para la captura automática del linaje.

Con las API compatibles con OpenLineage de Amazon DataZone, los administradores de dominio y los productores de datos pueden capturar y almacenar eventos de linaje más allá de lo que está disponible en Amazon DataZone, incluidas las transformaciones en Amazon S3, AWS Glue y otros servicios. Esto proporciona una visión integral a los consumidores de datos y les ayuda a ganar confianza en el origen del activo, mientras que los productores de datos pueden evaluar el impacto de los cambios en un activo al comprender su uso. Además, Amazon DataZone realiza versiones del linaje con cada evento, lo que permite a los usuarios visualizar el linaje en cualquier momento o comparar las transformaciones en el historial de un activo o de un trabajo. Este historial de linajes proporciona una comprensión más profunda de la evolución de los datos, algo esencial para la resolución de problemas, la auditoría y la garantía de integridad de los activos de datos.

Con el linaje de datos, puede lograr lo siguiente en Amazon DataZone:

  • Comprenda la procedencia de los datos: saber dónde se originaron los datos fomenta la confianza en los datos al proporcionarle una comprensión clara de sus orígenes, dependencias y transformaciones. Esta transparencia ayuda a tomar decisiones fiables basadas en datos.

  • Comprenda el impacto de los cambios en las canalizaciones de datos: cuando se realizan cambios en las canalizaciones de datos, se puede utilizar el linaje para identificar a todos los consumidores en fases posteriores que se van a ver afectados. Esto ayuda a garantizar que los cambios se realicen sin interrumpir los flujos de datos críticos.

  • Identifique la causa raíz de los problemas de calidad de los datos: si se detecta un problema de calidad de los datos en un informe posterior, se puede utilizar el linaje, especialmente el linaje de columna, para rastrear los datos (de columna) e identificar el problema desde su origen. Esto puede ayudar a los ingenieros de datos a identificar y solucionar el problema.

  • Mejore la gobernanza y el cumplimiento de los datos: el linaje de columna se puede utilizar para demostrar el cumplimiento de las normas de gobernanza y privacidad de los datos. Por ejemplo, el linaje de columna se puede utilizar para mostrar dónde se almacenan los datos confidenciales (como la información de identificación personal) y cómo se procesan en las actividades posteriores.

Tipos de nodos de linaje en Amazon DataZone

en Amazon DataZone, la información del linaje de datos se presenta en nodos que representan tablas y vistas. Según el contexto del proyecto, por ejemplo, un proyecto seleccionado en la parte superior izquierda del portal de datos, los productores pueden ver tanto el inventario como los activos publicados, mientras que los consumidores solo pueden ver los activos publicados. Al abrir por primera vez la pestaña de linaje en la página de detalles del activo, el nodo del conjunto de datos catalogado es el punto de partida para desplazarse en sentido ascendente o descendente por los nodos de linaje del gráfico de linaje.

Los siguientes son los tipos de nodos de linaje de datos que se admiten en Amazon DataZone:

  • Nodo de conjunto de datos: este tipo de nodo incluye información sobre el linaje de datos de un activo de datos específico.

    • Los nodos de conjuntos de datos que incluyen información sobre los activos de AWS Glue o Amazon Redshift publicados en el catálogo de Amazon DataZone se generan automáticamente e incluyen el icono correspondiente de AWS Glue o Amazon Redshift en el nodo.

    • Los nodos de conjuntos de datos que incluyen información sobre activos que no están publicados en el catálogo de Amazon DataZone los crean manualmente los administradores de dominio (productores) y se representan mediante un icono de activo personalizado predeterminado dentro del nodo.

  • Nodo de trabajo (ejecución): este tipo de nodo muestra los detalles del trabajo, incluida la última ejecución de un trabajo concreto y los detalles de la ejecución. Este nodo también captura varias ejecuciones del trabajo y se puede ver en la pestaña Historial de los detalles del nodo. Puede ver los detalles del nodo seleccionando el icono del nodo.

Atributos clave en los nodos de linaje

El atributo sourceIdentifier de un nodo de linaje representa los eventos que ocurren en un conjunto de datos. El sourceIdentifier del nodo de linaje es el identificador del conjunto de datos (tabla/vista, etc.). Se usa para garantizar la unicidad en los nodos del linaje. Por ejemplo, no puede haber dos nodos de linaje con el mismo nombre sourceIdentifier. A continuación se muestran ejemplos de valores sourceIdentifier para distintos tipos de nodos:

  • Para el nodo del conjunto de datos con el tipo de conjunto de datos respectivo:

    • Activo: amazon.datazone.asset/<assetId>

    • Listado (activo publicado): amazon.datazone.listing/<listingId>

    • Tabla de AWS Glue: arn:aws:glue:<region>:<account-id>:table/<database>/<table-name>

    • Tabla/vista de Amazon Redshift: arn:aws:<redshift/redshift-serverless>:<region>:<account-id>:<table-type(tabla/vista, etc.)>/<clusterIdentifier/workgroupName>/<database>/<schema>/<table-name>

    • Para cualquier otro tipo de nodo de conjunto de datos importado mediante eventos de ejecución de linaje abierto, se utiliza <namespace>/<name>del conjunto de datos de entrada/salida el sourceIdentifier del nodo.

  • Para trabajos:

    • Para los nodos de trabajo importados mediante eventos de ejecución de linaje abierto, se utiliza <jobs_namespace>.<job_name> como SourceIdentifier.

  • Para ejecuciones de trabajos:

    • Para los nodos de ejecución de trabajos importados mediante eventos de ejecución de linaje abierto, se usa <jobs_namespace>.<job_name>/<run_id> como SourceIdentifier.

En el caso de los activos creados mediante la API createAsset, el sourceIdentifier debe actualizarse mediante la API createAssetRevision para permitir la asignación del activo a los recursos iniciales.

Visualización del linaje de datos

La página de detalles del activo de Amazon DataZone proporciona una representación gráfica del linaje de datos, lo que facilita la visualización de las relaciones entre los datos en sentido ascendente o descendente. La página de detalles del activo ofrece las siguientes funciones para navegar por el gráfico:

  • Linaje de columna: amplíe el linaje de columna cuando esté disponible en los nodos del conjunto de datos. Esto muestra automáticamente las relaciones con los nodos del conjunto de datos ascendentes o descendentes si la información de la columna de origen está disponible.

  • Búsqueda de columnas: cuando la visualización predeterminada para el número de columnas es 10. Si hay más de 10 columnas, se activa la paginación para navegar al resto de las columnas. Para ver rápidamente una columna en particular, puede buscar en el nodo del conjunto de datos que muestre solo la columna buscada.

  • Ver solo los nodos del conjunto de datos: si desea pasar a ver solo los nodos del linaje del conjunto de datos y filtrar los nodos de trabajo, puede elegir el icono de control Abrir vista en la parte superior izquierda del visor de gráficos y activar la opción Mostrar solo los nodos del conjunto de datos. Esto eliminará todos los nodos de trabajo del gráfico y le permitirá navegar solo por los nodos del conjunto de datos. Tenga en cuenta que cuando está activada la visualización exclusiva de los nodos del conjunto de datos, el gráfico no se puede expandir hacia arriba ni hacia abajo.

  • Panel de detalles: cada nodo de linaje tiene detalles capturados y mostrados cuando se selecciona.

    • El nodo del conjunto de datos tiene un panel de detalles para mostrar todos los detalles capturados para ese nodo en una marca de tiempo determinada. Cada nodo del conjunto de datos tiene 3 pestañas, a saber: Información de linaje, Esquema e Historial. La pestaña del historial muestra un listado con las diferentes versiones del evento de linaje capturadas para ese nodo. Todos los detalles capturados de la API se muestran mediante formularios de metadatos o un visor JSON.

    • El nodo de trabajo tiene un panel de detalles para mostrar los detalles del trabajo con pestañas, a saber: Información del trabajo e Historial. El panel de detalles también captura las consultas o expresiones capturadas como parte de la ejecución del trabajo. La pestaña del historial muestra las diferentes versiones del evento de ejecución del trabajo capturadas para ese trabajo. Todos los detalles capturados de la API se muestran mediante formularios de metadatos o un visor JSON.

  • Pestañas de versión: todos los nodos de linaje del linaje de datos de Amazon DataZone tienen control de versiones. Para cada nodo de conjunto de datos o nodo de trabajo, las versiones se capturan como historial, lo que le permite navegar entre las distintas versiones para identificar qué ha cambiado con el tiempo. En cada versión se abre una nueva pestaña en la página del linaje para ayudar a comparar o contrastar.

Autorización de linaje de datos en Amazon DataZone

Permisos de escritura: para publicar datos de linaje en Amazon DataZone, debe tener un rol de IAM con una política de permisos que incluya una acción ALLOW en la API PostLineageEvent. Esta autorización de IAM se produce en la capa API Gateway.

Permisos de lectura: hay dos operaciones, GetLineageNode y ListLineageNodeHistory, que están incluidas en la política administrada AmazonDataZoneDomainExecutionRolePolicy y, por lo tanto, todos los usuarios del dominio Amazon DataZone pueden invocarlas para recorrer el gráfico de linaje de datos.

Experiencia con muestras de linaje de datos en Amazon DataZone

Puede utilizar la experiencia de muestra de linaje de datos para buscar y comprender el linaje de datos en Amazon DataZone, lo que incluye recorrer el gráfico de linaje de datos en sentido ascendente o descendente y explorar las versiones y el linaje de columna.

Complete el siguiente procedimiento para probar la experiencia de linaje de datos de muestra en Amazon DataZone:

  1. Acceda a la URL del portal de datos de Amazon DataZone e inicie sesión con las credenciales de inicio de sesión único (SSO) o con las de AWS. Si es administrador de Amazon DataZone, puede ir a la consola de Amazon DataZone en https://console.aws.amazon.com/datazone e iniciar sesión con la Cuenta de AWS en la que se creó el dominio y, a continuación, elegir Abrir el portal de datos.

  2. Elija cualquier activo de datos disponible para abrir la página de detalles del activo.

  3. En la página de detalles del dominio, haga clic en la pestaña Linaje y, después, pase el cursor por el icono de información antes de hacer clic en Probar linaje de muestra.

  4. En la ventana emergente sobre el linaje de datos, seleccione Iniciar un recorrido guiado por el linaje de datos.

    En este punto, se muestra una pestaña a pantalla completa con todo el espacio necesario para la información del linaje. El gráfico de linaje de datos de muestra aparece en principio con un nodo de base con 1 profundidad en cada extremo, en dirección ascendente y descendente. Puede expandir el gráfico en sentido ascendente o descendente. La información de las columnas también está disponible para que pueda elegir y ver cómo fluye el linaje a través de los nodos.

Cómo activar el linaje de datos en la consola de administración

Puede activar el linaje de datos como parte de la configuración de los esquemas del lago de datos predeterminado y del almacén de datos predeterminado.

Siga el procedimiento descrito a continuación a fin de activar el linaje de datos para el esquema del lago de datos predeterminado.

  1. Vaya a la consola de Amazon DataZone en https://console.aws.amazon.com/datazone e inicie sesión con las credenciales de su cuenta.

  2. Haga clic en Ver dominios y en el dominio en el que desee activar el linaje de datos para el esquema DefaultDataLake.

  3. En la página de detalles del dominio, vaya a la pestaña Esquemas.

  4. En la página de detalles del esquema DefaultDataLake, haga clic en la pestaña Regiones.

  5. Puede activar el linaje de datos al agregar una región a su esquema DefaultDataLake. Por lo tanto, si ya se ha agregado una región pero la función de linaje de datos no está activada (aparece un No en la columna Importar linaje de datos), primero debe eliminar esta región. Para activar el linaje de datos, haga clic en Agregar región, elija la región que desee agregar y marque la casilla Activar la importación del linaje de datos en la ventana emergente Agregar región.

Siga el procedimiento descrito a continuación a fin de activar el linaje de datos para el esquema DefaultDataWarehouse.

  1. Vaya a la consola de Amazon DataZone en https://console.aws.amazon.com/datazone e inicie sesión con las credenciales de su cuenta.

  2. Haga clic en Ver dominios y en el dominio en el que desee activar el linaje de datos para el esquema DefaultDataWarehouse.

  3. En la página de detalles del dominio, vaya a la pestaña Esquemas.

  4. En la página de detalles del esquema DefaultDataWarehouse, haga clic en la pestaña Conjuntos de parámetros.

  5. Puede activar el linaje de datos al agregar un conjunto de parámetros a su esquema DefaultDataWarehouse. Para ello, haga clic en Crear conjunto de parámetros.

  6. En la página Crear conjunto de parámetros, especifique lo siguiente y, a continuación, haga clic en Crear conjunto de parámetros.

    • Especifique un nombre para el conjunto de parámetros.

    • Especifique una descripción para el conjunto de parámetros.

    • Especifique la región de AWS en la que quiere crear entornos.

    • Especifique si Amazon DataZone debe usar estos parámetros para establecer una conexión con su clúster de Amazon Redshift o con un grupo de trabajo sin servidor.

    • Especifique un secreto de AWS.

    • Especifique el clúster o el grupo de trabajo sin servidor que quiera utilizar a la hora de crear entornos.

    • Especifique el nombre de la base de datos (dentro del clúster o grupo de trabajo especificados) que desee utilizar al crear entornos.

    • En Importar linaje de datos, marque la casilla Activar la importación del linaje de datos.

Uso del linaje de datos de Amazon DataZone mediante programación

Para utilizar la funcionalidad del linaje de datos en Amazon DataZone, puede invocar las siguientes API:

Automatización del linaje para el catálogo de AWS Glue

Cuando se agregan bases de datos y tablas de AWS Glue al catálogo de Amazon DataZone, la extracción del linaje se automatiza para dichas tablas mediante ejecuciones de orígenes de datos. Existen varias formas de automatizar el linaje para este origen:

  • Configuración del esquema: los administradores que configuran esquemas pueden activar la captura automática del linaje en los esquemas. Esto permite a los administradores definir qué orígenes de datos son importantes para la captura del linaje, en lugar de depender de que los productores de datos cataloguen los datos. Para obtener más información, consulte Cómo activar el linaje de datos en la consola de administración.

  • Configuración del origen de datos: los productores de datos, al configurar ejecuciones de orígenes de datos para bases de datos de AWS Glue, acceden a una vista e información sobre la calidad de los datos que les instruyen sobre el linaje de datos de ese origen de datos.

    • La configuración del linaje se puede ver en la pestaña Definición del origen de datos. Los productores de datos no pueden editar este valor.

    • La recopilación de linajes en las ejecuciones de orígenes de datos obtiene información de los metadatos de las tablas para construir el linaje. El rastreador de AWS Glue admite distintos tipos de orígenes. Los orígenes para los que se captura el linaje como parte de las ejecuciones de orígenes de datos incluyen Amazon S3, DynamoDB, Catalog, Delta Lake, las tablas de Iceberg y las tablas de Hudi almacenadas en Amazon S3. JDBC y DocumentDB o MongoDB no constituyen orígenes compatibles en este momento.

    • Limitación: si el número de tablas es mayor a 100, las ejecuciones de linajes fallarán una vez superadas las 100 tablas. Confirme que el rastreador de AWS Glue no esté configurado para incorporar más de 100 tablas a la vez.

  • Configuración de AWS Glue (v5.0): al ejecutar trabajos de AWS Glue en AWS Glue Studio, se puede configurar el linaje de datos para que los trabajos envíen eventos de linaje directamente al dominio de Amazon DataZone.

    1. Vaya a la consola de AWS Glue en https://console.aws.amazon.com/gluestudio e inicie sesión con las credenciales de su cuenta.

    2. Elija Trabajos de ETL y cree uno nuevo, o bien haga clic en uno de los trabajos existentes.

    3. Vaya a la pestaña Detalles del trabajo (incluido el trabajo de ETL Flows) y desplácese hacia abajo, hasta la sección Generar eventos de linaje.

    4. Marque la casilla para activar el envío de eventos de linaje; la sección se expandirá para mostrar un campo de entrada en el que introducir el ID de dominio de Amazon DataZone.

  • Configuración de los cuadernos de AWS Glue (V5.0): en los cuadernos se puede automatizar la recopilación de ejecuciones de Spark añadiendo un comando %%configure mágico. Esta configuración enviará los eventos al dominio de Amazon DataZone.

    %%configure --name project.spark -f { "--conf":"spark.extraListeners=io.openlineage.spark.agent.OpenLineageSparkListener --conf spark.openlineage.transport.type=amazon_datazone_api --conf spark.openlineage.transport.domainId={DOMAIN_ID} --conf spark.glue.accountId={ACCOUNT_ID} --conf spark.openlineage.facets.custom_environment_variables=[AWS_DEFAULT_REGION;GLUE_VERSION;GLUE_COMMAND_CRITERIA;GLUE_PYTHON_VERSION; --conf spark.glue.JOB_NAME={JOB_NAME}" }

    A continuación se exponen los detalles de los parámetros:

    • spark.extraListeners=io.openlineage.spark.agent.OpenLineageSparkListener: se creará OpenLineageSparkListener y se registrará en el bus oyente de Spark

    • spark.openlineage.transport.type=amazon_datazone_api: se trata de una especificación de OpenLineage para indicar al complemento OpenLineage que utilice el transporte de la API de DataZone para emitir eventos de linaje a la API PostLineageEvent de DataZone. Para obtener más información, consulte https://openlineage.io/docs/integrations/spark/configuration/spark_conf.

    • spark.openlineage.transport.domainId={DOMAIN_ID}: este parámetro establece el dominio al cual el transporte de la API enviará los eventos de linaje.

    • spark.openlineage.facets.custom_environment_variables [AWS_DEFAULT_REGION;GLUE_VERSION;GLUE_COMMAND_CRITERIA;GLUE_PYTHON_VERSION;]: las variables de entorno AWS_DEFAULT_REGION , GLUE_VERSION , GLUE_COMMAND_CRITERIA y GLUE_PYTHON_VERSION, que la sesión interactiva de Glue completa, se agregarán a LineageEvent.

    • spark.glue.accountId=<ACCOUNT_ID>: identificador de la cuenta del catálogo de datos de Glue en el que residen los metadatos. Este identificador se utiliza para construir el ARN de Glue en un evento de linaje.

    • spark.glue.JOB_NAME: nombre del trabajo del evento de linaje. El nombre del trabajo en el cuaderno se puede configurar como spark.glue.JOB_NAME: ${projectId}.${pathToNotebook}.

  • Defina los parámetros para configurar la comunicación con Amazon DataZone desde AWS Glue.

    Clave de los parámetros: --conf

    Valor de los parámetros:

    spark.extraListeners=io.openlineage.spark.agent.OpenLineageSparkListener --conf spark.openlineage.transport.type=amazon_datazone_api --conf spark.openlineage.transport.domainId=<DOMAIN_ID> --conf spark.openlineage.facets.custom_environment_variables=[AWS_DEFAULT_REGION;GLUE_VERSION;GLUE_COMMAND_CRITERIA;GLUE_PYTHON_VERSION;] --conf spark.glue.accountId=<ACCOUNT_ID> (replace <DOMAIN_ID> and <ACCOUNT_ID> with the right values)

    Para los cuadernos, añada estos otros parámetros:

    --conf spark.glue.JobName=<SessionId> --conf spark.glue.JobRunId=<SessionId or NONE?> replace <SessionId> and <SessionId> with the right values

Automatización del linaje desde Amazon Redshift

Al capturar el linaje desde el servicio Amazon Redshift con el esquema del almacén de datos configurado por los administradores, Amazon DataZone captura automáticamente el linaje. Las ejecuciones de linaje capturan las consultas ejecutadas para una base de datos determinada y generan eventos de linaje que se almacenan en Amazon DataZone para que los productores o consumidores de datos puedan visualizarlos cuando accedan a un activo en particular.

El linaje puede automatizarse mediante las siguientes configuraciones:

  • Configuración del esquema: los administradores que configuran esquemas pueden activar la captura automática del linaje en los esquemas. Esto permite a los administradores definir qué orígenes de datos son importantes para la captura del linaje, en lugar de depender de que los productores de datos cataloguen los datos. Para configurarlo, vaya a Cómo activar el linaje de datos en la consola de administración.

  • Configuración del origen de datos: los productores de datos, al configurar las ejecuciones de orígenes de datos para bases de datos de Amazon Redshift, encuentran la configuración del linaje de datos automatizada para dicho origen de datos.

    La configuración del linaje se puede ver en la pestaña Definición del origen de datos. Los productores de datos no pueden editar este valor.