Uso de AWS Glue para conectarse a orígenes de datos en Amazon S3 - Amazon Athena

Uso de AWS Glue para conectarse a orígenes de datos en Amazon S3

Athena puede conectarse a los datos almacenados en Amazon S3 mediante el AWS Glue Data Catalog para almacenar metadatos, como nombres de tablas y columnas. Una vez realizada la conexión, las bases de datos, las tablas y las vistas aparecen en el Editor de consultas de Athena.

Para definir la información de esquema para que AWS Glue la use, puede crear un rastreador de AWS Glue para recuperar la información automáticamente, o puede agregar manualmente una tabla e ingresar la información de esquema.

Creación de un rastreador de AWS Glue

Para crear un rastreador, abra la consola de Athena y, a continuación, utilice la consola de AWS Glue de forma integrada. Al crear el rastreador, especifica una ubicación de datos en Amazon S3 para rastrearla.

Para crear un rastreador en AWS Glue desde la consola de Athena
  1. Abra la consola de Athena en https://console.aws.amazon.com/athena/.

  2. En el editor de consultas, junto a Tablas y vistas, elija Crear y, a continuación, Rastreador de AWS Glue.

  3. En la página Add crawler (Agregar rastreador) de AWS Glue, siga los pasos para crear un rastreador. Para obtener más información, consulte Uso de rastreadores de AWS Glue en esta guía y Rellenar AWS Glue Data Catalog en la Guía para desarrolladores de AWS Glue.

nota

Athena no reconoce los patrones de exclusión que especifica en un rastreador de AWS Glue. Por ejemplo, si tiene un bucket de Amazon S3 que contiene tanto .csv como .json y se excluyen los archivos .json desde el rastreador, Athena consulta ambos grupos de archivos. Para evitar esto, coloque los archivos que desea excluir en una ubicación diferente.

Adición de una tabla mediante un formulario

En el procedimiento siguiente se muestra cómo utilizar la consola de Athena para agregar una tabla mediante el formulario Create Table From S3 bucket data (Crear tabla a partir de datos de buckets de S3).

Para agregar una tabla e ingresar información del esquema mediante un formulario
  1. Abra la consola de Athena en https://console.aws.amazon.com/athena/.

  2. En el editor de consultas, junto a Tables and views (Tablas y vistas), elija Create (Crear) y, a continuación, S3 bucket data (Datos del bucket de S3).

  3. En el formulario Create Table From S3 bucket data (Crear tabla a partir de datos de buckets de S3), en Table name (Nombre de la tabla), ingrese un nombre para la tabla.

  4. En Database configuration (Configuración de la base de datos), elija una base de datos existente o cree una nueva.

  5. En Location of Input Data Set (Ubicación del conjunto de datos de entrada), especifique la ruta de acceso en Amazon S3 para la carpeta que contiene el conjunto de datos que desea procesar. No incluya ningún nombre de archivo en la ruta. Athena analiza todos los archivos de la carpeta que especifique. Si sus datos ya están particionados (por ejemplo,

    s3://DOC-EXAMPLE-BUCKET/logs/year=2004/month=12/day=11/), ingrese únicamente la ruta base (por ejemplo, s3://DOC-EXAMPLE-BUCKET/logs/).

  6. En Data Format (Formato de datos), elija una de las siguientes opciones:

    • Para Table type (Tipo de tabla), elija Apache Hive, Apache Iceberg o Delta Lake. Athena usa el tipo de tabla Apache Hive como tipo de tabla predeterminado. Para obtener información acerca de la consulta de tablas de Apache Iceberg en Athena, consulte Uso de tablas de Apache Iceberg. Para obtener información acerca del uso de tablas de Delta Lake en Athena, consulte Consulta de tablas de Linux Foundation Delta Lake.

    • En File format (Formato de archivo), elija el formato de archivo o registro en el que se encuentran los datos.

      • Para la opción Text File with Custom Delimiters (Archivo de texto con delimitadores personalizados), especifique un terminador de campo (es decir, un delimitador de columna). Si lo desea, puede especificar un Collection terminator (Terminador de colección) que marque el final de un tipo de matriz o un Collection terminator (Terminador de colección) que marque el final de un tipo de datos de mapa.

    • SerDe library (Biblioteca SerDe): una biblioteca SerDe (serializador-deserializador) analiza un formato de datos determinado para que Athena pueda crearle una tabla. Para la mayoría de los formatos, se elige una biblioteca SerDe predeterminada. Para los siguientes formatos, elija una biblioteca según sus requisitos:

      • Apache Web Logs (Registros web de Apache): elija la biblioteca RegexSerDe o GrokSerDe. Para RegexSerDe, proporcione una expresión regular en el cuadro Regex definition (Definición de regex). Para GrokSerDe, proporcione una serie de expresiones regulares con nombre para la propiedad SerDe input.format. Las expresiones regulares nombradas son más fáciles de leer y mantener que las expresiones regulares. Para obtener más información, consulte Consulta de registros de Apache almacenados en Amazon S3.

      • CSV: elija LazySimpleSerDe si sus datos separados por comas no contienen valores entre comillas dobles o si utilizan el formato java.sql.Timestamp. Elija OpenCSVSerDe si los datos incluyen comillas o utilizan el formato numérico de UNIX de TIMESTAMP (por ejemplo, 1564610311). Para obtener más información, consulte LazySimpleSerDe para CSV, TSV y archivos con delimitación personalizada y OpenCSVSerDe para el procesamiento de CSV.

      • JSON: elija la biblioteca SerDe JSON de OpenX o Hive. Ambos formatos esperan que cada documento JSON esté en una sola línea de texto y que los campos no estén separados por caracteres de nueva línea. El SerDe de OpenX ofrece algunas propiedades adicionales. Para obtener más información sobre estas propiedades, consulte El SerDe JSON de OpenX. Para obtener más información acerca de SerDe de Hive, consulte El SerDe JSON de Hive.

      Para obtener más información sobre el uso de bibliotecas SerDe en Athena, consulte Formatos de datos y SerDes compatibles.

  7. En SerDe properties (Propiedades de SerDe), agregue, edite o elimine propiedades y valores de acuerdo con la biblioteca de SerDe que esté utilizando y sus requisitos.

    • Para agregar una propiedad de SerDe, elija Add SerDe property (Agregar propiedad de SerDe).

    • En el campo Name (Nombre), ingrese el nombre de la propiedad.

    • En el campo Value (Valor), ingrese un valor para la propiedad.

    • Para eliminar una propiedad de SerDe, elija Remove (Eliminar).

  8. En Table properties (Propiedades de la tabla), elija o edite las propiedades de la tabla según sus requisitos.

    • En Write compression (Compresión de escritura), elija una opción de compresión. La disponibilidad de la opción de compresión de escritura y de las opciones de compresión disponibles depende del formato de los datos. Para obtener más información, consulte Compatibilidad con la compresión de Athena.

    • En Encryption (Cifrado), seleccione Encrypted data set (Conjunto de datos cifrados) si los datos subyacentes están cifrados en Amazon S3. Esta opción establece la propiedad de la tabla has_encrypted_data en True (Verdadero) en la instrucción CREATE TABLE.

  9. En Column details (Detalles de la columna), ingrese los nombres y los tipos de datos de las columnas que desee agregar a la tabla.

    • Para agregar más columnas de una a la vez, elija Add a column (Agregar una columna).

    • Para agregar más columnas rápidamente, elija Bulk add columns (Agregar columnas en bloque). En el cuadro de texto, ingrese una lista de columnas separadas por comas con el formato column_name data_type, column_name data_type, […] y, a continuación, elija Add (Agregar).

  10. (Opcional) En Partition details (Detalles de la partición), agregue uno o varios nombres y tipos de datos de columnas. La partición mantiene los datos relacionados juntos en función de los valores de las columnas y puede ayudar a reducir la cantidad de datos escaneados por consulta. Para obtener información sobre las particiones, consulte Particiones de datos en Athena.

  11. (Opcional) En Bucketing (Agrupación en buckets), puede especificar una o más columnas que tengan filas que desee agrupar y, a continuación, colocarlas en varios buckets. Esto le permite consultar solo el bucket que desea leer cuando se especifica el valor de las columnas agrupadas en buckets.

    • En Buckets, seleccione una o más columnas que tengan un gran número de valores únicos (por ejemplo, una clave principal) y que se usen con frecuencia para filtrar los datos de las consultas.

    • En Number of buckets (Número de buckets), ingrese un número que permita que los archivos tengan un tamaño óptimo. Para obtener información, consulte Top 10 Performance Tuning Tips for Amazon Athena (Los 10 principales consejos de ajuste de rendimiento de Amazon Athena) en el blog sobre macrodatos de AWS.

    • Para especificar las columnas agrupadas, la instrucción CREATE TABLE utilizará la siguiente sintaxis:

      CLUSTERED BY (bucketed_columns) INTO number_of_buckets BUCKETS
    nota

    La opción Bucketing (Agrupación en buckets) no está disponible para los tipos de tablas de Iceberg.

  12. El recuadro Preview table query (Vista previa de consulta de tablas) muestra la instrucción CREATE TABLE generada por la información ingresada en el formulario. La instrucción de vista previa no se puede editar directamente. Para cambiar la instrucción, modifique los campos del formulario o cree la instrucción directamente en el editor de consultas en lugar de utilizar el formulario.

  13. Elija Create table (Crear tabla) para ejecutar la instrucción generada en el editor de consultas y crear la tabla.