Introducción al AWS Glue Data Catalog - AWS Glue

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.

Introducción al AWS Glue Data Catalog

El AWS Glue Data Catalog es su almacén de metadatos técnicos persistentes. Se trata de un servicio administrado que puede usar para almacenar, comentar y compartir metadatos en la nube de AWS. Para obtener más información, consulte AWS Glue Data Catalog.

La consola de AWS Glue, junto con algunas interfaces de usuario, se actualizaron recientemente.

Información general

Puede usar este tutorial para crear el primer Catálogo de datos de AWS Glue, que utiliza un bucket de Simple Storage Service (Amazon S3) como origen de datos.

En este tutorial, utilizará la consola de AWS Glue para hacer lo siguiente:

  1. Crear una base de datos

  2. Crear una tabla

  3. Utilizar un bucket de Amazon S3 como origen de datos

Tras completar estos pasos, habrá utilizado correctamente un bucket de Simple Storage Service (Amazon S3) como origen de datos para rellenar el Catálogo de datos de AWS Glue.

Paso 1: Crear una base de datos

Para comenzar, inicie sesión en la AWS Management Console y abra la consola de AWS Glue.

Para crear una base de datos mediante la consola de AWS Glue:

  1. En la consola de AWS Glue, elija Databases (Bases de datos) en Data catalog (Catálogo de datos) en el menú de la izquierda.

  2. Seleccione Agregar una base de datos.

  3. En la página Crear base de datos, ingrese el nombre de la base de datos. En la sección Ubicación: opcional, establezca la ubicación de la URI para que la usen los clientes del catálogo de datos. Si no sabe esto, puede continuar con la creación de la base de datos.

  4. (Opcional). Ingrese la descripción de la base de datos.

  5. Elija Crear base de datos.

Enhorabuena, acaba de configurar su primera base de datos con la consola de AWS Glue. La nueva base de datos aparecerá en la lista de bases de datos disponibles. Puede editar la base de datos eligiendo su nombre en el panel Databases (Bases de datos).

Pasos siguientes

Otras formas de crear una base de datos:

Acaba de crear una base de datos con la consola de AWS Glue, pero hay otras formas de crear una base de datos:

  • Puede utilizar rastreadores para crear una base de datos y tablas automáticamente. Para configurar una base de datos mediante rastreadores, consulte Trabajo con rastreadores en la consola de AWS Glue.

  • Puede usar plantillas de AWS CloudFormation. Consulte Crear recursos de AWS Glue con plantillas de AWS Glue Data Catalog.

  • También puede crear una base de datos mediante las operaciones de la API de base de datos de AWS Glue.

    Para crear una base de datos mediante la operación create, se debe estructurar la solicitud mediante la inclusión de los parámetros (obligatorios) de DatabaseInput.

    Por ejemplo:

    A continuación, se muestran ejemplos de cómo puede utilizar CLI, Boto3 o DDL para definir una tabla basada en el mismo archivo flights_data.csv del bucket de S3 que utilizó en el tutorial.

    CLI
    aws glue create-database --database-input "{\"Name\":\"clidb\"}"
    Boto3
    glueClient = boto3.client('glue') response = glueClient.create_database( DatabaseInput={ 'Name': 'boto3db' } )

Para obtener más información sobre los tipos de datos, la estructura y las operaciones de la API de la base de datos, consulte API de la base de datos.

Pasos siguientes

En la siguiente sección, creará una tabla y la agregará a la base de datos.

También puede explorar la configuración y los permisos de su Catálogo de datos. Consulte Trabajo con la configuración del Catálogo de datos en la consola de AWS Glue.

Paso 2. Creación de una tabla

En este paso, utilice la consola de AWS Glue para crear una tabla.

  1. En la consola de AWS Glue, elija Tables (Tablas) en el menú de la izquierda.

  2. Elija Add table (Añadir tabla).

  3. Configure las propiedades de la tabla ingresando un nombre para ella en Table details (Detalles de la tabla).

  4. En la sección Databases (Bases de datos), elija en el menú desplegable la base de datos que creó en el paso 1.

  5. En la sección Add a data store (Agregar un almacén de datos), S3 estará seleccionado de manera predeterminada como tipo de origen.

  6. En la sección Data is located in (Los datos se encuentran en), elija Specified path in another account (Ruta especificada en otra cuenta).

  7. Copie y pegue la ruta del campo de entrada Include path (Incluir ruta):

    s3://crawler-public-us-west-2/flight/2016/csv/

  8. En la sección Data format (Formato de datos), para Classification (Clasificación), elija CSV, y para Delimiter (Delimitador), comma (,) (coma [,]). Elija Siguiente.

  9. Tendrá que definir un esquema. Un esquema define la estructura y el formato de un registro de datos. Elija Add column (Agregar columna). (Para obtener más información, consulte Schema registries [Registros de esquemas]).

  10. Especifique las propiedades de columna:

    1. Ingrese un nombre de columna.

    2. Para Column type (Tipo de columna), 'cadena' ya está seleccionada de forma predeterminada.

    3. Para Column number (Número de columna), '1' ya está seleccionado de forma predeterminada.

    4. Elija Añadir.

  11. Tendrá que agregar índices de partición. Es opcional. Para omitir este paso, elija Next (Siguiente).

  12. Se muestra un resumen de las propiedades de la tabla. Si todo está correcto, seleccione Crear. En caso contrario, elija Back (Volver) y edite según sea necesario.

Enhorabuena, ha creado correctamente una tabla de forma manual y la ha asociado a una base de datos. La tabla recién creada aparecerá en el panel de tablas. En el panel, puede administrar y modificar todas sus tablas.

Para obtener más información, consulte Trabajo con tablas en la consola de AWS Glue.

Siguientes pasos

Pasos siguientes

Ahora que hemos rellenado el Catálogo de datos, puede comenzar a crear trabajos en AWS Glue. Consulte Creación de trabajos visuales de ETL con AWS Glue Studio.

Además de utilizar la consola, hay otras formas de definir tablas en el Catálogo de datos, entre ellas:

  • Creating and running a crawler (Creación y puesta en marcha de un rastreador)

  • Adición de clasificadores a un rastreador en AWS Glue

  • Uso de la API de tabla de AWS Glue

  • Uso de la plantilla de AWS Glue Data Catalog

  • Migrating an Apache Hive metastore (Migración de un meta-almacén de Apache Hive)

  • Uso de AWS CLI, Boto3 o lenguaje de definición de datos (DDL)

    A continuación, se muestran ejemplos de cómo puede utilizar CLI, Boto3 o DDL para definir una tabla basada en el mismo archivo flights_data.csv del bucket de S3 que utilizó en el tutorial.

    Consulte la documentación sobre cómo estructurar un comando AWS CLI. El ejemplo de CLI contiene la sintaxis JSON para el valor “aws glue create-table --table-input”.

    CLI
    { "Name": "flights_data_cli", "StorageDescriptor": { "Columns": [ { "Name": "year", "Type": "bigint" }, { "Name": "quarter", "Type": "bigint" } ], "Location": "s3://crawler-public-us-west-2/flight/2016/csv", "InputFormat": "org.apache.hadoop.mapred.TextInputFormat", "OutputFormat": "org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat", "Compressed": false, "NumberOfBuckets": -1, "SerdeInfo": { "SerializationLibrary": "org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe", "Parameters": { "field.delim": ",", "serialization.format": "," } } }, "PartitionKeys": [ { "Name": "mon", "Type": "string" } ], "TableType": "EXTERNAL_TABLE", "Parameters": { "EXTERNAL": "TRUE", "classification": "csv", "columnsOrdered": "true", "compressionType": "none", "delimiter": ",", "skip.header.line.count": "1", "typeOfData": "file" } }
    Boto3
    import boto3 glue_client = boto3.client("glue") response = glue_client.create_table( DatabaseName='sampledb', TableInput={ 'Name': 'flights_data_manual', 'StorageDescriptor': { 'Columns': [{ 'Name': 'year', 'Type': 'bigint' }, { 'Name': 'quarter', 'Type': 'bigint' }], 'Location': 's3://crawler-public-us-west-2/flight/2016/csv', 'InputFormat': 'org.apache.hadoop.mapred.TextInputFormat', 'OutputFormat': 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat', 'Compressed': False, 'NumberOfBuckets': -1, 'SerdeInfo': { 'SerializationLibrary': 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe', 'Parameters': { 'field.delim': ',', 'serialization.format': ',' } }, }, 'PartitionKeys': [{ 'Name': 'mon', 'Type': 'string' }], 'TableType': 'EXTERNAL_TABLE', 'Parameters': { 'EXTERNAL': 'TRUE', 'classification': 'csv', 'columnsOrdered': 'true', 'compressionType': 'none', 'delimiter': ',', 'skip.header.line.count': '1', 'typeOfData': 'file' } } )
    DDL
    CREATE EXTERNAL TABLE `sampledb`.`flights_data` ( `year` bigint, `quarter` bigint) PARTITIONED BY ( `mon` string) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS INPUTFORMAT 'org.apache.hadoop.mapred.TextInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat' LOCATION 's3://crawler-public-us-west-2/flight/2016/csv/' TBLPROPERTIES ( 'classification'='csv', 'columnsOrdered'='true', 'compressionType'='none', 'delimiter'=',', 'skip.header.line.count'='1', 'typeOfData'='file')