Conexión del Catálogo de datos a un metaalmacén de Hive externo - 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.

Conexión del Catálogo de datos a un metaalmacén de Hive externo

Para conectar el AWS Glue Data Catalog a un metaalmacén de Hive, debe implementar una aplicación AWS SAM llamada GlueDataCatalogFederation-HivMetastore. Crea e implementa los recursos necesarios para conectar el metaalmacén de Hive al Catálogo de datos. Puede acceder a la aplicación AWS SAM en AWS Serverless Application Repository.

La aplicación AWS SAM crea la conexión para el metaalmacén de Hive detrás de Amazon API Gateway mediante una función de Lambda. La aplicación AWS SAM utiliza un identificador uniforme de recursos (URI) como entrada del usuario y conecta el metaalmacén externo de Hive al Catálogo de datos. Cuando un usuario ejecuta una consulta en las tablas de Hive, el Catálogo de datos llama al punto de conexión de la puerta de enlace de API. El punto de conexión invoca la función de Lambda para recuperar los metadatos de las tablas de Hive.

Para conectar el Catálogo de datos al metaalmacén de Hive y configurar los permisos
  1. Implemente la aplicación AWS SAM.
    1. Inicie sesión en la Consola de administración de AWS y abra la AWS Serverless Application Repository.

    2. En el panel de navegación, elija Aplicaciones disponibles.

    3. Elija Aplicaciones públicas.

    4. Seleccione la opción Mostrar aplicaciones que crean roles de IAM personalizados o políticas de recursos.

    5. En el cuadro de búsqueda, ingrese el nombre GlueDataCatalogFederation-HivMetastore.

    6. Elija la aplicación GlueDataCatalogFederation-HiveMetastore.

    7. En Configuración de la aplicación, introduzca la siguiente configuración mínima requerida para la función de Lambda:

      • Nombre de la aplicación: escriba el nombre de la aplicación AWS SAM.

      • GlueConnectionName: nombre de la conexión.

      • hiveMetastoreURIS: el URL del host del metaalmacén de Hive.

      • LambdaMemory: cantidad de memoria Lambda en MB entre 128 y 10240. El valor predeterminado es 1024.

      • LambdaTimeout: tiempo de ejecución máximo de la invocación de Lambda en segundos. El valor predeterminado es 30.

      • VPCSecurityGroupIds y VPCSubnetIds: información de la VPC en la que se encuentra el metaalmacén de Hive.

    8. Seleccione Confirmo que esta aplicación puede crear roles de IAM y políticas de recursos personalizados. Para obtener más información, elija el enlace Info.

    9. En la parte inferior derecha de la sección Configuración de aplicación, elija Implementar. Una vez finalizada la implementación, aparece la función de Lambda en la sección Recursos en la consola de Lambda.

    La aplicación se implementa en Lambda. Su nombre va precedido de serverlessrepo- para indicar que la aplicación se implementó desde el AWS Serverless Application Repository. Al seleccionar la aplicación, accederá a la página Recursos, donde se enumeran todos los recursos de la aplicación que se implementaron. Los recursos incluyen la función de Lambda que permite la comunicación entre el Catálogo de datos y el metaalmacén de Hive, la conexión AWS Glue y otros recursos necesarios para la federación de bases de datos.

  2. Crear una base de datos federada en Data Catalog.

    Después de crear una conexión al metaalmacén de Hive, puede crear bases de datos federadas en el Catálogo de datos que apunten a las bases de datos externas del metaalmacén de Hive. Debe crear una base de datos correspondiente en el Catálogo de datos para cada base de datos del metaalmacén de Hive que conecte al Catálogo de datos.

    Lake Formation console
    1. En la página de Uso compartido de datos, seleccione la pestaña Bases de datos compartidas y, a continuación, Crear base de datos.

    2. En Nombre de la conexión, elija el nombre de su conexión al metaalmacén de Hive en el menú desplegable.

    3. Introduzca un nombre de base de datos único y el identificador de origen de federación para la base de datos. Este es el nombre que se utiliza en las instrucciones SQL cuando se consultan las tablas. El nombre puede tener un máximo de 255 caracteres y debe ser único en la cuenta.

    4. Elija Creación de base de datos.

    AWS CLI
    aws glue create-database \ '{ "CatalogId": "<111122223333>", "database-input": { "Name":"<fed_glue_db>", "FederatedDatabase":{ "Identifier":"<hive_db_on_emr>", "ConnectionName":"<hms_connection>" } } }'
  3. Ver las tablas de la base de datos federada.

    Después de crear la base de datos federada, puede ver la lista de tablas en su metaalmacén de Hive mediante la consola de Lake Formation o la AWS CLI.

    Lake Formation console
    1. Seleccione el nombre de la base de datos en la pestaña Bases de datos compartidas.

    2. En la página Bases de datos, elija Ver tablas.

    AWS CLI

    Los ejemplos siguientes muestran cómo recuperar la definición de la conexión, el nombre de la base de datos y algunas o todas las tablas de la base de datos. Sustituya el ID del Catálogo de datos por el ID de Cuenta de AWS que utilizó para crear la base de datos. Sustituya hms_connection por el nombre de la conexión.

    aws glue get-connection \ --name <hms_connection> \ --catalog-id 111122223333
    aws glue get-database \ --name <fed_glu_db> \ --catalog-id 111122223333
    aws glue get-tables \ --database-name <fed_glue_db> \ --catalog-id 111122223333
    aws glue get-table \ --database-name <fed_glue_db> \ --name <hive_table_name> \ --catalog-id 111122223333
  4. Concesión de permisos.

    Una vez creada la base de datos, puede conceder permisos a otros roles y usuarios de IAM de su cuenta o a Cuentas de AWS externas y organizaciones. No podrá conceder permisos de escritura de datos (insertar, eliminar) ni permisos de metadatos (modificar, eliminar, crear) en las bases de datos federadas. Para obtener más información sobre cómo conceder permisos, consulte Administrar los permisos de Lake Formation.

  5. Consultar las bases de datos federadas.

    Tras conceder los permisos, los usuarios pueden iniciar sesión y empezar a consultar la base de datos federada mediante Athena y Amazon Redshift. Los usuarios ahora pueden usar el nombre de la base de datos local para hacer referencia a la base de datos de Hive en las consultas de SQL.

    Ejemplo de sintaxis de consulta de Amazon Athena

    Sustituya fed_glue_db por el nombre de la base de datos local que creó anteriormente.

    Select * from fed_glue_db.customers limit 10;