Tutorial: Introducción a Tablas de S3
En este tutorial, creará un bucket de tablas e integrará buckets de tablas en la región con servicios de análisis de AWS. A continuación, usará la AWS CLI para crear el primer espacio de nombres y tabla en el bucket de tablas. A continuación, utilice AWS Lake Formation para conceder permisos en la tabla, de modo que pueda empezar a consultar la tabla con Athena.
sugerencia
Si va a migrar datos tabulares desde buckets de uso general a buckets de tablas, la Biblioteca de soluciones de AWS tiene una solución guiada que le ayudará. Esta solución automatiza el movimiento de tablas de Apache Iceberg y de Apache Hive registradas en AWS Glue Data Catalog y almacenadas en buckets de uso general mediante el uso de AWS Step Functions y de Amazon EMR con Apache Spark. Para obtener más información, consulte Guidance for Migrating Tabular Data from Amazon S3 to S3 Tables
Temas
Paso 1: creación de un bucket de tablas e integración con los servicios de análisis de AWS
En este paso, utilizará la consola de Amazon S3 para crear el primer bucket de tablas. Para conocer otras formas de crear un bucket de tablas, consulte Creación de un bucket de tablas.
nota
De forma predeterminada, la consola de Amazon S3 integra automáticamente los buckets de tablas con Amazon SageMaker Lakehouse, lo que permite a los servicios de análisis de AWS detectar automáticamente los datos de tablas de S3 y acceder a ellos. Si crea el primer bucket de tablas mediante programación con la AWS Command Line Interface (AWS CLI), los SDK de AWS o la API de REST, debe completar manualmente la integración de los servicios de análisis de AWS. Para obtener más información, consulte Uso de Tablas de Amazon S3 con servicios de análisis de AWS.
Inicie sesión en la AWS Management Console y abra la consola de Amazon S3 en https://console.aws.amazon.com/s3/
. En la barra de navegación de la parte superior de la página, elija el nombre de la Región de AWS que aparece. A continuación, elija la región en la que desea crear el bucket de tablas.
En el panel de navegación izquierdo, elija Buckets de tablas.
Elija Crear bucket de tablas.
En Configuración general, introduzca un nombre para el bucket de tablas.
El nombre de bucket de tablas debe:
Ser único dentro de la Cuenta de AWS en la región actual.
Tener entre 3 y 63 caracteres.
Constar únicamente de letras minúsculas, números y guiones (
-
).Comenzar y terminar por un número o una letra.
Una vez que haya creado el bucket de tablas, no podrá modificar su nombre. La Cuenta de AWS que crea el bucket de tablas es propietaria de este. Para obtener más información acerca de la nomenclatura de los buckets de tablas, consulte Reglas de nomenclatura de bucket de tablas.
-
En la sección Integración con servicios de análisis de AWS, asegúrese de que la casilla Activar la integración esté seleccionada.
Si la opción Activar la integración está seleccionada al crear el primer bucket de tablas con la consola, Amazon S3 intenta integrar el bucket de tablas con los servicios de análisis de AWS. Esta integración le permite utilizar los servicios de análisis de AWS para acceder a todas las tablas de la región actual. Para obtener más información, consulte Uso de Tablas de Amazon S3 con servicios de análisis de AWS.
Elija Crear bucket.
Paso 2: creación de un espacio de nombres de tabla y una tabla
Para este paso, creará un espacio de nombres en el bucket de tablas y, a continuación, creará una nueva tabla bajo ese espacio de nombres. Puede crear un espacio de nombres de tablas y una tabla utilizando la consola o la AWS CLI.
importante
Cuando cree tablas, asegúrese de utilizar todas las letras minúsculas en los nombres y las definiciones de las tablas. Por ejemplo, asegúrese de que los nombres de columna estén todos en minúsculas. Si el nombre o la definición de la tabla contiene letras mayúsculas, significa que la tabla no es compatible con AWS Lake Formation ni AWS Glue Data Catalog. En este caso, la tabla no será visible para servicios de análisis de AWS como Amazon Athena, aunque los buckets de tablas estén integrados con servicios de análisis de AWS.
Si la definición de la tabla contiene mayúsculas, recibirá el siguiente mensaje de error al ejecutar una consulta de SELECT
en Athena: “GENERIC_INTERNAL_ERROR: Error al obtener la solicitud de tabla: com.amazonaws.services.glue.model.ValidationException: Recurso de federación no compatible: nombres de tabla o columna no válidos”
.
El siguiente procedimiento utiliza la consola de Amazon S3 para crear un espacio de nombres y una tabla con Amazon Athena.
Para crear un espacio de nombres de tablas y una tabla
Inicie sesión en la AWS Management Console y abra la consola de Amazon S3 en https://console.aws.amazon.com/s3/
. -
En el panel de navegación izquierdo, elija Buckets de tablas.
-
En la página Buckets de tablas, elija el bucket de tablas en el que desea crear una tabla.
-
En la página de detalles del bucket de tablas, seleccione Crear tabla con Athena.
-
En el cuadro de diálogo Crear tabla con Athena, elija Crear un espacio de nombres y, a continuación, escriba un nombre en el campo Nombre del espacio de nombres. Los nombres de los espacios de nombres deben tener entre 1 y 255 caracteres y ser únicos dentro del bucket de tablas. Los caracteres válidos son a-z, 0-9 y guion bajo (
_
). No se permite el uso de guiones bajos al principio de los nombres de espacios de nombres. -
Elija Crear espacio de nombres.
-
Elija Crear tabla con Athena.
-
Se abre la consola de Amazon Athena y aparece el editor de consultas de Athena. El editor de consultas se rellena con una consulta de ejemplo que puede usar para crear una tabla. Modifique la consulta para especificar el nombre de la tabla y las columnas que desea que esta contenga.
-
Cuando haya terminado de modificar la consulta, elija Ejecutar para crear la tabla.
Si la tabla se ha creado correctamente, el nombre de la nueva tabla aparecerá en la lista de tablas en Athena. Cuando vuelva a la consola de Amazon S3, la nueva tabla aparecerá en la lista Tablas de la página de detalles del bucket de tablas tras actualizar la lista.
Para utilizar los siguientes comandos de ejemplo de la AWS CLI para crear un espacio de nombres en el bucket de tablas y luego crear una nueva tabla con un esquema bajo ese espacio de nombres, sustituya los valores
por los suyos propios.user input
placeholder
Requisitos previos
-
Asocie la política
AmazonS3TablesFullAccess
a la identidad de IAM. -
Instale la versión 2.23.10 (o superior) de la AWS CLI. Para obtener más información, consulte Instalación o actualización de la versión más reciente de la AWS CLI en la Guía del usuario de AWS Command Line Interface.
Cree un nuevo espacio de nombres en el bucket de tablas ejecutando el siguiente comando:
aws s3tables create-namespace \ --table-bucket-arn arn:aws:s3tables:
us-east-1
:111122223333
:bucket/amzn-s3-demo-table-bucket
\ --namespacemy_namespace
Confirme que el espacio de nombres se ha creado correctamente ejecutando el siguiente comando:
aws s3tables list-namespaces \ --table-bucket-arn arn:aws:s3tables:
us-east-1
:111122223333
:bucket/amzn-s3-demo-table-bucket
Cree una nueva tabla con un esquema de tabla ejecutando el siguiente comando:
aws s3tables create-table --cli-input-json file://
mytabledefinition.json
Para el archivo
mytabledefinition.json
, utilice la siguiente definición de tabla de ejemplo:{ "tableBucketARN": "arn:aws:s3tables:
us-east-1
:111122223333
:bucket/amzn-s3-demo-table-bucket
", "namespace": "my_namespace
", "name": "my_table
", "format": "ICEBERG", "metadata": { "iceberg": { "schema": { "fields": [{"name": "id", "type": "int","required": true}, {"name": "name", "type": "string"}, {"name": "value", "type": "int"}
] } } } }
(Opcional) Paso 3: concesión de permisos de Lake Formation en la tabla
Para este paso, conceda permisos de Lake Formation en la nueva tabla a otras entidades principales de IAM. Estos permisos permiten a otras entidades principales distintas de la suya acceder a los recursos del bucket de tablas mediante Athena y otros servicios de análisis de AWS. Para obtener más información, consulte Concesión de permisos sobre una tabla o base de datos. Si es el único usuario que accederá a las tablas, puede omitir este paso.
-
Abra la consola de AWS Lake Formation en https://console.aws.amazon.com/lakeformation/
e inicie sesión como administrador del lago de datos. Para obtener más información acerca de cómo crear un administrador del lago de datos, consulte Cómo crear un administrador del lago de datos. En el panel de navegación, elija Permisos de datos y, a continuación, seleccione Conceder.
En la página Conceder permisos, en Entidades principales, elija Usuarios y roles de IAM y seleccione el usuario o rol de IAM al que desea permitir que ejecute consultas en la tabla.
En Etiquetas LF o recursos de catálogo, elija Recursos de catálogo de datos con nombre.
-
Realice una de las siguientes acciones, dependiendo de si desea conceder acceso a todas las tablas de su cuenta o solo a los recursos del bucket de tablas que ha creado:
-
En Catálogos, elija el catálogo de nivel de cuenta que creó al integrar el bucket de tablas. Por ejemplo,
.111122223333
:s3tablescatalog -
En Catálogos, elija el subcatálogo del bucket de tablas. Por ejemplo,
.111122223333
:s3tablescatalog/amzn-s3-demo-table-bucket
-
-
(Opcional) Si ha elegido el subcatálogo para el bucket de tablas, realice una o ambas de las acciones siguientes:
En Bases de datos, elija el espacio de nombres del bucket de tablas que creó.
En Tablas, elija la tabla que creó en el bucket de tablas, o bien elija Todas las tablas.
-
Dependiendo de si ha elegido un catálogo o un subcatálogo, y de si luego ha elegido una base de datos o una tabla, puede establecer los permisos en el nivel de catálogo, de base de datos o de tabla. Para obtener más información acerca de los permisos de Lake Formation, consulte Administración de los permisos de Lake Formation en la Guía para desarrolladores de AWS Lake Formation.
Realice una de las siguientes acciones:
-
En Permisos de catálogo, elija Super para conceder a la otra entidad principal todos los permisos sobre el catálogo, o bien elija permisos más detallados, como Describir.
-
En Permisos de base de datos, no puede elegir Super para conceder a la otra entidad principal todos los permisos sobre la base de datos. En su lugar, elija permisos más detallados, como Describir.
-
En Permisos de tabla, elija Super para conceder a la otra entidad principal todos los permisos sobre la tabla, o bien elija permisos más detallados, como Seleccionar o Describir.
nota
Al conceder permisos de Lake Formation sobre un recurso del Catálogo de datos a una cuenta externa o directamente a una entidad principal de IAM de otra cuenta, Lake Formation utiliza el servicio AWS Resource Access Manager (AWS RAM) para compartir el recurso. Si la cuenta del beneficiario está en la misma organización que la cuenta del concedente, el recurso compartido estará disponible inmediatamente para el beneficiario. Si la cuenta del beneficiario no pertenece a la misma organización, AWS RAM envía una invitación a la cuenta del beneficiario para que acepte o rechace la concesión del recurso. Luego, para que el recurso compartido esté disponible, el administrador del lago de datos de la cuenta del beneficiario debe usar la consola de AWS RAM o la AWS CLI para aceptar la invitación. Para obtener más información acerca del uso compartido de datos entre cuentas, consulte Uso compartido de datos entre cuentas en Lake Formation en la Guía para desarrolladores de AWS Lake Formation.
-
-
Elija Conceder.
Paso 4: consulta de datos con SQL en Athena
Puede consultar la tabla con SQL en Athena. Athena admite consultas de lenguaje de definición de datos (DDL), de lenguaje de manipulación de datos (DML) y de lenguaje de consulta de datos (DQL) para Tablas de S3.
Puede acceder a la consulta de Athena desde la consola de Amazon S3 o a través de la consola de Amazon Athena.
El siguiente procedimiento utiliza la consola de Amazon S3 para acceder al editor de consultas de Athena y poder consultar una tabla con Amazon Athena.
Para consultar una tabla:
Inicie sesión en la AWS Management Console y abra la consola de Amazon S3 en https://console.aws.amazon.com/s3/
. -
En el panel de navegación izquierdo, elija Buckets de tablas.
-
En la página Buckets de tablas, seleccione el bucket de tablas que contiene la tabla que desea consultar.
-
En la página de detalles del bucket de tablas, elija el botón de opción que aparece junto al nombre de la tabla que desea consultar.
-
Elija Consultar tabla con Athena.
-
Se abre la consola de Amazon Athena y aparece el editor de consultas de Athena con una consulta
SELECT
de ejemplo cargada. Modifique la consulta según proceda para su caso de uso. -
Elija Ejecutar para ejecutar la consulta.
Para consultar una tabla:
Abra la consola de Athena en https://console.aws.amazon.com/athena/
. -
Consulte la tabla. A continuación se muestra un ejemplo de consulta que puede modificar. Asegúrese de sustituir
con su propia información.user input placeholders
SELECT * FROM "s3tablescatalog/
amzn-s3-demo-table-bucket
"."my_namespace
"."my_table
" LIMIT 10 -
Elija Ejecutar para ejecutar la consulta.