Consulta de datos externos con AWS Glue Data Catalog

Autonomous Database soporta un sistema para la sincronización con una instancia de Amazon AWS Glue Data Catalog.

Acerca de las consultas con AWS Glue Data Catalog

Autonomous Database permite sincronizar con los metadatos de Amazon Web Service (AWS) Glue Data Catalog. Autonomous Database crea automáticamente una tabla externa de base de datos para cada tabla recogida por AWS Glue sobre los datos almacenados en el servicio de almacenamiento simple de Amazon (S3). Los usuarios pueden consultar datos almacenados en S3 desde Autonomous Database sin tener que derivar manualmente el esquema para los orígenes de datos externos y crear tablas externas.

Amazon AWS Glue Data Catalog es un servicio de gestión de metadatos centralizado que ayuda a los profesionales de datos a descubrir datos y admite la gobernanza de datos en la nube de AWS. Una instancia de Autonomous Database tiene la capacidad de sincronizar automáticamente los metadatos del catálogo de datos con AWS Glue Data Catalog, lo que permite a los usuarios de la base de datos utilizar inmediatamente Autonomous Database para consultar los datos almacenados en la nube de AWS.

La sincronización con AWS Glue Data Catalog tiene las mismas propiedades que la sincronización con OCI Data Catalog. La sincronización es dinámica y mantiene la actualización de la base de datos con respecto a los cambios en los datos subyacentes, lo que reduce el costo de administración, ya que mantiene automáticamente cientos a miles de tablas.

Conceptos relacionados con las consultas con AWS Glue Data Catalog

Es necesario comprender los siguientes conceptos para realizar consultas con los catálogos de datos de Amazon Web Service (AWS) Glue.

AWS Glue Data Catalog: base de datos

Una base de datos de AWS Glue representa una recopilación de definiciones de tablas relacionales, organizadas en un grupo lógico. Cada instancia de catálogo de datos de AWS Glue gestiona varias bases de datos.

Catálogo de datos de AWS Glue: tabla

Una tabla de AWS Glue representa una tabla relacional sobre los datos almacenados en la nube de AWS. Una tabla de AWS Glue define el esquema de los datos subyacentes y consta de información de columna, información de partición, información de serialización, información de almacenamiento, estadísticas, metadatos definidos por el usuario y otros metadatos. Las tablas del catálogo de datos de AWS Glue se pueden crear manualmente o automáticamente mediante un rastreador de AWS Glue.

Glue Data Catalog: Crawler

Puede utilizar un rastreador para rellenar el catálogo de datos de AWS Glue con tablas. Este es el método principal utilizado por la mayoría de los usuarios de AWS Glue. Un rastreador puede explorar varios almacenes de datos en una sola ejecución. Una vez terminado, Crawler crea o actualiza una o más tablas en el catálogo de datos. Los trabajos de extracción, transformación y carga (ETL) que defina en AWS Glue utilizan estas tablas de catálogo de datos como orígenes y destinos. El trabajo ETL lee y escribe en los almacenes de datos especificados en las tablas de catálogo de datos de origen y destino.

El usuario puede crear tablas de AWS Glue manualmente o automáticamente mediante un rastreador predefinido o personalizado. Los rastreadores se conectan a los almacenes de datos subyacentes (por ejemplo, Amazon S3), llaman a los clasificadores para derivar el esquema de los datos y crean tablas de AWS Glue para almacenar los metadatos inferidos. AWS Glue proporciona clasificadores para tipos de archivo comunes, como CSV, JSON, Parquet y AVRO.

Asignación entre Autonomous Database y AWS Glue

Durante el proceso de sincronización, las tablas externas se crean en Autonomous Database derivadas de las bases de datos y tablas de Data Catalog de AWS Glue a través de Amazon S3.

AWS Glue organiza los metadatos recopilados en bases de datos y tablas. Una base de datos de AWS Glue es una recopilación de definiciones de tablas relacionales. Tablas de AWS Glue que describen el esquema común y las propiedades de los archivos asociados a la tabla.

AWS Glue sigue el modelo relacional para representar atributos. Para asignar esquemas jerárquicos a esquemas relacionales, AWS Glue infiere el esquema de los datos semiestructurados y simplifica los datos a un esquema relacional mediante un proceso de ETL.

La siguiente tabla representa la asignación entre los conceptos de OCI Data Catalog y los conceptos de AWS Glue Data Catalog.

Tabla 3-5 Asignación de OCI Data Catalog a AWS Glue Data Catalog

Catálogo de datos de OCI Catálogo de datos de AWS Glue Oracle Database
Activo de datos Database Esquema
Carpeta (Grupo) Esquema
Entidad lógica Tabla Tabla

Flujo de trabajo de usuario para realizar consultas con el catálogo de datos de AWS Glue

El flujo de trabajo de usuario básico para consultar datos de AWS S3 con AWS Glue Data Catalog implica conectarse a AWS Glue Data Catalog, sincronizar con Autonomous Database para crear automáticamente tablas externas y, a continuación, consultar los datos de S3.

El administrador de Data Catalog de la base de datos crea una conexión entre la instancia de Autonomous Database y una instancia de Data Catalog de AWS Glue y, a continuación, configura y ejecuta una sincronización (sinc) entre AWS Glue Data Catalog y Autonomous Database. Autonomous Database crea automáticamente una tabla externa para las tablas recopiladas por AWS Glue sobre los datos almacenados en S3.

El administrador de consultas de Data Catalog de la base de datos o el administrador de la base de datos otorgan acceso READ a las tablas externas generadas para que los analistas de datos y otros usuarios de la base de datos puedan examinar y consultar Autonomous Database sin tener que derivar manualmente el esquema para los orígenes de datos externos y crear tablas externas.

Usuarios

En la siguiente tabla se describen los diferentes tipos de usuarios que realizan las acciones de flujo de trabajo del usuario.

Usuario Descripción
Administrador de Database Data Catalog Usuario de base de datos con el rol DCAT_SYNC.
Administrador de consultas de Database Data Catalog Usuario de base de datos capaz de otorgar acceso en tablas externas creadas automáticamente a otros usuarios.
Analista de datos Usuario de base de datos en Autonomous Database que consulta datos en AWS S3 mediante la consulta de tablas externas creadas automáticamente o mediante la interacción directa con AWS Glue Data Catalog.

Usuario de catálogo de datos de AWS Glue

Usuario de AWS con acceso a un catálogo de datos de AWS Glue.

Usuario de almacenamiento de objetos AWS S3

Usuario de AWS con acceso a los datos almacenados en AWS S3

Flujo de Trabajo de Usuario

La siguiente tabla describe cada acción incluida en el flujo de trabajo y qué tipo de usuario puede realizar la acción.

Nota

El paquete DBMS_DCAT está disponible para realizar las tareas necesarias para consultar el almacenamiento de objetos S3 de AWS mediante AWS Glue Data Catalog. Consulte Paquete DBMS_DCAT.
Acción Quién es el usuario Descripción
Creación de políticas Administrador de base de datos de Data Catalog

La credencial de usuario de Autonomous Database debe tener los permisos adecuados para acceder a Data Catalog de AWS Glue y leer desde S3 Object Storage.

Más información: Las credenciales y las políticas de IAM necesarias.

Crear credenciales Administrador de base de datos de Data Catalog
Asegúrese de que las credenciales de base de datos están activas para acceder a Data Catalog de AWS Glue y consultar el almacenamiento de objetos S3. El usuario llama a DBMS_CLOUD.CREATE_CREDENTIAL para crear credenciales de usuario.
Nota

Solo están soportadas las credenciales de Amazon Web Services (AWS). Las credenciales de nombres de recursos de Amazon (ARN) de AWS no están soportadas.

Más información: DBMS_CLOUD CREATE_CREDENTIAL Procedimiento

Conexión

Administrador de base de datos de Data Catalog

Establezca una conexión entre una instancia de Autonomous Database y una instancia de AWS Glue Data Catalog. La conexión utiliza los privilegios del usuario de catálogo de datos de AWS Glue. Las conexiones de una instancia de Autonomous Database a varias instancias de AWS Glue Data Catalog están soportadas.

Para iniciar una conexión entre una instancia de Autonomous Database y una instancia de AWS Glue Data Catalog, el usuario:
  1. Llama a DBMS_DCAT.SET_DATA_CATALOG_CREDENTIAL mediante una credencial de AWS (clave de acceso/clave de acceso secreta) para especificar la instancia de destino de AWS Glue Data Catalog.
  2. Llama a DBMS_DCAT.SET_OBJECT_STORE_CREDENTIAL mediante una credencial de AWS (clave de acceso/clave de acceso secreto) para acceder al almacenamiento de objetos S3 de AWS.
  3. Llama a DBMS_DCAT.SET_DATA_CATALOG_CONN mediante un punto final del servicio AWS Glue

Una vez realizada la conexión, Autonomous Database almacena los metadatos asociados, como el ID de catálogo de AWS Glue, la región, el punto final y los objetos de credenciales.

More information: SET_DATA_CATALOG_CONN Procedure, UNSET_DATA_CATALOG_CONN Procedure, SET_DATA_CATALOG_CREDENTIAL Procedure, SET_OBJECT_STORE_CREDENTIAL Procedure.

Sincronizar

Administrador de base de datos de Data Catalog

El usuario puede iniciar manualmente una sincronización con los catálogos de datos de AWS Glue conectados mediante DBMS_DCAT.RUN_SYNC o crear sincronizaciones automáticas mediante DBMS_DCAT.CREATE_SYNC_JOB.

La sincronización realiza lo siguiente:
  • Crea tablas externas en Autonomous Database que se derivan del catálogo de datos de AWS Glue conectado.
  • Permite a los usuarios obtener una vista previa de los metadatos de las bases de datos y tablas de AWS Glue.
  • Modifica o borra las tablas externas sincronizadas existentes si los metadatos de AWS Glue han cambiado.
More information: See RUN_SYNC Procedure, CREATE_SYNC_JOB Procedure, DROP_SYNC_JOB Procedure, Synchronization Mapping

Controlar sincronización

Administrador de base de datos de Data Catalog

El usuario puede ver el estado de sincronización consultando la vista USER_LOAD_OPERATIONS. Una vez completado el proceso de sincronización, el usuario puede ver un log de los resultados de la sincronización, incluidos los detalles sobre las asignaciones a tablas externas.

Más información: Supervisión y solución de problemas de cargas

Otorgar Privilegios

Administrador de consultas de Data Catalog de base de datos, administrador de base de datos

El administrador de consultas o el administrador de la base de datos de Data Catalog deben otorgar privilegios de lectura en las tablas externas generadas a los usuarios del analista de datos. Esto permite a los analistas de datos consultar las tablas externas generadas.

consulta

Analista de datos

Los analistas de datos pueden revisar los esquemas y las tablas sincronizados en los esquemas GLUE$* y consultar las tablas externas mediante cualquier herramienta o aplicación que soporte Oracle SQL.

Se accede a los datos de S3 mediante los privilegios del usuario de almacenamiento de objetos S3 de AWS.

Más información: Ejemplo: consulta con AWS Glue Data Catalog

Terminar conexiones

Administrador de base de datos de Data Catalog

Para eliminar una asociación de Data Catalog existente, el usuario llama al procedimiento UNSET_DATA_CATALOG_CONN.

Esta acción solo se realiza cuando ya no tenga previsto utilizar el Data Catalog de AWS Glue conectado y las tablas externas que se derivan del catálogo. Con esta acción se suprimen los metadatos de Data Catalog de AWS Glue y se borran las tablas externas sincronizadas de la instancia de Autonomous Database.

Más información: UNSET_DATA_CATALOG_CONN Procedimiento

Ejemplo: consulta con AWS Glue Data Catalog

Este ejemplo le guía a través del proceso de ejecución de consultas sobre conjuntos de datos almacenados en Amazon Simple Storage Service (Amazon S3) mediante un catálogo de datos AWS Glue.

En este ejemplo, los metadatos de un catálogo de datos de AWS Glue se inspeccionan para ver qué objetos de Amazon S3 se han explorado previamente y existen en el catálogo de datos. Autonomous Database se asocia a AWS Glue Data Catalog y Amazon S3. El catálogo de datos se sincroniza con Autonomous Database para crear tablas externas a través de los juegos de datos almacenados en Amazon S3. Las tablas externas se utilizan para consultar los juegos de datos en Amazon S3.

  1. Inspeccionar metadatos en AWS Glue Data Catalog.
    1. Inicie la consola AWS Glue.A continuación se muestra la descripción de glue_console.png
    2. Navegue al catálogo de datos, las bases de datos y las tablas para buscar objetos existentes.

      En este ejemplo, existen algunos objetos en Amazon S3 para los que AWS Glue ha explorado y creado previamente tablas, como se muestra a continuación:

      A continuación se muestra la descripción de glue_tables.png
  2. Asocie AWS Glue a Autonomous Database.
    1. Cree credenciales en Autonomous Database.

      La siguiente llamada de procedimiento incluye el ID de acceso y la clave secreta para proporcionar a Autonomous Database acceso a los datos subyacentes en Amazon S3.

      exec dbms_cloud.create_credential('CRED_AWS','<access id>', '<access key>');

    2. Asocie las credenciales al catálogo de datos de AWS Glue y al almacenamiento de objetos de Amazon S3.
      Estas llamadas de procedimiento asocian el catálogo de datos y el almacenamiento de objetos, respectivamente, a las credenciales.
      exec dbms_dcat.set_data_catalog_credential('CRED_AWS');
      exec dbms_dcat.set_object_store_credential('CRED_AWS');

    3. Configure una región de AWS en la que se esté ejecutando Glue.
      exec dbms_dcat.set_data_catalog_conn(region => 'us-west-2', catalog_type=>'AWS_GLUE');
  3. Sincronice los metadatos para crear tablas externas en Autonomous Database derivadas de bases de datos y tablas de AWS Glue.
    1. Una vez realizada la asociación, utilice la vista all_glue_databases para buscar qué bases de datos están dentro de un catálogo de datos de AWS Glue.
      select * from all_glue_databases order by name;

    2. Utilice la vista all_glue_tables para obtener una lista de tablas disponibles para la sincronización.
      select * from all_glue_tables order by database_name, name;

      A continuación se muestra la descripción de glue_table_list.png

    3. Sincronice Autonomous Database con dos tablas, store y item, que se encuentran en la base de datos parq.
          begin
          dbms_dcat.run_sync(
              synced_objects => '
                  {
                      "database_list": [
                          {
                          "database": "parq",
                          "table_list": ["store","item"]
                          }
                       ]
                   }',
          error_semantics => 'STOP_ON_ERROR');
          end;
          /

  4. Inspeccione los nuevos objetos en Autonomous Database y ejecute una consulta sobre S3.
    1. Utilice SQL Developer para ver los nuevos objetos creados por la operación de sincronización anterior.

      El esquema GLUE$PARQ_TPCDS_ORACLE_PARQ se ha generado y nombrado automáticamente mediante la llamada al procedimiento dbms_dcat.run_sync.

      A continuación se muestra la descripción de glue_sql_dev.png

    2. Ejecute una consulta SQL en los almacenes de datos de Amazon S3.
      SELECT * FROM glue$parq_tpcds_oracle_parq.store;