Agent Skills by ALSEL
Anthropic Claudeソフトウェア開発⭐ リポ 0品質スコア 50/100

creating-data-lake-table

Amazon S3 Tables(s3tables APIネームスペース)を使用して、自動コンパクションとスナップショット管理を備えたマネージドIcebergテーブルを作成します。テーブルバケット・ネームスペース・テーブル・スキーマ・Glueカタログ登録・パーティショニング・IAMアクセス制御をセットアップします。ファイルのインポート・ベクターストレージ・既存テーブルへのクエリ・既存テーブルの検索には、それぞれ別のスキルを使用してください。

description の原文を見る

>- Create managed Iceberg tables using Amazon S3 Tables (s3tables API namespace) with automatic compaction and snapshot management. Sets up table bucket, namespace, table, schema, Glue catalog registration, partitioning, IAM access control. Triggers on: create table, data lake table, analytics table, structured data storage, S3 Tables, Iceberg, Athena table, partitioning strategy, access permissions. Do NOT use for: importing files (use ingesting-into-data-lake), vector storage (use storing-and-querying-vectors), querying existing tables (use querying-data-lake), or locating existing table (use finding-data-lake-assets).

SKILL.md 本文

Amazon S3 Tables でデータレイク テーブルを作成

概要

Amazon S3 Tables は、自動圧縮とスナップショット管理を備えたマネージド Iceberg テーブルを提供します。Athena および Iceberg 互換エンジンから クエリ可能です。

一般的なタスク

MCP サーバーに接続されている場合、AWS MCP サーバーツールを使用する MUST があります。これらは コマンド検証、サンドボックス実行、および監査ログを提供します。MCP が利用できない場合は AWS CLI にフォールバックしてください。

判断ガイド

作成する前に、既存のものを確認する MUST があります:

ユーザーがデータベースに言及した場合、aws glue get-tables --database-name <NAME> を実行する MUST があります。

検出内容アクション
あいまいなデータベース名(「our analytics db」など)停止 MUST があります。finding-data-lake-assets に解決を委譲してください。
一致する名前の S3 Tables 以外のテーブル停止 MUST があります。finding-data-lake-assets に委譲してください。ユーザーが確認するまで作成しないでください MUST があります。
一致する名前の既存 S3 Tables テーブルスキーマ一致を確認する MUST があります。互換性がある場合は再利用、ユーザーが確認した場合のみ再作成してください。
一致するテーブルがない作成を進める(ステップ 1~8)。
ユーザーが明示的に新しい S3 Tables テーブルをリクエストチェックをスキップして作成を進める。

作成パス:

  • S3 に既存データがある: 空のテーブルを作成(ステップ 1~8)してから、ingesting-into-data-lake スキルを使用してください。
  • Glue ETL パイプライン: まず references/table-creation-glue-etf.md を読み、その後ステップ 1~6 を実行してください。
  • Lake Formation アクセス制御: AWS ドキュメントで "S3 Tables integration with Lake Formation" を検索してください。

1. 依存関係を確認

制約:

  • AWS MCP サーバーツールまたは AWS CLI が利用可能かどうかを確認し、欠落している場合はユーザーに通知する MUST があります
  • 対象の AWS リージョンを確認し、aws sts get-caller-identity で認証情報を検証する MUST があります

2. スキーマを理解

  • 明示的なスキーマ: Iceberg 型を検証してください。
  • ゆるい説明: 列、型、粒度を尋ねてください。提案して確認してください。
  • 既存の S3 データ: ファイル ヘッダーからのみスキーマを推論してください。まず空のテーブルを作成し、その後 ingesting-into-data-lake スキルを使用してください。

制約:

  • Iceberg 型マッピング、パーティション、命名については references/best-practices.md を読む MUST があります。
  • すべての必須パラメータを事前に確認する MUST があります: テーブル名、列、型、パーティション戦略。スキーマ進化については、references/athena-ddl-path.md を参照してください。
  • すべて小文字の名前を使用する MUST があります。Glue は GENERIC_INTERNAL_ERROR で混合ケースを拒否します。Namespace とテーブル名にはハイフンを含めてはいけません MUST があります。
  • アクセスパターンに基づいてパーティション列を提案する SHOULD があります。

3. テーブル バケットを作成

名前: 3~63 文字、小文字、数字、ハイフン。

aws s3tables create-table-bucket --name <BUCKET_NAME> --region <REGION>

table-bucket-arn をキャプチャしてください。暗号化(SSE-S3 デフォルト、SSE-KMS)とストレージクラス(STANDARD、INTELLIGENT_TIERING)は作成時に設定されます。references/best-practices.md を参照してください。

制約:

  • aws s3tables list-table-buckets で既存バケットを確認し、ユーザーに既存を選択または新規作成を要求する MUST があります。
  • SSE-KMS を使用する場合、KMS キーポリシーは S3 Tables メンテナンス サービス プリンシパルがデータを読み取ることを許可する MUST があります。AWS ドキュメントで "S3 Tables KMS key policy" を検索して、必須ポリシーを確認してください。
  • バケット作成が失敗した場合、references/best-practices.md で一般的なエラーを確認してください。

4. Namespace を作成

aws s3tables create-namespace --table-bucket-arn <ARN> --namespace <NAMESPACE>

制約:

  • 既存の Namespace をリストして、関連する場合の再利用を提案する MUST があります
  • ハイフンなしの小文字の名前を使用する MUST があります

5. Glue データ カタログ統合を作成

s3tablescatalog が存在するかどうかを確認してください(リージョンおよびアカウントごとに1回作成):

aws glue get-catalog --catalog-id s3tablescatalog

見つからない場合は作成してください(glue:CreateCatalogglue:passConnection が必要):

aws glue create-catalog --name "s3tablescatalog" --catalog-input '{
  "FederatedCatalog": {
    "Identifier": "arn:aws:s3tables:<REGION>:<ACCOUNT_ID>:bucket/*",
    "ConnectionName": "aws:s3tables"
  },
  "CreateDatabaseDefaultPermissions": [{"Principal": {"DataLakePrincipalIdentifier": "IAM_ALLOWED_PRINCIPALS"}, "Permissions": ["ALL"]}],
  "CreateTableDefaultPermissions": [{"Principal": {"DataLakePrincipalIdentifier": "IAM_ALLOWED_PRINCIPALS"}, "Permissions": ["ALL"]}],
  "AllowFullTableExternalDataAccess": "True"
}'

aws glue get-catalogs --parent-catalog-id s3tablescatalog で検証してください。

6. アクセス制御を構成

S3 Tables は s3tables:* IAM Namespace を使用します(s3:* ではなく)。

クエリ プリンシパル権限(バケット ポリシー):

  • s3tables:GetTableBuckets3tables:GetNamespaces3tables:GetTables3tables:GetTableMetadataLocations3tables:GetTableData

クエリ プリンシパル権限(IAM ポリシー):

  • glue:GetCatalogglue:GetDatabaseglue:GetTable

正しい ARN パターンに範囲を絞る MUST があります。正確なリソース ARN については、references/access-control.md を読む MUST があります。

制約:

  • ユーザーからクエリ プリンシパル ARN を要求する MUST があります
  • 必要以上に広い権限を付与しないでください MUST があります
  • IAM ロールを自動作成しないでください MUST があります。既存を確認してユーザーをガイドしてください

7. テーブルを作成

コンテキストパス
デフォルト(任意のユーザー)S3 Tables API(以下)
ユーザーが明示的に SQL DDL を希望Athena DDLreferences/athena-ddl-path.md を参照)
Glue ETL パイプラインSpark DDL via --conf ジョブ引数(spark.conf.set() ではなく)。references/table-creation-glue-etl.md--conf 文字列を読む MUST があります。

デフォルト: S3 Tables API:

aws s3tables create-table \
  --table-bucket-arn <ARN> \
  --namespace <NAMESPACE> \
  --name <TABLE_NAME> \
  --format ICEBERG \
  --metadata '<METADATA_JSON>'

Metadata JSON は "iceberg" キーの下にネストする MUST があります:

{"iceberg":{"schema":{"fields":[
  {"name":"order_date","type":"date","required":true},
  {"name":"customer_id","type":"string","required":true},
  {"name":"amount","type":"double","required":false}
]},
"partitionSpec":{"fields":[
  {"sourceId":1,"fieldId":1000,"transform":"month","name":"order_date_month"}
]}}}

制約:

  • partitionSpec.sourceId は有効なスキーマ フィールド ID を参照する MUST があります
  • 作成後のスキーマ進化については、Athena DDL を使用してください。references/athena-ddl-path.md を参照してください
  • 複雑な型(list、map、struct)に対しては schemaV2 を明示的なフィールド ID で使用する MUST があります。references/best-practices.md を参照してください。
  • サポートされているパーティション変換については AWS ドキュメントで "IcebergPartitionField S3 Tables" を検索する SHOULD があります

8. 確認と検証

aws s3tables get-table で検証し、--query-execution-context '{"Catalog":"s3tablescatalog/<BUCKET_NAME>","Database":"<NAMESPACE>"}' を使用して Athena で DESCRIBE <table_name> でクエリ可能性を確認する MUST があります。SQL に catalog を入れないでください。概要を提示してください: バケット ARN、Namespace、テーブル、スキーマ、パーティション。

トラブルシューティング

エラー原因修正
"Table location can not be specified"CREATE TABLE の LOCATIONLOCATION 句を削除してください。S3 Tables はストレージを自動管理します。
s3:* ポリシーを使用した AccessDeniedExceptions3:* ではなく s3tables:* を使用S3 Tables は s3tables:* Namespace を使用します。IAM ポリシーを更新してください。

追加リソース

  • access-control.md -- IAM 権限、ARN パターン、権限エラー
  • best-practices.md -- Iceberg 型、パーティション、命名、一般的なエラー
  • athena-ddl-path.md -- Athena DDL、スキーマ進化
  • table-creation-glue-etl.md -- Glue ETL 経由の Spark DDL
  • データ読み込み: ingesting-into-data-lake スキル

ライセンス: Apache-2.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
aws
リポジトリ
aws/agent-toolkit-for-aws
ライセンス
Apache-2.0
最終更新
不明

Source: https://github.com/aws/agent-toolkit-for-aws / ライセンス: Apache-2.0

関連スキル

汎用ソフトウェア開発⭐ リポ 39,967

doubt-driven-development

重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 1,175

apprun-skills

TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。

by yysun
OpenAIソフトウェア開発⭐ リポ 797

desloppify

コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。

by Git-on-my-level
汎用ソフトウェア開発⭐ リポ 39,967

debugging-and-error-recovery

テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 39,967

test-driven-development

テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 39,967

incremental-implementation

変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。

by addyosmani
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: aws · aws/agent-toolkit-for-aws · ライセンス: Apache-2.0