Creación de un lago de datos a partir de una JDBC fuente en Lake Formation - AWS Lake Formation

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Creación de un lago de datos a partir de una JDBC fuente en Lake Formation

Este tutorial le guía por los pasos que debe seguir en la AWS Lake Formation consola para crear y cargar su primer lago de datos desde una JDBC fuente mediante Lake Formation.

Destinatarios previstos

En la siguiente tabla se enumeran los roles que se utilizan en este AWS Lake Formation JDBCtutorial.

Rol Descripción
IAMadministrador Un usuario que puede crear AWS Identity and Access Management (IAM) usuarios y roles y buckets de Amazon Simple Storage Service (Amazon S3). Tiene la política AdministratorAccess AWS administrada.
Administrador de lago de datos Usuario que puede acceder al Catálogo de datos, crear bases de datos y conceder permisos de Lake Formation a otros usuarios. Tiene menos IAM permisos que el IAM administrador, pero los suficientes para administrar el lago de datos.
Analista de datos Usuario que puede ejecutar consultas en el lago de datos. Solo tiene permisos suficientes para ejecutar consultas.
Rol de flujo de trabajo Un rol con las IAM políticas necesarias para ejecutar un flujo de trabajo.

Para obtener información sobre los requisitos previos para completar el tutorial, consulte JDBCrequisitos previos del tutorial.

JDBCrequisitos previos del tutorial

Antes de comenzar el AWS Lake Formation JDBCtutorial, asegúrese de haber hecho lo siguiente:

  • Completar las tareas de Introducción a Lake Formation.

  • Elija un banco JDBC de datos accesible que desee utilizar para el tutorial.

  • Reúna la información necesaria para crear un tipo JDBC de AWS Glue conexión. Este objeto del catálogo de datos incluye el URL almacén de datos, las credenciales de inicio de sesión y, si el almacén de datos se creó en una Amazon Virtual Private Cloud (AmazonVPC), información VPC de configuración adicional específica. Para más información, consulte Definición de conexiones en el Catálogo de datos de AWS Glue en la Guía del programador de AWS Glue .

En el tutorial se presupone que está familiarizado con AWS Identity and Access Management (IAM). Para obtener información al respectoIAM, consulte la Guía IAM del usuario.

Para empezar, vaya al Paso 1: Crear un usuario analista de datos.

Paso 1: Crear un usuario analista de datos

En este paso, crea un usuario AWS Identity and Access Management (IAM) para que sea el analista de datos de su lago de datos AWS Lake Formation.

Este usuario tiene el conjunto mínimo de permisos para consultar el lago de datos.

  1. Abra la consola de IAM en https://console.aws.amazon.com/iam. Inicie sesión como el usuario administrador que creó en Creación de un usuario con acceso administrativo o como usuario con la política AdministratorAccess AWS administrada.

  2. Cree una tabla con nombre datalake_user con la configuración siguiente:

    • Habilite AWS Management Console el acceso.

    • Defina una contraseña y no solicite restablecerla.

    • Adjunte la política AmazonAthenaFullAccess AWS gestionada.

    • Vincule la siguiente política insertada. Llame a la política DatalakeUserBasic.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lakeformation:GetDataAccess", "glue:GetTable", "glue:GetTables", "glue:SearchTables", "glue:GetDatabase", "glue:GetDatabases", "glue:GetPartitions", "lakeformation:GetResourceLFTags", "lakeformation:ListLFTags", "lakeformation:GetLFTag", "lakeformation:SearchTablesByLFTags", "lakeformation:SearchDatabasesByLFTags" ], "Resource": "*" } ] }

Paso 2: Crear una conexión en AWS Glue

nota

Omita este paso si ya tiene una AWS Glue conexión a su fuente JDBC de datos.

AWS Lake Formation accede a las fuentes JDBC de datos a través de una AWS Glue conexión. Una conexión es un objeto del Catálogo de datos que contiene toda la información necesaria para conectarse al origen de datos. Puede crear una conexión utilizando la consola de AWS Glue.

Para crear una conexión
  1. Abra la consola de AWS Glue en https://console.aws.amazon.com/glue/, e inicie sesión como el usuario administrador que creó en Creación de un usuario con acceso administrativo.

  2. En el panel de navegación, en Data catalog (Catálogo de datos), elija Connections (Conexiones).

  3. En la página Connectors (Conectores), seleccione Create custom connector (Crear conector personalizado).

  4. En la página de propiedades del conector, introduzca datalake-tutorial el nombre de la conexión y elija JDBCel tipo de conexión. A continuación, elija Next.

  5. Continúe con el asistente de conexión y guarde la conexión.

    Para obtener información sobre cómo crear una conexión, consulte las propiedades de la AWS Glue JDBC conexión en la Guía para AWS Glue desarrolladores.

Paso 3: Crear un bucket de Amazon S3 para el lago de datos

En este paso, creará el bucket de Amazon Simple Storage Service (Amazon S3) que será la ubicación raíz de su lago de datos.

  1. Abra la consola de Amazon S3 en https://console.aws.amazon.com/s3/e inicie sesión como el usuario administrador que creóCreación de un usuario con acceso administrativo.

  2. Elija Crear depósito y siga el asistente para crear un depósito con el nombre<yourName>-datalake-tutorial, donde <yourName> es la inicial y el apellido de su pila. Por ejemplo: jdoe-datalake-tutorial.

    Para obtener instrucciones detalladas sobre la creación de un bucket de Amazon S3, consulte ¿Cómo se crea un bucket de S3? en la Guía del usuario de Amazon Simple Storage Service.

Paso 4: Registrar una ruta de Amazon S3

En este paso, registrará una ruta de Amazon Simple Storage Service (Amazon S3) como ubicación raíz de su lago de datos.

  1. Abra la consola de Lake Formation en https://console.aws.amazon.com/lakeformation/. Inicie sesión como administrador del lago de datos.

  2. En el panel de navegación, bajo Administración, seleccione Ubicaciones de los lagos de datos.

  3. Seleccione Registrar ubicación y, a continuación, Examinar.

  4. Seleccione el <yourName>-datalake-tutorial depósito que creó anteriormente, acepte el IAM rol predeterminado yAWSServiceRoleForLakeFormationDataAccess, a continuación, elija Registrar ubicación.

    Para obtener más información sobre cómo registrar ubicaciones, consulte Añadir una ubicación de Amazon S3 a su lago de datos.

Paso 5: Conceder permisos de ubicación de datos

Las entidades principales deben tener permisos de ubicación de datos en una ubicación de lago de datos para crear tablas o bases de datos del Catálogo de datos que apunten a esa ubicación. Debe conceder permisos de ubicación de datos al IAM rol para los flujos de trabajo, de modo que el flujo de trabajo pueda escribir en el destino de la ingesta de datos.

  1. En la consola de Lake Formation, desde panel de navegación, Permisos, seleccione Ubicaciones de datos.

  2. Elija Conceder y, en el cuadro de diálogo Conceder permisos:

    1. Para el IAMusuario y los roles, elijaLakeFormationWorkflowRole.

    2. En Ubicaciones de almacenamiento, elija su bucket de <yourName>-datalake-tutorial.

  3. Elija Conceder.

Para obtener más información sobre permisos de ubicación de datos, consulte Underlying data access control.

Paso 6: Crear una base de datos en el Catálogo de datos

Las tablas de metadatos del Catálogo de datos de Lake Formation se almacenan en una base de datos.

  1. En la consola de Lake Formation, en el panel de navegación, Catálogo de datos, seleccione Bases de datos.

  2. Seleccione Crear base de datos y, en Detalles de la base de datos, introduzca el nombre lakeformation_tutorial.

  3. Deje los demás campos en blanco y elija Crear base de datos.

Paso 7: Conceder permisos de datos

Debe conceder permisos para crear tablas de metadatos en el Catálogo de datos. Como el flujo de trabajo se ejecutará con el rol LakeFormationWorkflowRole, debe conceder estos permisos al rol.

  1. En la consola de Lake Formation, en el panel de navegación, en Permisos, seleccione Permisos de lago de datos.

  2. Seleccione Conceder y, en el cuadro de diálogo Conceder permisos de datos:

    1. En Principios, para IAMusuarios y roles, elijaLakeFormationWorkflowRole.

    2. En Etiquetas LF o recursos del catálogo, elija Recursos de Catálogo de datos con nombre.

    3. En Bases de datos, elija la base de datos que creó anteriormente, lakeformation_tutorial.

    4. En Permisos de base de datos, seleccione Crear tabla, Modificar y Borrar, y desactive Super si está marcado.

  3. Elija Conceder.

Para obtener más información sobre permisos de Lake Formation, consulte Descripción general de los permisos de Lake Formation .

Paso 8: Utilizar un esquema para crear un flujo de trabajo.

El AWS Lake Formation flujo de trabajo genera las AWS Glue tareas, los rastreadores y los activadores que descubren e ingieren datos en su lago de datos. Cree un flujo de trabajo basado en uno de los esquemas predefinidos de Lake Formation.

  1. En la consola de Lake Formation, en el panel de navegación, elija Esquemas y, a continuación, Usar esquema.

  2. En la página Usar un esquema, en Tipo de esquema, elija Instantánea de base de datos.

  3. En Importar origen, para Conexión de base de datos, elija la conexión que acaba de crear, datalake-tutorial, o elija una conexión existente para sus orígenes de datos.

  4. En Ruta de datos de origen, introduzca la ruta desde la que se van a ingerir los datos en el formulario <database>/<schema>/<table>.

    Puede sustituir el carácter de porcentaje (%) por esquema o tabla. Para las bases de datos que admiten esquemas, introduzca <database>/<schema>/% para que coincida con todas las tablas de <schema> dentro <database>. Oracle Database y My SQL no admiten el esquema en la ruta; en su lugar, introduzca <database>/%. Para Oracle Database, <database> es el identificador del sistema (SID).

    Por ejemplo, si una base de datos Oracle tiene orcl como base de datosSID, orcl/% introdúzcala para que coincidan con todas las tablas a las que tiene acceso el usuario especificado en la JDCB conexión.

    importante

    Este campo distingue entre mayúsculas y minúsculas.

  5. En Destino de importación, especifique estos parámetros:

    Bases de datos de destino lakeformation_tutorial
    Ubicación de almacenamiento de destino s3://<yourName>-datalake-tutorial
    Formato de los datos (Elija Parquet oCSV)
  6. Para ver la frecuencia de la importación, seleccione Ejecutar bajo demanda.

  7. En Opciones de importación, especifique estos parámetros:

    Nombre del flujo de trabajo lakeformationjdbctest
    IAMrol LakeFormationWorkflowRole
    Prefijo de tabla jdbctest
    nota

    Debe estar en minúscula.

  8. Seleccione Crear y espere a que la consola informe de que el flujo de trabajo se ha creado correctamente.

    sugerencia

    ¿Ha recibido este mensaje de error?

    User: arn:aws:iam::<account-id>:user/<datalake_administrator_user> is not authorized to perform: iam:PassRole on resource:arn:aws:iam::<account-id>:role/LakeFormationWorkflowRole...

    Si es así, compruebe que lo ha reemplazado <account-id> en la política en línea para el usuario administrador del lago de datos con un número de AWS cuenta válido.

Paso 9: Ejecutar el flujo de trabajo

Como especificó que el flujo de trabajo es run-on-demand, debe iniciarlo manualmente en AWS Lake Formation.

  1. En la consola de Lake Formation, en la página Esquemas, seleccione el flujo de trabajo lakeformationjdbctest.

  2. Elija Acciones y, a continuación, Pegar.

  3. Conforme se ejecuta el flujo de trabajo, vea su progreso en la columna Estado de la última ejecución. Pulse el botón de actualización de vez en cuando.

    El estado va de RUNNING, a Descubriendo, a Importando, a COMPLETED.

    Cuando finalice el flujo de trabajo:

    • El Catálogo de datos tendrá nuevas tablas de metadatos.

    • Sus datos se incorporan al lago de datos.

    Si el flujo de trabajo falla, haga lo siguiente:

    1. Seleccione el flujo de trabajo. Elija Acciones y, a continuación, elija Ver gráfico.

      El flujo de trabajo se abre en la consola de AWS Glue.

    2. Seleccione un flujo de trabajo y, a continuación, la pestaña Historial.

    3. Seleccione la ejecución más reciente y elija Ver detalles de la ejecución.

    4. Seleccione un trabajo o un rastreador fallidos en el gráfico dinámico (tiempo de ejecución) y revise el mensaje de error. Los nodos con errores aparecen en rojo o amarillo.

Paso 10: La subvención SELECT está sobre la mesa

Debe conceder el SELECT permiso a las nuevas tablas del catálogo de datos AWS Lake Formation para que el analista de datos pueda consultar los datos a los que apuntan las tablas.

nota

Un flujo de trabajo concede automáticamente el permiso SELECT sobre las tablas que crea al usuario que lo ejecutó. Como el administrador del lago de datos ejecutó este flujo de trabajo, debe conceder SELECT al analista de datos.

  1. En la consola de Lake Formation, en el panel de navegación, en Permisos, seleccione Permisos de lago de datos.

  2. Seleccione Conceder y, en el cuadro de diálogo Conceder permisos de datos:

    1. En Principios, para IAMusuario y roles, elijadatalake_user.

    2. En Etiquetas LF o recursos del catálogo, elija Recursos de Catálogo de datos con nombre.

    3. En Bases de datos, seleccione lakeformation_tutorial.

      Se rellena la lista Tablas.

    4. En Tablas, elija una o más tablas como su origen de datos.

    5. En Permisos de tabla y columna, elija Seleccionar.

  3. Elija Conceder.

El paso siguiente se efectúa como analista de datos.

Paso 11: Consultar el lago de datos mediante Amazon Athena

Utilice la Amazon Athena consola para consultar los datos de su lago de datos.

  1. Abra la consola de Athena en https://console.aws.amazon.com/athena/e inicie sesión como usuario y analista de datos. datalake_user

  2. Si es necesario, elija Comenzar para continuar con el editor de consultas de Athena.

  3. Para Origen de datos, elija AwsDataCatalog.

  4. En Database (Base de datos), elija lakeformation_tutorial.

    Se rellena la lista Tablas.

  5. En el menú emergente situado junto a una de las tablas, seleccione Vista previa de la tabla.

    La consulta se ejecuta y muestra 10 filas de datos.

Paso 12: Consultar los datos del lago de datos mediante Amazon Redshift Spectrum

Puede configurar Amazon Redshift Spectrum para consultar los datos que importó a su lago de datos de Amazon Simple Storage Service (Amazon S3). En primer lugar, cree un rol AWS Identity and Access Management (IAM) que se utilice para lanzar el clúster de Amazon Redshift y consultar los datos de Amazon S3. A continuación, conceda a este rol los permisos Select en las tablas que desee consultar. Después, conceda permisos al usuario para utilizar el editor de consultas de Amazon Redshift. Por último, cree un clúster de Amazon Redshift y ejecute consultas.

Creará el clúster como administrador y lo consultará como analista de datos.

Para obtener más información sobre Amazon Redshift Spectrum, consulte Uso de Amazon Redshift Spectrum para consultar datos externos en la Guía para desarrolladores de bases de datos de Amazon Redshift.

Para configurar los permisos para ejecutar consultas de Amazon Redshift
  1. Abra la IAM consola en. https://console.aws.amazon.com/iam/ Inicie sesión como el usuario administrador que creó Creación de un usuario con acceso administrativo (nombre de usuarioAdministrator) o como usuario con la política AdministratorAccess AWS gestionada.

  2. En el panel de navegación, seleccione Policies (Políticas).

    Si es la primera vez que elige Policies (Políticas), aparecerá la página Welcome to Managed Policies (Bienvenido a políticas administradas). Elija Get Started (Comenzar).

  3. Elija Create Policy (Crear política).

  4. Seleccione la JSONpestaña.

  5. Pegue el siguiente documento JSON de política.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lakeformation:GetDataAccess", "glue:GetTable", "glue:GetTables", "glue:SearchTables", "glue:GetDatabase", "glue:GetDatabases", "glue:GetPartitions", "lakeformation:GetResourceLFTags", "lakeformation:ListLFTags", "lakeformation:GetLFTag", "lakeformation:SearchTablesByLFTags", "lakeformation:SearchDatabasesByLFTags" ], "Resource": "*" } ] }
  6. Cuando haya terminado, seleccione Review (Revisar) para revisar la política. El validador de políticas notifica los errores de sintaxis.

  7. En la página Revisar política, introduzca el Nombre RedshiftLakeFormationPolicy para la política que está creando. (Opcional) Introduzca una descripción. Revise el Summary (Resumen) de la política para ver los permisos concedidos por su política. A continuación, elija Create policy (Crear política) para guardar su trabajo.

  8. En el panel de navegación de la IAM consola, elija Roles y, a continuación, elija Crear rol.

  9. En Select trusted entity (Seleccionar entidad de confianza), elija AWS service (Servicio de ).

  10. Elija el servicio Amazon Redshift para asumir este rol.

  11. Elija el caso de uso Redshift Customizable (Redshift personalizable) para su servicio. A continuación, elija Next: Permissions (Siguiente: permisos).

  12. Busque la política de permisos que ha creado, RedshiftLakeFormationPolicy, y marque la casilla situada junto al nombre de la política en la lista.

  13. Elija Siguiente: Etiquetas.

  14. Elija Siguiente: Revisar.

  15. En Role name (Nombre del rol), escriba el nombre RedshiftLakeFormationRole.

  16. (Opcional) En Role description (Descripción del rol), escriba una descripción para el nuevo rol.

  17. Revise el rol y, a continuación, seleccione Create role (Crear rol).

Para conceder permisos Select en la tabla para hacer consultas en la base de datos de Lake Formation
  1. Abra la consola de Lake Formation en https://console.aws.amazon.com/lakeformation/. Inicie sesión como administrador del lago de datos.

  2. En el panel de navegación, en Permisos, elija Permisos de lago de datos y seleccione Conceder.

  3. Proporcione la información siguiente:

    • Para IAMlos usuarios y los roles, elija el IAM rol que creó,RedshiftLakeFormationRole. Cuando ejecuta el editor de consultas de Amazon Redshift, utiliza esta IAM función para conceder permisos a los datos.

    • En Database (Base de datos), elija lakeformation_tutorial.

      Se rellena la lista de tablas.

    • En Tabla, elija una tabla dentro del origen de datos que desee consultar.

    • Elija el permiso Seleccionar.

  4. Elija Conceder.

Para configurar Amazon Redshift Spectrum y ejecutar consultas
  1. Abra la consola de Amazon Redshift en https://console.aws.amazon.com/redshift. Inicie sesión como usuario Administrator.

  2. Elija Create cluster.

  3. En la página Crear clúster, introduzca redshift-lakeformation-demo el identificador del clúster.

  4. Para el tipo de nodo, seleccione dc2.large.

  5. Desplácese hacia abajo y, en Configuraciones de base de datos, introduzca o acepte estos parámetros:

    • Nombre de usuario administrador: awsuser

    • Contraseña del usuario administrador: (Choose a password)

  6. Expanda los permisos del clúster y, en IAM Funciones disponibles, seleccione RedshiftLakeFormationRole. A continuación, selecciona Añadir IAM función.

  7. Si debe utilizar un puerto diferente al valor predeterminado de 5439, junto a Configuraciones adicionales, desactive la opción Utilizar valores predeterminados. Amplíe la sección de configuraciones de base de datos e introduzca un nuevo número de puerto de base de datos.

  8. Elija Create cluster.

    Se carga la página Clústeres.

  9. Espere hasta que el estado del clúster pase a ser Disponible. Seleccione el icono de actualización periódicamente.

  10. Conceda permiso al analista de datos para ejecutar consultas en el clúster. Para ello, complete los siguientes pasos.

    1. Abre la IAM consola en https://console.aws.amazon.com/iam/e inicia sesión como Administrator usuario.

    2. En el panel de navegación, seleccione Usuarios y vincule las siguientes políticas administradas al usuario datalake_user.

      • AmazonRedshiftQueryEditor

      • AmazonRedshiftReadOnlyAccess

  11. Cierre sesión en la consola de Amazon Redshift y vuelva a iniciarla como usuario datalake_user.

  12. En la barra de herramientas vertical izquierda, elija el EDITORicono para abrir el editor de consultas y conectarse al clúster. Si aparece el cuadro de diálogo Conectar a la base de datos, elija el nombre del clúster redshift-lakeformation-demo e introduzca el nombre de la base de datos dev, el nombre de usuario awsuser y la contraseña que creó. Seleccione Connect to database (Conectar a base de datos).

    nota

    Si no se le solicitan los parámetros de conexión y ya hay otro clúster seleccionado en el editor de consultas, elija Cambiar conexión para abrir el cuadro de diálogo Conectar a la base de datos.

  13. En el cuadro de texto Nueva consulta 1, introduzca y ejecute la siguiente instrucción para asignar la base de datos lakeformation_tutorial en Lake Formation al nombre del esquema de Amazon Redshift redshift_jdbc:

    importante

    Reemplazar <account-id> con un número AWS de cuenta válido y <region> con un nombre de AWS región válido (por ejemplo,us-east-1).

    create external schema if not exists redshift_jdbc from DATA CATALOG database 'lakeformation_tutorial' iam_role 'arn:aws:iam::<account-id>:role/RedshiftLakeFormationRole' region '<region>';
  14. En la lista de esquemas, bajo Seleccionar esquema, elija redshift_jdbc.

    Se rellena la lista de tablas. El editor de consultas muestra solo las tablas en las que se le concedieron permisos para el lago de datos de Lake Formation.

  15. En el menú emergente situado junto al nombre de una tabla, seleccione Vista previa de los datos.

    Amazon Redshift devuelve las 10 primeras filas.

    Ahora puede ejecutar consultas en las tablas y columnas para las que tiene permisos.

Paso 13: Conceder o revocar los permisos de Lake Formation mediante Amazon Redshift Spectrum

Amazon Redshift admite la posibilidad de conceder y revocar permisos de Lake Formation en bases de datos y tablas mediante declaraciones modificadas. SQL Estas instrucciones son similares a las existentes de Amazon Redshift. Para obtener más información, consulte GRANTy consulte REVOKEla Guía para desarrolladores de bases de datos Amazon Redshift.