creating-data-lake-table

Create managed Iceberg tables on Amazon S3 Tables with Glue catalog registration and IAM access control.

Updated Jul 1, 2026
One-click install
npx skills add https://github.com/sakicodes/BuildFestHackathon26 --skill creating-data-lake-table-sakicodes
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: creating-data-lake-table
Source: https://github.com/sakicodes/BuildFestHackathon26/tree/main/.agents/skills/creating-data-lake-table
Command: npx skills add https://github.com/sakicodes/BuildFestHackathon26 --skill creating-data-lake-table-sakicodes

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Setting up analytics tables on AWS requires coordinating table buckets, namespaces, Iceberg schemas, Glue catalog federation, and IAM permissions across multiple services, and small mistakes like mixed-case names or wrong ARN patterns cause opaque failures. ## Core Features & Use Cases - End-to-end table provisioning: Creates S3 Tables buckets, namespaces, and Iceberg tables via the s3tables API, with Athena DDL and Glue ETL Spark paths as alternatives. - Glue catalog integration: Registers the federated s3tablescatalog so tables are queryable from Athena and Redshift. - Access control setup: Configures least-privilege s3tables and glue IAM permissions with correct ARN scoping, including SSE-KMS considerations. - Use Case: A data engineer needs a partitioned orders table queryable in Athena. The skill checks for existing tables, creates the bucket and namespace, registers the catalog, applies IAM policies, and verifies the table with a DESCRIBE query. ## Quick Start Ask the AI to create an Iceberg table named customer_orders in Amazon S3 Tables, partitioned by month, and make it queryable from Athena.

Frequently Asked Questions about creating-data-lake-table

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I create an Iceberg table in Amazon S3 Tables?

Use aws s3tables create-table with the table bucket ARN, namespace, table name, ICEBERG format, and a metadata JSON containing the schema nested under an "iceberg" key. The table bucket and namespace must exist first, created via create-table-bucket and create-namespace.

How do I make S3 Tables queryable from Athena?

Register a federated Glue catalog named s3tablescatalog pointing at your table bucket ARN, then pass the catalog in Athena's --query-execution-context as "s3tablescatalog/<bucket>". Do not put the catalog name in the SQL statement itself, and never include a LOCATION clause in the DDL.

S3 Tables API vs Athena DDL vs Glue ETL for table creation?

The S3 Tables API is the default path for any user. Athena DDL suits users who want SQL or need ALTER TABLE schema evolution later. Glue ETL with Spark DDL fits ETL pipelines and requires Glue 5.1+ with catalog config passed via --conf job arguments.

Why does table creation fail with AccessDeniedException on S3 Tables?

S3 Tables uses the s3tables:* IAM namespace, not s3:*, so policies granting only s3 permissions fail. The querying principal needs s3tables:GetTable, GetTableData, and GetTableMetadataLocation on the bucket and table ARNs, plus glue:GetCatalog, GetDatabase, and GetTable.

Why does Glue reject my table or namespace name?

Glue rejects mixed-case names with GENERIC_INTERNAL_ERROR, so all namespace and table names must be lowercase. Namespaces and table names must also avoid hyphens; use underscores instead, while table bucket names may contain hyphens.

When should I not use this table creation skill?

Do not use it for importing existing files into tables, which belongs to data ingestion workflows, or for querying or locating existing tables. It also does not cover vector storage, which requires a different storage approach.