ingesting-into-data-lake
S3ファイル、ローカルアップロード、JDBCデータベース(Oracle、SQL Server、PostgreSQL、MySQL、RDS、Aurora)、Amazon Redshift、Snowflake、BigQuery、DynamoDB、既存のGlueカタログテーブルなど多様なソースからAWSデータレイクへのデータ取り込みを担当するスキルで、単発ロード・定期パイプライン・マイグレーションのいずれにも対応します。デフォルトのターゲットはS3 Tablesで、未採用環境では汎用バケット上の標準Icebergもサポートします。「データをインポートする」「DBを同期する」「テーブルを移行する」「パイプラインを構築する」「ETL」「Icebergに変換する」などの操作がトリガーとなりますが、Glue接続設定・空テーブル作成・クエリ実行・カタログ調査・Salesforce等のSaaSプラットフォームには使用しないでください。
description の原文を見る
>- Import data into the AWS data lake from S3 files, local uploads, JDBC databases (Oracle, SQL Server, PostgreSQL, MySQL, RDS, Aurora), Amazon Redshift, Snowflake, BigQuery, DynamoDB, or existing Glue catalog tables (migration). Default target is S3 Tables; standard Iceberg on a general purpose bucket is supported where S3 Tables is not adopted. Handles one-time loads, recurring pipelines, migrations. Triggers on: import data, load data, ingest, sync database, migrate table, move data to AWS, set up pipeline, ETL, pull from Snowflake, query BigQuery into S3, export DynamoDB, CTAS, convert to Iceberg. Do NOT use for setting up or troubleshooting Glue connections (use connecting-to-data-source), creating empty tables (use creating-data-lake-table), running queries (use querying-data-lake), finding tables by fuzzy name (use finding-data-lake-assets), catalog audit (use exploring-data-catalog), or SaaS platforms like Salesforce, ServiceNow, SAP, MongoDB, Kafka.
SKILL.md 本文
データレイクへのインジェスト
ソースからのデータをデータレイク内のクエリ可能なテーブルに移動します。このスキルは、必要な場合、ソース接続が既に存在していることを前提としています。Glue接続のセットアップやトラブルシューティングについては、connecting-to-data-source に委譲してください。
哲学
環境で別の指定がない限り、S3 Tables をデフォルトとしてください。 S3 Tables は、新しいデータレイク作業の推奨ターゲットです。ユーザーのカタログインベントリに S3 Tables の導入がないことが示されている場合、導入姿勢を変更させるのではなく、既存の汎用バケット上の標準 Iceberg を代わりに推奨してください。
一般的なタスク
AWS MCP サーバーツールが利用可能な場合は、これを使用してコマンドを実行する必須です。これらはバリデーション、サンドボックス実行、監査ログを提供します。MCP が利用できない場合のみ AWS CLI にフォールバックしてください。各ステップを実行前に説明する必須です。
ワークフロー
1. 依存関係とコンテキストの確認
- AWS MCP ツールまたは AWS CLI が利用可能かどうか確認し、不足している場合はユーザーに知らせる必須です
- 対象 AWS リージョンを確認し、
aws sts get-caller-identityで認証情報を検証する必須です - SageMaker Unified Studio プロジェクトロールの場合、ターゲットテーブルと接続がプロジェクトにスコープされている可能性があります。
querying-data-lakeの呼び出し元 ARN 検出パターンを参照してください。
2. ソースを分類
| ユーザーが言う内容 | ソースタイプ | 参考 |
|---|---|---|
| 「ファイルをアップロード」、「ローカルCSV」、「S3に移動」 | ローカルファイル | local-upload.md |
| 「S3から読み込み」、「S3からCSV/JSON/Parquetをインポート」 | S3ファイル | s3-files.md |
| 「Oracle/Postgres/MySQL/SQL Server/Redshift/RDS/Auroraからインポート」 | JDBC | jdbc-ingest.md |
| 「Snowflakeから取得」、「SnowflakeテーブルをS3に」 | Snowflake | snowflake-ingest.md |
| 「BigQueryからインポート」、「GCP分析をS3に」 | BigQuery | bigquery-ingest.md |
| 「DynamoDBをエクスポート」、「DynamoDBをデータレイクに」 | DynamoDB | dynamodb-ingest.md |
| 「Glueテーブルをマイグレート」、「HiveをIcebergに変換」 | カタログマイグレーション | catalog-migration.md |
ユーザーが Salesforce、ServiceNow、SAP、MongoDB、Kafka、またはその他の SaaS/ストリーミングソースを指定した場合は、拒否してください。これらは今回のリリースではサポートされていません。
ソーステーブルが曖昧またはビジネス名で参照されている場合(「マイグレート注文テーブル」、「営業ウェアハウスから取得」)、続行する前に finding-data-lake-assets に委譲して解決してください。
3. 接続の存在を確認(該当する場合)
JDBC、Snowflake、BigQuery ソースの場合、Glue 接続が必要です。以下を確認してください:
aws glue get-connection --name <CONNECTION_NAME> --region <REGION>
接続が存在しない場合は、停止して connecting-to-data-source に委譲し、接続を作成およびテストしてください。接続が確認されるまでインジェストを続行しないでください。
ローカルファイル、S3 ファイル、DynamoDB、カタログマイグレーションは Glue 接続を必要としません。
4. ターゲットを明確にする
テーブルを作成またはどのテーブルに書き込むかについて、ユーザーに確認するか、カタログインベントリに基づいて提案する必須です:
- データベース/名前空間:特定のターゲットデータベースが存在しますか?それとも新しく作成する必要がありますか?
- テーブル:既存テーブル(追加/マージ)または新規テーブル(
creating-data-lake-tableに委譲)? - 形式:S3 Tables(デフォルト)、標準 Iceberg、またはraw Parquet?
インベントリ対応のデフォルト:
既に exploring-data-catalog を実行しているか、迅速に確認できる場合は、存在するものを使用してください:
- アカウントが
s3tablescatalogフェデレーションカタログと動作中のテーブルバケットを持つ:S3 Tables を推奨 - アカウントが Iceberg テーブルを使用した汎用バケットを持ち、S3 Tables 使用なし:既存バケット上の標準 Iceberg を推奨
- アカウントが Iceberg メタデータなしで S3 上の Parquet/ORC を使用:今すぐ Iceberg を導入するかどうかを確認(導入を推奨)またはraw ファイルで続行
S3 Tables を導入していない顧客に強制しないでください。iceberg-catalog-config-and-usage.md を参照してください。
このステップからの委譲:
- ターゲットテーブルが存在しない ->
creating-data-lake-table - ターゲットデータベースが曖昧な用語で指定されている ->
finding-data-lake-assets - ユーザーが何が存在するかわからない ->
exploring-data-catalog
5. ソースワークフローを実行
ソース固有のリファレンスを読み、そのフェーズに従ってください。各フェーズは、ジョブテンプレート、注意点、トラブルシューティングが含まれた自己完結型です:
- ローカル / S3 / JDBC / Snowflake / BigQuery / DynamoDB / カタログマイグレーション -- ソースごとに 1 つのリファレンス
共通の Glue 5.1 以上のジョブ設定と PySpark テンプレートは glue-job-config.md と glue-job-scripts.md で共有されています。
6. 検証
3 つすべてを実行してください。スキップしないでください:
- 行数が予想値と一致(ソース対ターゲット)
- 重要なカラムでの Null チェック
- 3~5 行のサンプル行のスポットチェック
data-quality-validation.md を参照してください。
7. スケジュール(繰り返す場合)
繰り返しパイプラインの場合は、cron スケジュール付きの Glue Trigger を作成してください。testing-and-scheduling.md を参照してください。シンプルな単一ステップパイプラインは Glue Triggers を使用します。分岐を含む複数ステップは MWAA を使用します。
引数ルーティング
- S3 パスのみ:1 回限りの読み込みと推測し、ステップ 2 を S3 ファイルで開始
- 接続名:ステップ 3 を指定された接続で開始
- テーブル名:ステップ 4 を開始、これがソースかターゲットかを確認
--targetフラグ:ステップ 4 のターゲット形式を事前入力- 引数なし:対話形式で進める
落とし穴
- S3 Tables には Glue 5.1 以上と
--datalake-formats icebergジョブ引数が必要です - すべての
spark.sql.catalog.*設定は--confジョブ引数に入る必須です。spark.conf.set()には入りません。Glue 5.x はAnalysisException: Cannot modify the value of a static configをスロー します。正しいカタログ設定についてはiceberg-catalog-config-and-usage.mdを参照してください。 warehouseパラメーターは S3 Tables カタログ設定で必須です。なくても Spark は「Cannot derive default warehouse location」で失敗します。- S3 Tables のテーブル名と列名はすべて小文字である必須です
overwritePartitions()は DataFrame に存在するパーティションのみを置き換えます。削除を伴う完全更新の場合はcreateOrReplace()を使用してください- 標準 Iceberg ターゲットは LOCATION 句を含む必須です。S3 Tables は含めない必須です
- DynamoDB は Glue 接続を必要としません。接続を作成しようとしないでください
- インジェスト中の接続失敗は
connecting-to-data-sourceに委譲されます。このスキルでネットワーク/認証情報をデバッグしないでください - SageMaker Unified Studio プロジェクトのターゲットテーブルの場合、Glue ジョブ実行前にプロジェクトロールがターゲット名前空間への書き込みアクセス権を持つことを確認してください
トラブルシューティング
| エラー | 原因の可能性 | アクション |
|---|---|---|
| S3 のアクセス拒否 | IAM 権限不足 | Glue ロールが s3:GetObject、s3:PutObject を持つことを確認 |
| S3 Tables のアクセス拒否 | s3tables:* 権限不足 | Glue ロールに S3 Tables インラインポリシーを追加 |
| CTAS タイムアウト | データセットが大きすぎる | Glue ETL に切り替えるか、WHERE フィルターでバッチ処理 |
| JDBC 接続タイムアウト/認証失敗 | 接続レベルの問題 | connecting-to-data-source に委譲 |
| スループット超過(DynamoDB) | 読み取り率が高すぎる | read.percent を低下させるか、ネイティブエクスポートを使用 |
完全なカタログについては error-handling.md を参照してください。
リファレンス
ソース固有
local-upload.md-- ローカルファイルs3-files.md-- S3 ファイル(CSV、JSON、Parquet、Avro、ORC)jdbc-ingest.md-- Oracle、SQL Server、PostgreSQL、MySQL、RDS、Aurora、Redshiftsnowflake-ingest.md-- Snowflakebigquery-ingest.md-- BigQuerydynamodb-ingest.md-- DynamoDB(エクスポートおよび Glue 直接読み取り)catalog-migration.md-- 既存 Glue カタログテーブル(Hive、自己管理 Iceberg)
横断的
iceberg-catalog-config-and-usage.md-- S3 Tables、標準 Iceberg、raw ファイル:カタログ設定、エンジンアクセスパターンglue-job-config.md-- ジョブサイジング、監視、再試行glue-job-scripts.md-- PySpark テンプレート(追加、アップサート、カスタム SQL、完全更新)incremental-loading.md-- ウォーターマーク戦略testing-and-scheduling.md-- Glue Triggers、MWAAdata-quality-validation.md-- 行数、Null チェック、Glue Data Qualityschema-evolution.md-- ALTER TABLE ADD COLUMNS、ネストされた JSONtype-transformations.md-- タイプ競合解決format-specific-loading.md-- CSV/JSON/Parquet/Avro/ORC 固有事項athena-loading.md-- Athena INSERT INTO をシンプル読み込みフォールバックとしてerror-handling.md-- インジェストエラー(接続エラーは connecting-to-data-source に委譲)upload-options.md-- aws s3 cp 対 sync、マルチパート
マイグレーション固有
ctas-patterns.md-- Athena CTAS 構文とパーティション変換glue-etl-migration.md-- Glue 5.1 以上 PySpark 経由の大規模テーブルマイグレーションmigration-validation.md-- 完全検証チェックリストmigration-troubleshooting.md-- CTAS 失敗、可視化、パーティション
JDBC 固有
jdbc-schema-discovery.md-- Crawler、直接検査、カスタム SQLjdbc-performance.md-- 並列読み取り、パーティション分割
ライセンス: Apache-2.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- aws
- ライセンス
- Apache-2.0
- 最終更新
- 不明
Source: https://github.com/aws/agent-toolkit-for-aws / ライセンス: Apache-2.0
関連スキル
hugging-face-trackio
Trackioを使用してMLトレーニング実験を追跡・可視化できます。トレーニング中のメトリクスログ記録(Python API)、トレーニング診断のアラート発火、ログされたメトリクスの取得・分析(CLI)が必要な場合に活用してください。リアルタイムダッシュボード表示、Webhookを使用したアラート、HF Space同期、自動化向けのJSON出力に対応しています。
btc-bottom-model
ビットコインのサイクルタイミングモデルで、加重スコアリングシステムを搭載しています。日次パルス(4指標、32ポイント)とウィークリー構造(9指標、68ポイント)の2カテゴリーにわたる13の指標を追跡し、0~100のマーケットヒートスコアを算出します。ETFフロー、ファンディングレート、ロング/ショート比率、恐怖・貪欲指数、LTH-MVRV、NUPL、SOPR(LTH+STH)、LTH供給率、移動平均倍率(365日MA、200週MA)、週次RSI、出来高トレンドに対応します。市場サイクル全体を通じて買いと売りの両方の推奨を提供します。ビットコインの底値拾い、BTCサイクルポジション、買い時・売り時、オンチェーン指標、MVRV、NUPL、SOPR、LTH動向、ETFの流出入、ファンディングレート、恐怖指数、ビットコインが過熱状態か、マイナーコスト、暗号資産市場のセンチメント、BTCのポジションサイジング、「今ビットコインを買うべきか」「BTCが天井をつけているか」「オンチェーン指標は何を示しているか」といった質問の際にこのスキルを活用します。
protein_solubility_optimization
タンパク質の溶解性最適化 - タンパク質の溶解性を最適化します。タンパク質の特性を計算し、溶解性と親水性を予測し、有効な変異を提案します。タンパク質配列の特性計算、タンパク質機能の予測、親水性計算、ゼロショット配列予測を含むタンパク質エンジニアリング業務に使用できます。3つのSCPサーバーから4つのツールを統合しています。
research-lookup
Parallel Chat APIまたはPerplexity sonar-pro-searchを使用して、最新の研究情報を検索できます。学術論文の検索にも対応しています。クエリは自動的に最適なバックエンドにルーティングされるため、論文の検索、研究データの収集、科学情報の検証に活用できます。
tree-formatting
ggtree(R)またはiTOL(ウェブ)を使用して、系統樹の可視化とフォーマットを行います。系統樹を図として描画する際、ツリーレイアウトの選択、分類学に基づく枝やラベルの色付け、クレードの折りたたみ、サポート値の表示、またはツリーへのオーバーレイ追加が必要な場合に使用してください。系統推定(protein-phylogenyスキルを使用)やドメイン注釈(今後の独立したスキル)には使用しないでください。
querying-indonesian-gov-data
インドネシア政府の50以上のAPIとデータソースに接続できます。BPJPH(ハラール認証)、BOM(食品安全)、OJK(金融適正性)、BPS(統計)、BMKG(気象・地震)、インドネシア中央銀行(為替レート)、IDX(株式)、CKAN公開データポータル、pasal.id(第三者法MCP)に対応しています。インドネシア政府データを活用したアプリ開発、.go.idウェブサイトのスクレイピング、ハラール認証の確認、企業の法的適正性の検証、金融機関ステータスの照会、またはインドネシアMCPサーバーへの接続時に使用できます。CSRF処理、CKAN API使用方法、IP制限回避など、すぐに実行可能なPythonパターンを含んでいます。