вариант

ingesting-into-data-lake

aws/agent-toolkit-for-aws aws/agent-toolkit-for-aws

Импортирует данные в данных озеро AWS из файлов S3, локальных загрузок, баз данных JDBC (Oracle, SQL Server, PostgreSQL, MySQL, RDS, Aurora), Amazon Redshift, Snowflake, BigQuery, DynamoDB или из существующих таблиц каталога Glue (миграция). По умолчанию целевым форматом являются таблицы S3; при отсутствии поддержки таблиц S3 поддерживается стандартный формат Iceberg в обычных бакетах. Позволяет выполнять однократные загрузки, регулярные пайплайны и процессы миграции. Триггеры запускаются при: импорте данных, загрузке данных, вставке данных, синхронизации базы данных, миграции таблицы, перемещении данных в AWS, установке.

...Расширить все
0
Обновлено время 27 сентября 2026 г.

О вставке данных в data lake

Это навык рабочего процесса, предназначенный для загрузки данных в таблицу, доступную для запросов, в data lake AWS из самых разных источников: загрузка локальных файлов, файлы в S3, базы данных JDBC (Oracle, SQL Server, PostgreSQL, MySQL, RDS, Aurora), Amazon Redshift, Snowflake, BigQuery, DynamoDB, а также существующие таблицы каталога Glue для миграции. Он позволяет выполнять однократные загрузки, регулярные пайплайны и процессы миграции, по умолчанию используя в качестве цели таблицы S3, но также поддерживая стандартный формат Iceberg в обычных бакетах, где таблицы S3 ещё не внедрены — в руководстве чётко указано, что не следует принуждать клиентов к смене подхода, если они ещё не перешли на этот формат. Команды выполняются с помощью инструментов сервера AWS MCP при подключении (для проверки, выполнения в изолированной среде и ведения журналов аудита); при отсутствии подключения используется AWS CLI, причём перед каждым шагом приводится его описание. Рабочий процесс проверяет зависимости и учётные данные с помощью команды aws sts get-caller-identity, классифицирует источник, убеждается в наличии подключения к Glue для источников JDBC, Snowflake и BigQuery (настройка подключения и устранение неполадок передаются в отдельный навык для работы с источниками данных), определяет целевую базу данных, таблицу и формат, выполняет процедуру проверки, специфичную для конкретного источника, и проводит три обязательных проверки: совпадение количества строк в источнике и цели, проверка значений null в критических столбцах и выборочная проверка трёх–пяти примерных строк. Регулярные пайплайны планируются с помощью Glue Triggers по расписанию cron, а для многократных ветвлений используется MWAA. В документации к этому навыку описано множество особенностей: для таблиц S3 требуется Glue 5.1 или новее и формат Iceberg для data lake, настройки каталога должны указываться в аргументах --conf job, обязателен параметр warehouse, названия таблиц и столбцов должны быть в нижнем регистре, для стандартных целей Iceberg требуется указание строки LOCATION, тогда как для таблиц S3 она не нужна, а для DynamoDB подключение к Glue не требуется. Источники типа SaaS и потоковые сервисы, такие как Salesforce, ServiceNow, SAP, MongoDB и Kafka, не входят в область применения, как и выполнение запросов и аудит каталога, которые обрабатываются другими навыками.

Часто задаваемые вопросы

Какой формат является стандартным целевым?

Стандартным и рекомендуемым целевым форматом являются таблицы S3. Если у клиента ещё не внедрены таблицы S3, навык рекомендует использовать стандартный формат Iceberg в существующем обычном бакете.

Из каких источников можно загружать данные?

Локальные файлы, файлы в S3, базы данных JDBC (Oracle, SQL Server, PostgreSQL, MySQL, RDS, Aurora), Redshift, Snowflake, BigQuery, DynamoDB, а также существующие таблицы каталога Glue для миграции.

Какие источники требуют подключения к Glue?

Для источников JDBC, Snowflake и BigQuery требуется подключение к Glue, которое проверяется с помощью команды aws glue get-connection. Локальные файлы, файлы в S3, DynamoDB и миграция каталога подключение к Glue не требуют.

Как проверяется корректность загрузки?

Проводятся все три проверки без исключений: совпадение количества строк в источнике и цели, отсутствие значений null в критических столбцах и выборочная проверка трёх–пяти примерных строк.

Какие источники не поддерживаются?

Не поддерживаются платформы типа SaaS и потоковые сервисы, такие как Salesforce, ServiceNow, SAP, MongoDB и Kafka, а также настройка подключения к Glue, создание пустых таблиц, выполнение запросов и аудит каталога, которые обрабатываются другими навыками.

Все файлы

26 файлов references/error-handling.md 12,3 КБ Просмотреть references/iceberg-catalog-config-and-usage.md 7,9 КБ Просмотреть references/jdbc-schema-discovery.md 12,7 КБ Просмотреть references/schema-evolution.md 9,3 КБ Просмотреть SKILL.md 10,8 КБ Просмотреть references/bigquery-ingest.md 3,7 КБ Просмотреть references/ctas-patterns.md 3,0 КБ Просмотреть references/glue-etl-migration.md 4,5 КБ Просмотреть references/incremental-loading.md 13,1 КБ Просмотреть references/data-quality-validation.md 12,1 КБ Просмотреть references/glue-job-config.md 9,4 КБ Просмотреть references/jdbc-performance.md 10,3 КБ Просмотреть references/migration-validation.md 2,7 КБ Просмотреть references/type-transformations.md 7,8 КБ Просмотреть references/athena-loading.md 2,8 КБ Просмотреть references/dynamodb-ingest.md 7,2 КБ Просмотреть references/glue-job-scripts.md 9,6 КБ Просмотреть references/s3-files.md 5,7 КБ Просмотреть references/upload-options.md 1,0 КБ Просмотреть references/catalog-migration.md 6,9 КБ Просмотреть references/format-specific-loading.md 12,8 КБ Просмотреть references/jdbc-ingest.md 5,7 КБ Просмотреть references/local-upload.md 4,5 КБ Просмотреть references/snowflake-ingest.md 3,6 КБ Просмотреть references/migration-troubleshooting.md 2,6 КБ Просмотреть references/testing-and-scheduling.md 13,6 КБ Просмотреть

Посмотреть на GitHub

Move data from a source into a queryable table in the data lake. This skill assumes the source connection (if one is needed) already exists. For Glue connection setup or troubleshooting, delegate to connecting-to-data-source.

Philosophy

Default to S3 Tables unless the environment says otherwise. S3 Tables is the recommended target for new data lake work. If the user's catalog inventory shows they haven't adopted S3 Tables, recommend standard Iceberg on their existing general-purpose bucket instead of forcing them to change posture.

Common Tasks

You MUST execute commands using AWS MCP server tools when connected -- they provide validation, sandboxed execution, and audit logging. Fall back to AWS CLI only if MCP is unavailable. You MUST explain each step before executing.

Workflow

1. Verify Dependencies and Context

  • You MUST check whether AWS MCP tools or AWS CLI are available and inform the user if missing
  • You MUST confirm target AWS region and verify credentials with aws sts get-caller-identity
  • For SageMaker Unified Studio project roles, note that target tables and connections may be scoped to the project. See the caller ARN detection pattern in querying-data-lake.

2. Classify the Source

User says...Source typeReference
"upload my file", "local CSV", "move to S3"Local filelocal-upload.md
"load from S3", "import CSV/JSON/Parquet from s3://"S3 filess3-files.md
"import from Oracle/Postgres/MySQL/SQL Server/Redshift/RDS/Aurora"JDBCjdbc-ingest.md
"pull from Snowflake", "Snowflake table to S3"Snowflakesnowflake-ingest.md
"import from BigQuery", "GCP analytics to S3"BigQuerybigquery-ingest.md
"export DynamoDB", "DynamoDB to data lake"DynamoDBdynamodb-ingest.md
"migrate Glue table", "convert Hive to Iceberg"Catalog migrationcatalog-migration.md

If the user names Salesforce, ServiceNow, SAP, MongoDB, Kafka, or another SaaS/streaming source, decline -- these are not supported in this release.

If the source table is referenced by a fuzzy or business name ("migrate our orders table", "pull from the sales warehouse"), delegate to finding-data-lake-assets to resolve before proceeding.

3. Confirm Connection Exists (if applicable)

For JDBC, Snowflake, and BigQuery sources, a Glue connection is required. Check:

aws glue get-connection --name <CONNECTION_NAME> --region <REGION>

If the connection does not exist, stop and delegate to connecting-to-data-source to create and test it. Do not proceed with ingest until the connection is verified.

Local files, S3 files, DynamoDB, and catalog migration do not need a Glue connection.

4. Clarify the Target

You MUST ask the user (or suggest based on catalog inventory) before creating or writing to any table:

  • Database/namespace: Does a specific target database exist? Or should one be created?
  • Table: Existing table (append/merge) or new table (delegate to creating-data-lake-table)?
  • Format: S3 Tables (default), standard Iceberg, or raw Parquet?

Inventory-aware defaults:

If you have already run exploring-data-catalog or can quickly check, use what exists:

  • Account has an s3tablescatalog federated catalog and active table buckets: recommend S3 Tables
  • Account has general-purpose buckets with Iceberg tables and no S3 Tables usage: recommend standard Iceberg on their existing bucket
  • Account uses Parquet/ORC on S3 without Iceberg metadata: ask whether to adopt Iceberg now (recommend yes) or continue with raw files

Do not force S3 Tables on customers who haven't adopted it. See iceberg-catalog-config-and-usage.md.

Delegations from this step:

  • Target table doesn't exist -> creating-data-lake-table
  • Target database named by fuzzy term -> finding-data-lake-assets
  • User doesn't know what exists -> exploring-data-catalog

5. Execute Source Workflow

Read the source-specific reference and follow its phases. Each is self-contained with job templates, gotchas, and troubleshooting:

  • Local / S3 / JDBC / Snowflake / BigQuery / DynamoDB / catalog migration -- one reference per source

Common Glue 5.1 or higher job configuration and PySpark templates are shared in glue-job-config.md and glue-job-scripts.md.

6. Validate

Run all three, do not skip:

  1. Row count matches expected (source vs target)
  2. Null check on critical columns
  3. Spot-check 3-5 sample rows

See data-quality-validation.md.

7. Schedule (if recurring)

For recurring pipelines, create a Glue Trigger with a cron schedule. See testing-and-scheduling.md. Simple single-step pipelines use Glue Triggers; multi-step with branching uses MWAA.

Argument Routing

  • S3 path only: Infer one-time load, start Step 2 with S3 files
  • Connection name: Start Step 3 with the named connection
  • Table name: Start Step 4, ask whether this is source or target
  • --target flag: Pre-fill the target format in Step 4
  • No args: Walk through interactively

Gotchas

  • S3 Tables requires Glue 5.1 or higher and --datalake-formats iceberg job argument
  • All spark.sql.catalog.* config MUST go in --conf job arguments, never in spark.conf.set(). Glue 5.x throws AnalysisException: Cannot modify the value of a static config otherwise. See iceberg-catalog-config-and-usage.md for correct catalog configs.
  • The warehouse parameter is required in S3 Tables catalog config. Without it Spark fails with "Cannot derive default warehouse location".
  • Table and column names in S3 Tables MUST be all lowercase
  • overwritePartitions() only replaces partitions present in the DataFrame -- for full refresh with deletes, use createOrReplace()
  • Standard Iceberg targets MUST include a LOCATION clause; S3 Tables MUST NOT
  • DynamoDB does not need a Glue connection -- do not attempt to create one
  • Connection failures during ingest delegate back to connecting-to-data-source; do not debug network/credentials in this skill
  • For target tables in SageMaker Unified Studio projects, ensure the project role has write access to the target namespace before the Glue job runs

Troubleshooting

ErrorLikely causeAction
Access Denied on S3Missing IAM permissionsCheck Glue role has s3:GetObject, s3:PutObject
Access Denied on S3 TablesMissing s3tables:* permissionsAdd S3 Tables inline policy to Glue role
CTAS timeoutDataset too large for AthenaSwitch to Glue ETL or batch with WHERE filters
JDBC connection timeout/auth failureConnection-level issueDelegate to connecting-to-data-source
Throughput exceeded (DynamoDB)Read percent too highLower read.percent or use native export

See error-handling.md for the full catalog.

References

Source-specific

  • local-upload.md -- Local files
  • s3-files.md -- S3 files (CSV, JSON, Parquet, Avro, ORC)
  • jdbc-ingest.md -- Oracle, SQL Server, PostgreSQL, MySQL, RDS, Aurora, Redshift
  • snowflake-ingest.md -- Snowflake
  • bigquery-ingest.md -- BigQuery
  • dynamodb-ingest.md -- DynamoDB (export and Glue direct read)
  • catalog-migration.md -- Existing Glue catalog tables (Hive, self-managed Iceberg)

Cross-cutting

  • iceberg-catalog-config-and-usage.md -- S3 Tables, standard Iceberg, raw files: catalog config, engine access patterns
  • glue-job-config.md -- Job sizing, monitoring, retry
  • glue-job-scripts.md -- PySpark templates (append, upsert, custom SQL, full refresh)
  • incremental-loading.md -- Watermark strategies
  • testing-and-scheduling.md -- Glue Triggers, MWAA
  • data-quality-validation.md -- Row counts, null checks, Glue Data Quality
  • schema-evolution.md -- ALTER TABLE ADD COLUMNS, nested JSON
  • type-transformations.md -- Type conflict resolution
  • format-specific-loading.md -- CSV/JSON/Parquet/Avro/ORC specifics
  • athena-loading.md -- Athena INSERT INTO as simple-load fallback
  • error-handling.md -- Ingest errors (connection errors delegate to connecting-to-data-source)
  • upload-options.md -- aws s3 cp vs sync, multipart

Migration-specific

  • ctas-patterns.md -- Athena CTAS syntax and partition transforms
  • glue-etl-migration.md -- Large-table migration via Glue 5.1 or higher PySpark
  • migration-validation.md -- Full validation checklist
  • migration-troubleshooting.md -- CTAS failures, visibility, partitions

JDBC-specific

  • jdbc-schema-discovery.md -- Crawler, direct inspection, custom SQL
  • jdbc-performance.md -- Parallel reads, partitioning

Установить ingesting-into-data-lake

Скачайте файлы с навыками и извлеките их в папку .claude/skills/.

Скачать ZIP

Клонируйте репозиторий и скопируйте файлы навыка в свой проект.

git clone https://github.com/aws/agent-toolkit-for-aws/blob/main/skills/specialized-skills/analytics-skills/ingesting-into-data-lake/SKILL.md # Copy SKILL.md to your .claude/skills/ directory

Копировать Копировать
Быстрая настройка: Скопируйте папку с навыком в .claude/skills/ — Claude автоматически обнаружит её и начнёт использовать.
Репозиторий aws/agent-toolkit-for-aws

Похожие навыки

Cloudflare Manager
Обновлено время 29 июня 2026 г.
pinecone
Обновлено время 29 июня 2026 г.
sentry-architecture-variants
Обновлено время 29 июня 2026 г.
azure-setup-guide
Обновлено время 29 июня 2026 г.
OR