

# Registro y uso de catálogos de datos en Athena
<a name="gdc-register"></a>

Athena permite montar varios catálogos de datos y conectarse a estos. 
+ Puede montar datos de Amazon Redshift en el AWS Glue Data Catalog y consultarlos desde Athena sin tener que copiar o trasladar datos. Para obtener más información, consulte [Incorporación de datos de Amazon Redshift a AWS Glue Data Catalog](https://docs.aws.amazon.com/lake-formation/latest/dg/managing-namespaces-datacatalog.html).
+  Conecte el AWS Glue Data Catalog a orígenes de datos externos mediante conexiones de AWS Glue y cree catálogos federados para administrar de forma centralizada los permisos de los datos con un control de acceso detallado mediante Lake Formation. Para obtener más información, consulte [Cómo registrar la conexión como Catálogo de datos de Glue](register-connection-as-gdc.md).
+ Cree catálogos a partir de los buckets de tabla de Amazon S3 y utilice Lake Formation para administrar de forma centralizada los permisos de acceso y restringir el acceso de los usuarios a los objetos del bucket de tabla. Para obtener más información, consulte [Cómo trabajar con tablas y buckets de tablas de Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables.html) en la Guía del usuario de Amazon S3.

**nota**  
En cualquier catálogo de Glue, solo se puede registrar un catálogo multinivel como `123412341234:my_catalog/my_child`. No puede registrar un catálogo de un solo nivel como `123412341234:linkcontainer` o `my_catalog`. Los catálogos de un solo nivel solo se pueden consultar con el catálogo de datos de Glue directamente en la consulta de Athena. Para obtener más información, consulte [Cómo consultar los catálogos de datos de AWS Glue en Athena](gdc-register-query-the-data-source.md). 

**Topics**
+ [Registrar catálogos de datos de Redshift en Athena](gdc-register-rs.md)
+ [Registro de catálogos federados en Athena](gdc-register-federated.md)
+ [Registro de catálogos de buckets de tabla de S3 y consulta de tablas desde Athena](gdc-register-s3-table-bucket-cat.md)
+ [Cómo consultar los catálogos de datos de AWS Glue en Athena](gdc-register-query-the-data-source.md)

# Registrar catálogos de datos de Redshift en Athena
<a name="gdc-register-rs"></a>

Athena puede leer y escribir datos almacenados en clústeres de Redshift o espacios de nombres sin servidor que se hayan registrado en el AWS Glue Data Catalog. Esto funciona en tándem con AWS Lake Formation, que proporciona seguridad y gobernanza centralizadas, lo que garantiza que el acceso a los datos se administra de forma coherente en los distintos motores de consulta y mantiene controles de acceso detallados para los datos compartidos de Redshift.

## Consideraciones y limitaciones
<a name="gdc-register-rs-considerations-and-limitations"></a>
+ **Vistas materializadas**: las vistas materializadas de Amazon Redshift se pueden consultar desde Athena, pero no es posible crear vistas materializadas con Athena o Spark.
+ No se admiten las operaciones DDL, incluido el ajuste de la configuración de AWS Glue Data Catalog y las operaciones en tablas de almacenamiento administrado de Amazon Redshift.

## Requisitos previos
<a name="gdc-register-rs-prerequisites"></a>

Antes de poder consultar un catálogo de datos de AWS Glue desde Athena, complete las siguientes tareas:

1. Cree y registre un clúster de Amazon Redshift o un espacio de nombres sin servidor en el AWS Glue Data Catalog. Para obtener más información, consulte [Cómo registrar un clúster en el AWS Glue Data Catalog](https://docs.aws.amazon.com/redshift/latest/mgmt/register-cluster.html) o [Cómo registrar espacios de nombres en el AWS Glue Data Catalog](https://docs.aws.amazon.com/redshift/latest/mgmt/serverless_datasharing-register-namespace.html) en la guía de administración de Amazon Redshift.

1. Cree un catálogo de datos en AWS Lake Formation a partir del espacio de nombres registrado. Para obtener más información, consulte [Creación de catálogos federados de Amazon Redshift](https://docs.aws.amazon.com/lake-formation/latest/dg/create-ns-catalog.html) en la Guía para desarrolladores de AWS Lake Formation.

1. (Opcional) Utilice Lake Formation para establecer controles de acceso detallados en el catálogo. Para obtener más información, consulte [Cómo incluir los datos en el AWS Glue Data Catalog](https://docs.aws.amazon.com/lake-formation/latest/dg/bring-your-data-overview.html) en la Guía para desarrolladores de AWS Lake Formation.

## Registrar un catálogo de datos de Redshift en la consola Athena
<a name="gdc-register-rs-console-steps"></a>

Para registrar un catálogo de datos de Redshift en la consola de Athena, siga estos pasos.

1. Abra la consola de Athena en [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/).

1. En el panel de navegación, elija **Orígenes de datos y catálogos**.

1. En la página **Orígenes de datos y catálogos**, elija **Crear origen de datos**.

1. En **Elegir un origen de datos**, elija **Amazon S3: AWS Glue Data Catalog**.

1. En la sección **AWS Glue Data Catalog**, bajo **Cuenta de origen de datos**, elija **AWS Glue Data Catalog en esta cuenta**.

1. En **Crear una tabla o registrar un catálogo**, elija **Registrar un nuevo catálogo de AWS Glue**.

1. En la sección **Detalles del origen de datos**, en **Nombre del origen de datos**, ingrese el nombre que desea utilizar para especificar el origen de datos en las consultas SQL o utilice el nombre predeterminado que se genera.

1. En **Catálogo**, seleccione **Examinar** para buscar una lista de catálogos de AWS Glue en la misma cuenta. Si no ve ningún catálogo existente, cree uno en la [consola de AWS Glue](https://console.aws.amazon.com/glue/). 

1. En el cuadro de diálogo **Examinar catálogos de AWS Glue**, seleccione el catálogo que desea utilizar y, a continuación, elija **Seleccionar**.

1. (Opcional) En **Etiquetas**, ingrese cualquier par de clave/valor que desee asociar al origen de datos.

1. Elija **Siguiente**.

1. En la página **Revisar y crear**, compruebe que la información introducida es correcta y, a continuación, seleccione **Crear origen de datos**.

# Registro de catálogos federados en Athena
<a name="gdc-register-federated"></a>

Una vez creadas las conexiones a los orígenes de datos federados, puede registrarlos como catálogos de datos federados para simplificar la detección de datos y administrar el acceso a los datos con permisos detallados mediante Lake Formation. Para obtener más información, consulte [Cómo registrar la conexión como Catálogo de datos de Glue](register-connection-as-gdc.md).

## Consideraciones y limitaciones
<a name="gdc-register-federated-consideration"></a>
+ No se admiten operaciones DDL en catálogos federados. 
+ Puede registrar los siguientes conectores para integrarlos con AWS Glue y obtener un control de acceso detallado:
  + [Azure Data Lake Storage](connectors-adls-gen2.md)
  + [Azure Synapse](connectors-azure-synapse.md)
  + [BigQuery](connectors-bigquery.md)
  + [CMDB](connectors-cmdb.md)
  + [Db2](connectors-ibm-db2.md)
  + [Db2 iSeries](connectors-ibm-db2-as400.md)
  + [DocumentDB](connectors-docdb.md)
  + [DynamoDB](connectors-dynamodb.md)
  + [Google Cloud Storage](connectors-gcs.md)
  + [HBase](connectors-hbase.md)
  + [MySQL](connectors-mysql.md)
  + [OpenSearch](connectors-opensearch.md)
  + [Oracle](connectors-oracle.md)
  + [PostgreSQL](connectors-postgresql.md)
  + [Redshift](connectors-redshift.md)
  + [SAP HANA](connectors-sap-hana.md)
  + [Snowflake](connectors-snowflake.md)
  + [de SQL Server](connectors-microsoft-sql-server.md)
  + [Timestream](connectors-timestream.md)
  + [TPC-DS](connectors-tpcds.md)
+ Al crear un enlace de recursos para la federación de la conexión de Glue, el nombre del [enlace de recursos](https://docs.aws.amazon.com/lake-formation/latest/dg/create-resource-link-database.html) debe ser el mismo que el nombre de la base de datos del productor.
+ Actualmente, solo se reconocen los nombres de tablas y columnas en minúscula, incluso si el origen de datos no distingue entre mayúsculas y minúsculas.

# Registro de catálogos de buckets de tabla de S3 y consulta de tablas desde Athena
<a name="gdc-register-s3-table-bucket-cat"></a>

Los buckets de tabla de S3 son un tipo de bucket de Amazon S3 diseñado específicamente para almacenar datos tabulares en tablas de Apache Iceberg. Los buckets de tablas automatizan tareas de administración de tablas, como la compactación, la administración de instantáneas y la recopilación de elementos no utilizados, para optimizar continuamente el rendimiento de las consultas y minimizar los costos. Tanto si recién comienza como si cuenta con miles de tablas en el entorno de Iceberg, los buckets de tabla simplifican el uso de los lagos de datos a cualquier escala. Para obtener más información, consulte [buckets de tabla](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-buckets.html).

## Consideraciones y limitaciones
<a name="gdc-register-s3-table-consideration"></a>
+ Todas las operaciones DDL compatibles con las tablas de Iceberg son compatibles con las tablas de S3, excepto los siguientes:
  + `ALTER TABLE RENAME`, `CREATE VIEW` y `ALTER DATABASE` no son compatibles.
  + `OPTIMIZE` y `VACUUM`: puede gestionar la compactación y la gestión de instantáneas en S3. Para obtener más información, consulte [la documentación de mantenimiento de tablas de S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-maintenance.html).
+ No se admiten consultas DDL en tablas de S3 registradas como orígenes de datos de Athena.
+ No se admite la reutilización del resultado de la consulta.
+ En los grupos de trabajo con el cifrado SSE-KMS, CSE-KMS activado, no se pueden ejecutar operaciones de escritura como `INSERT`, `UPDATE`, `DELETE` o `MERGE` en tablas de S3.
+ En los grupos de trabajo con la opción Pagos de solicitantes de S3 (S3 Requester Pays) habilitada, no puede ejecutar operaciones DML en tablas de S3.

## Consulta de tablas de S3 desde Athena
<a name="gdc-register-s3-table-prereq-setup"></a>

**Complete estos requisitos previos antes de consultar las tablas de S3 desde Athena**

1. Cree un bucket de tabla de S3. Para obtener más información, consulte [Cómo crear un bucket de tabla](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-buckets-create.html) en la Guía del usuario de Amazon Simple Storage Service. 

1. Asegúrese de que la integración de sus cubos de mesa con AWS Glue Data Catalog sea correcta. Para conocer los permisos necesarios y los pasos de configuración, consulte [Requisitos previos para la integración de las Tablas de S3](https://docs.aws.amazon.com/glue/latest/dg/s3tables-catalog-prerequisites.html) y [Habilitar la integración de las tablas de S3 con los Catálogo de datos de Glue](https://docs.aws.amazon.com/glue/latest/dg/enable-s3-tables-catalog-integration.html) en la Guía para desarrolladores AWS Glue.

1. Para la entidad principal que utilice para ejecutar consultas con Athena, conceda permisos sobre el catálogo de tablas de S3 mediante uno de los siguientes enfoques: 

   **Opción 1: usar permisos de IAM**

   Al utilizar el control de acceso de IAM, su entidad principal necesita permisos tanto en los recursos AWS Glue Data Catalog como en los recursos de tablas de Amazon S3.

   La siguiente lista contiene todos los permisos `s3tables` necesarios para realizar cualquier operación DDL o DML compatible en sus tablas de S3 en Athena:
   + `s3tables:GetTableBucket`
   + `s3tables:GetNamespace`
   + `s3tables:GetTable`
   + `s3tables:GetTableData`
   + `s3tables:PutTableData`
   + `s3tables:ListNamespaces`
   + `s3tables:ListTables`
   + `s3tables:DeleteNamespace`
   + `s3tables:DeleteTable`
   + `s3tables:CreateNamespace`
   + `s3tables:CreateTable`
   + `s3tables:UpdateTableMetadataLocation`

   Aplique estos permisos a un grupo de tablas de S3 y a recursos de tablas de S3 específicos o utilice `*` como recurso para conceder acceso a todos los grupos de tablas y tablas de su cuenta. Estos permisos se pueden combinar con la política administrada [https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonAthenaFullAccess.html](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonAthenaFullAccess.html) para habilitar una funcionalidad completa.

   **Opción 2: usar los permisos de Lake Formation**

   Para habilitar el control de acceso detallado, puede conceder permisos de Lake Formation en el catálogo de la tabla de S3, ya sea a través de la consola de Lake Formation o la AWS CLI. Esto requiere registrar sus buckets de tablas de S3 como una ubicación de datos de Lake Formation. Para obtener más información sobre el proceso de migración o integración, consulte [Creación de un catálogo de tablas de Amazon S3 en la AWS Glue Data Catalog](https://docs.aws.amazon.com/lake-formation/latest/dg/create-s3-tables-catalog.html) en la Guía para desarrolladores de Lake Formation.

------
#### [ Consola de administración de AWS ]

   1. Abra la consola de AWS Lake Formation en [https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/) e inicie sesión como administrador del lago de datos. Para obtener más información sobre cómo crear un administrador del lago de datos, consulte [Cómo crear un administrador del lago de datos](https://docs.aws.amazon.com/lake-formation/latest/dg/initial-lf-config.html#create-data-lake-admin).

   1. En el panel de navegación, elija **Permisos de datos** y, a continuación, seleccione **Conceder**. 

   1. En la página **Conceder permisos**, en **Entidades principales**, elija la entidad principal que desea utilizar para enviar consultas desde Athena.

   1. En **Etiquetas LF o recursos de catálogo**, elija **Recursos de catálogo de datos con nombre**.

   1. En **Catálogos**, elija un catálogo de datos de Glue que haya creado a partir de la integración del bucket de tablas. Por ejemplo, *<accoundID>*:s3tablescatalog/*amzn-s3-demo-bucket*.

   1. En **Permisos del catálogo**, elija **Super**.

   1. Elija **Conceder**.

------
#### [ AWS CLI ]

   Ejecute el siguiente comando con el rol de administrador del lago de datos de Lake Formation para conceder acceso a la entidad principal que utiliza para enviar consultas desde Athena. 

   ```
   aws lakeformation grant-permissions \
   --region <region (Example,us-east-1)> \
   --cli-input-json \
   '{
       "Principal": {
           "DataLakePrincipalIdentifier": "<user or role ARN (Example, arn:aws:iam::<Account ID>:role/ExampleRole>"
       },
       "Resource": {
           "Catalog": {
               "Id":"<Account ID>:s3tablescatalog/amzn-s3-demo-bucket"
           }
       },
       "Permissions": ["ALL"]
   }'
   ```

------

**Enviar consultas para tablas de S3**

1. Envíe una consulta `CREATE DATABASE` desde Athena con el usuario/rol concedido anteriormente. En este ejemplo, `s3tablescatalog` es el catálogo de datos de Glue principal creado a partir de la integración, y ` s3tablescatalog/amzn-s3-demo-bucket` es el catálogo de datos de Glue secundario creado para cada bucket de tabla de S3. Existen dos formas de realizar la consulta.

------
#### [ Option 1 ]

   Especifique el catálogo de datos de Glue secundario (`s3tablescatalog/amzn-s3-demo-bucket`) directamente desde la consola o la AWS CLI.

   **Uso de Consola de administración de AWS**

   1. Abra la consola de Athena en [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/).

   1. En el menú de navegación de la izquierda, en **Nombre del origen de datos**, elija **AwsDataCatalog**.

   1. Para **Catálogo**, elija **s3tablescatalog/*amzn-s3-demo-bucket***.

   1. En el editor de consultas, ingrese una consulta como `CREATE DATABASE test_namespace`.

   **Uso de AWS CLI**

   Ejecute el siguiente comando.

   ```
   aws athena start-query-execution \ 
   --query-string 'CREATE DATABASE `test_namespace`' \ 
   --query-execution-context '{"Catalog": "s3tablescatalog/amzn-s3-demo-bucket"}' \
   --work-group "primary"
   ```

------
#### [ Option 2 ]

   Cree un catálogo de datos de Athena a partir del catálogo de datos de Glue secundario en la consola de Athena y especifíquelo como catálogo en la consulta. Para obtener más información, consulte [Registro de catálogos de buckets de tabla de S3 como orígenes de datos de Athena](#gdc-register-s3-table-console-steps).

------

1. Con la base de datos que creó en el paso anterior, utilice `CREATE TABLE` para crear una tabla. En el siguiente ejemplo, se crea una tabla en la base de datos *`test_namespace`* que creó anteriormente en el catálogo `s3tablescatalog/amzn-s3-demo-bucket` de Glue.

------
#### [ Consola de administración de AWS ]

   1. En el menú de navegación de la izquierda, en **Nombre del origen de datos**, elija **AwsDataCatalog**.

   1. Para **Catálogo**, elija **s3tablescatalog/*amzn-s3-demo-bucket***.

   1. Para **Base de datos**, elija **test\$1namespace**.

   1. En el editor de consultas, ejecute la siguiente consulta.

      ```
      CREATE TABLE daily_sales (
              sale_date date,
              product_category
              string, sales_amount double)
      PARTITIONED BY (month(sale_date))
      TBLPROPERTIES ('table_type' = 'iceberg')
      ```

------
#### [ AWS CLI ]

   Ejecute el siguiente comando.

   ```
   aws athena start-query-execution \
   --query-string "CREATE TABLE daily_sales (
           sale_date date,
           product_category
           string, sales_amount double)
   PARTITIONED BY (month(sale_date))
   TBLPROPERTIES ('table_type' = 'iceberg')" \
   --query-execution-context '{"Catalog": "s3tablescatalog/amzn-s3-demo-bucket", "Database":"test_namespace"}' \
   --work-group "primary"
   ```

------

1. Inserte datos en la tabla que creó en el paso anterior.

------
#### [ Consola de administración de AWS ]

   1. En el menú de navegación de la izquierda, en **Nombre del origen de datos**, elija **AwsDataCatalog**.

   1. Para **Catálogo**, elija **s3tablescatalog/*amzn-s3-demo-bucket***.

   1. Para **Base de datos**, elija **test\$1namespace**.

   1. En el editor de consultas, ejecute la siguiente consulta.

      ```
      INSERT INTO daily_sales
      VALUES 
          (DATE '2024-01-15', 'Laptop', 900.00),
          (DATE '2024-01-15', 'Monitor', 250.00),
          (DATE '2024-01-16', 'Laptop', 1350.00),
          (DATE '2024-02-01', 'Monitor', 300.00);
      ```

------
#### [ AWS CLI ]

   Ejecute el siguiente comando.

   ```
   aws athena start-query-execution \
   --query-string "INSERT INTO \"s3tablescatalog/amzn-s3-demo-bucket\".test_namespace.daily_sales
   VALUES 
   (DATE '2024-01-15', 'Laptop', 900.00),
   (DATE '2024-01-15', 'Monitor', 250.00),
   (DATE '2024-01-16', 'Laptop', 1350.00),
   (DATE '2024-02-01', 'Monitor', 300.00)"\ 
   --work-group "primary"
   ```

------

1. Después de insertar los datos en la tabla, puede consultarlos.

------
#### [ Consola de administración de AWS ]

   1. En el menú de navegación de la izquierda, en **Nombre del origen de datos**, elija **AwsDataCatalog**.

   1. Para **Catálogo**, elija **s3tablescatalog/*amzn-s3-demo-bucket***.

   1. Para **Base de datos**, elija **test\$1namespace**.

   1. En el editor de consultas, ejecute la siguiente consulta.

      ```
      SELECT
          product_category,
          COUNT(*) AS units_sold,
          SUM(sales_amount) AS total_revenue,
          AVG(sales_amount) AS average_price
      FROM
          daily_sales
      WHERE
          sale_date BETWEEN DATE '2024-02-01' 
                       AND DATE '2024-02-29'
      GROUP BY
          product_category
      ORDER BY
          total_revenue DESC
      ```

------
#### [ AWS CLI ]

   Ejecute el siguiente comando.

   ```
   aws athena start-query-execution \
   --query-string "SELECT product_category,
       COUNT(*) AS units_sold,
       SUM(sales_amount) AS total_revenue,
       AVG(sales_amount) AS average_price
   FROM \"s3tablescatalog/amzn-s3-demo-bucket\".test_namespace.daily_sales
   WHERE sale_date BETWEEN DATE '2024-02-01' AND DATE '2024-02-29'
   GROUP BY product_category
   ORDER BY total_revenue DESC"\
   --work-group "primary"
   ```

------

## Creación de tablas de S3 en Athena
<a name="gdc-create-s3-tables-athena"></a>

Athena admite la creación de tablas en los espacios de nombres de tablas de S3 existentes o en los espacios de nombres creados en Athena con introducciones `CREATE DATABASE`. Para crear una tabla de S3 desde Athena, la sintaxis es la misma que cuando se [crea una tabla de Iceberg normal](querying-iceberg-creating-tables.md), excepto que no se especifica la `LOCATION`, como se muestra en el siguiente ejemplo.

```
CREATE TABLE
[db_name.]table_name (col_name data_type [COMMENT col_comment] [, ...] )
[PARTITIONED BY (col_name | transform, ... )]
[TBLPROPERTIES ([, property_name=property_value] )]
```

También puede crear tablas de S3 por medio de las instrucciones CREATE TABLE AS SELECT (CTAS). Para obtener más información, consulte [CTAS para tablas de S3](#ctas-s3-tables).

## Registro de catálogos de buckets de tabla de S3 como orígenes de datos de Athena
<a name="gdc-register-s3-table-console-steps"></a>

Para registrar catálogos de buckets de tabla de S3 en la consola de Athena, siga estos pasos.

1. Abra la consola de Athena en [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/).

1. En el panel de navegación, elija **Orígenes de datos y catálogos**.

1. En la página **Orígenes de datos y catálogos**, elija **Crear origen de datos**.

1. En **Elegir un origen de datos**, elija **Amazon S3: AWS Glue Data Catalog**.

1. En la sección **AWS Glue Data Catalog**, bajo **Cuenta de origen de datos**, elija **AWS Glue Data Catalog en esta cuenta**.

1. En **Crear una tabla o registrar un catálogo**, elija **Registrar un nuevo catálogo de AWS Glue**.

1. En la sección **Detalles del origen de datos**, en **Nombre del origen de datos**, ingrese el nombre que desea utilizar para especificar el origen de datos en las consultas SQL o utilice el nombre predeterminado que se genera.

1. En **Catálogo**, seleccione **Examinar** para buscar una lista de catálogos de AWS Glue en la misma cuenta. Si no ve ningún catálogo existente, cree uno en la [consola de AWS Glue](https://console.aws.amazon.com/glue/). 

1. En el cuadro de diálogo **Examinar catálogos de AWS Glue**, seleccione el catálogo que desea utilizar y, a continuación, elija **Seleccionar**.

1. (Opcional) En **Etiquetas**, ingrese cualquier par de clave/valor que desee asociar al origen de datos.

1. Elija **Siguiente**.

1. En la página **Revisar y crear**, compruebe que la información introducida es correcta y, a continuación, seleccione **Crear origen de datos**.

## CTAS para tablas de S3
<a name="ctas-s3-tables"></a>

Amazon Athena ahora admite operaciones CREATE TABLE AS SELECT (CTAS) para tablas de S3. Esta característica permite crear nuevas tablas de S3 en función de los resultados de una consulta SELECT. 

Al crear una consulta CTAS para una tabla de S3, existen algunas diferencias importantes en comparación con las tablas estándar de Athena:
+ Debe omitir la propiedad de ubicación porque las tablas de S3 administran automáticamente sus propias ubicaciones de almacenamiento.
+ La propiedad `table_type` se establece de forma predeterminada en `ICEBERG`, por lo que no es necesario especificarla explícitamente en la consulta.
+ Si no se especifica un formato, el sistema utiliza automáticamente `PARQUET` como formato predeterminado para los datos.
+ Todas las demás propiedades siguen la misma sintaxis que las tablas de Iceberg normales.

Antes de crear tablas de S3 por medio de CTAS, asegúrese de contar con los permisos necesarios configurados en IAM o AWS Lake Formation. Específicamente, necesita permisos para crear tablas en el catálogo de las tablas de S3. Sin estos permisos, se producirá un error en las operaciones CTAS.

**nota**  
Si se produce un error en la consulta CTAS, es posible que tenga que eliminar la tabla por medio de la [API de las tablas de S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-delete.html) antes de intentar volver a ejecutar la consulta. No puede usar las instrucciones `DROP TABLE` de Athena para eliminar la tabla que fue creada parcialmente por la consulta. 

**Ejemplo**

```
CREATE TABLE "s3tablescatalog/amzn-s3-demo-bucket"."namespace"."s3-table-name"
WITH (
    format = 'PARQUET'
)
AS SELECT *
FROM source_table;
```

# Cómo consultar los catálogos de datos de AWS Glue en Athena
<a name="gdc-register-query-the-data-source"></a>

Para consultar catálogos de datos desde Athena, realice una de las siguientes acciones.
+ Registre el catálogo en Athena como origen de datos y, a continuación, utilice el nombre del origen de datos para consultar el catálogo. En este uso, las siguientes consultas son equivalentes.

  ```
  SELECT * FROM my_data_source.my_database.my_table
  ```
+ Si va a consultar un catálogo que no se ha registrado como origen de datos de Athena, puede proporcionar la ruta completa al catálogo en las consultas `SELECT`, como en el siguiente ejemplo.

  ```
  SELECT * FROM "my_catalog/my_subcatalog".my_database.my_table
  ```
+ También puede hacerlo a través de la Consola de administración de AWS.

  1. Abra la consola de Athena en [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/).

  1. En el editor de consultas, en **Origen de datos**, seleccione **AwsDataCatalog**.

  1. En **Catálogo**, elija el nombre del catálogo que desea utilizar.

  1. En **Base de datos**, elija la base de datos que contiene la tabla que desea consultar.

  1. Ingrese una consulta como `SELECT * FROM my_table` y, a continuación, elija **Ejecutar**.