finding-data-lake-assets
Glue Data Catalog・S3・S3 Tables・Redshiftにまたがるデータレイクおよびレイクハウスのアセット参照を解決するスキルで、「このテーブルはどこにある」「このデータを持つテーブルを探して」「S3パスから逆引きしたい」といったリクエストで起動します。カタログ全体の監査・クエリ実行・テーブル作成には使用せず、それぞれ専用のスキルを利用してください。
description の原文を見る
>- Resolve data lake and lakehouse asset references across Glue Data Catalog, S3, S3 Tables, and Redshift. Triggers on: find the table, where is our data, which table has, locate dataset, find data for, search catalog, what tables match, Redshift table, lakehouse table, data lake table, warehouse table, reverse lookup S3 path. Do NOT use for: full catalog audits (use exploring-data-catalog), running queries (use querying-data-lake), creating tables (use creating-data-lake-table).
SKILL.md 本文
データレイク資産の検索
概要
データレイク資産参照を具体的なカタログエントリに解決します。他のスキルおよび直接ユーザーリクエストのリゾルバーとして機能します。Glue、S3、S3 Tables、Redshift をカバーします。トークン使用量を最小化することに最適化されており、素早く回答を返して終了します。
パラメータ取得の制約:
- 単一の引数(テーブル名、キーワード、列名、または S3 パス)を受け入れる必須
- 引数を直接入力、またはスペックを含むファイルへのポインタとして受け入れる必須
- ターゲット AWS リージョンが設定されていない場合は確認する必須
- あいまいな入力の場合は検索前に確認する必須(例:「テーブル X またはバケット Y のどちらを意味していますか?」)
- 任意のステップでユーザーの中止決定を尊重する必須
一般的なタスク
AWS MCP サーバーツールが接続されている場合は、必ずそれを使用してコマンドを実行します。これらはバリデーション、サンドボックス実行、監査ログを提供します。MCP が利用できない場合のみ AWS CLI にフォールバックします。各ステップ前に説明する必須。
1. 依存関係の確認
検索前に必要なツールと AWS アクセスを確認します。
制約:
- AWS MCP サーバーツール(
aws___call_aws)が利用可能なことを確認する必須。利用できない場合は AWS CLI にフォールバック aws sts get-caller-identityで認証情報を確認する必須- ユーザーに欠落ツールについて通知し、続行するか確認を求める必須
2. リクエストを分類する
モードを判定します:
- 解決(最も一般的): ユーザー/スキルが何か特定のものを参照しています。 シグナル:所有格/定冠詞(「私たちの X テーブル」、「Y データセット」)は資産が存在することを示唆します。目標:それを見つけ、参照を返し、完了。
- 検索: ユーザーが探索しています。シグナル:「〜を含むテーブルを検索」、「customer_id を持つもの」。目標:候補をランク付けし、上位一致を提示。
あいまいな場合は解決モードをデフォルトとする推奨。
3. 検索用語を抽出する
リクエストを検索ディメンションに解析します:
- 名前用語: テーブルまたはデータベース名
- ドメイン用語: ビジネスコンセプト(請求、注文、チャーン)
- 列用語: 特定の列名(customer_id、event_type)
- 場所用語: S3 パス、バケット名、プレフィックス
4. レイヤー化検索(早期停止)
ソースを順に検索します。高信頼度マッチを返す最初のレイヤーで停止します。毎回すべてのレイヤーを検索しないでください。
検索したレイヤーとスキップしたレイヤーを追跡する必須。出力でこれを報告します(ステップ 6 を参照)。
レイヤー 1: Glue Data Catalog(常にここから開始)
主要 API として SearchTables を使用する推奨。カタログ全体をわたって単一の呼び出しでテーブル名、列名、列コメントを検索します。データベース名が既に分かっていない場合は、get-tables でデータベースをループしない必須。パターンについてはsearch-strategy.md を参照してください。
aws glue search-tables --search-text "orders"
aws glue get-tables --database-name sales --expression "order.*"
レイヤー 2: S3 逆引き検索(S3 パス提供時)
ユーザーが S3 パスを提供する場合、デフォルトで逆引き検索を優先する推奨。ファイル内容ではなく Glue テーブルを通常求めています。
aws glue search-tables --search-text "<path-keyword>"
aws s3api list-objects-v2 --bucket <bucket-name> --prefix <prefix>
レイヤー 3: Redshift カタログ(ユーザーが Redshift、warehouse、lakehouse を言及した場合)
SELECT schema_name, table_name, table_type
FROM svv_all_tables
WHERE table_name ILIKE '%orders%';
Redshift Spectrum 外部テーブルは Glue にも表示されます。レイヤー 1 が Spectrum SerDe を持つテーブルを見つけた場合、レイヤー 3 をスキップします。
4b. 広範スキャン フォールバック(単一ターン)
search-tables が何も返さず、S3 Tables 列挙も見落とした場合、データベース間でスキャンが必要になる可能性があります。データベースごとに別の CLI 呼び出しを発行しないでください。ターン数とトークンを消費します。代わりに、boto3 ページネーターを使用して単一の実行で完全スキャンを実行する短い Python スクリプトを作成します。スクリプトをファイルに書き込み、python3 で実行します。
スクリプトは以下の必須:
get_databases()をページネーション化してすべてのデータベース名を収集- 各データベースについて、検索用語に一致する
Expressionフィルタを使用してget_tables()をページネーション化 - マッチする結果のみを構造化出力(JSON またはテーブル)として出力
- 引数または変数としてリージョンと検索用語を受け入れる
import boto3, sys, json
region = sys.argv[1]
term = sys.argv[2]
glue = boto3.client("glue", region_name=region)
matches = []
db_paginator = glue.get_paginator("get_databases")
for db_page in db_paginator.paginate():
for db in db_page["DatabaseList"]:
db_name = db["Name"]
tbl_paginator = glue.get_paginator("get_tables")
for tbl_page in tbl_paginator.paginate(
DatabaseName=db_name, Expression=f".*{term}.*"
):
for tbl in tbl_page["TableList"]:
matches.append({
"database": db_name,
"table": tbl["Name"],
"format": tbl.get("Parameters", {}).get("classification", "unknown"),
"location": tbl.get("StorageDescriptor", {}).get("Location", ""),
})
print(json.dumps(matches, indent=2) if matches else "No matches found.")
このフォールバックは search-tables と S3 Tables 列挙が既に何も返さなかった後のみ使用する必須。これは最後の手段であり、最初の選択ではありません。
5. 信頼度ゲートを適用する
- 高信頼度(正確な名前マッチ、単一結果): 解決された参照を直ちに返します。概要もオプションもなし。
- 中程度の信頼度(あいまいマッチ、2~3 結果): 上位一致を 1 行で提示:名前、マッチ理由、形式。ユーザーに選択させます。
- 低信頼度(多数の弱いマッチまたはなし): 検索内容とスキップ内容を報告し、クエリの絞り込みまたは
exploring-data-catalog実行を提案します。
6. 参照を返す
高信頼度解決の場合、構造化された参照を返します。常に「Sources searched / skipped」行を含めてユーザーが確認したデータストアとそうでないデータストアを知ることができるようにします。
Table: database_name.table_name
Catalog: default | catalog_name
Format: Parquet | CSV | JSON | ORC | Iceberg
Location: s3://bucket/prefix/
Partition keys: [key1, key2] or none
Sources searched: Glue Data Catalog
Sources skipped: S3, Redshift (stopped early — high-confidence match in Glue)
S3 Tables は 4 レベルの階層(catalog / table-bucket / namespace / table)を使用し、search-tables は s3tablescatalog/* にインデックスを付けません。ユーザーが S3 Tables を明示的に言及するか、レイヤー 1 が予想される S3 Tables 資産について何も返さない場合、aws s3tables list-table-buckets と list-namespaces で列挙します。以下のように返します:
Table: s3tablescatalog/<table-bucket>/<namespace>/<table>
Format: Iceberg
Location: arn:aws:s3tables:<region>:<account>:bucket/<table-bucket>/table/<table-uuid>
Sources searched: Glue Data Catalog, S3 Tables
Sources skipped: Redshift (not relevant to S3 Tables lookup)
SQL 参照: "s3tablescatalog/<table-bucket>"."<namespace>"."<table>"。
出力には常に「Sources searched」と「Sources skipped」の両方を含める必須。スキップ理由を括弧内にリストします。有効な理由:「stopped early」、「not relevant to this request」、「access denied」、「no results in prior layer」。
トラブルシューティング
| エラー | 原因 | 修正 |
|---|---|---|
get-tables がデータベース欠落で失敗 | --database-name が必須 | クロスデータベース検索の場合は search-tables を使用 |
search-tables が S3 Tables について何も返さない | フェデレーション カタログを S3 Tables がカバーしていない | S3 Tables が関連する場合は aws s3tables list-table-buckets を使用 |
search-tables で AccessDeniedException | 呼び出し元が glue:SearchTables 権限を持っていない | 権限をリクエストするか、既知のデータベースで Glue get-tables にフォールバック |
API 呼び出しがタイムアウトまたはスロットル(ThrottlingException) | サービスレベルレート制限によるスロットル | 指数バックオフで再試行。並列呼び出しを削減 |
| リソースが予想されるリージョンにない | クロスリージョン検索 | AWS リージョンを確認。Glue カタログはリージョンスコープ |
| 委任呼び出し元が詳細出力を期待 | 他のスキルがこれをリゾルバーとして呼び出した | 最小限の出力を返す。呼び出し元はカタログ参照が必要であり、フォーマット済み概要ではない |
原則
search-tablesをデータベース反復より優先する必須。1 つの API 呼び出しが N を上回ります。get-tablesを呼び出す場合、Expressionフィルタを渡す必須。それなしで呼び出しない。- データベースごとに別の CLI 呼び出しを発行しない必須。広範スキャンが必要な場合は、ステップ 4b の boto3 ページネーター スクリプトを使用して単一ターンで実行します。
- 素早く解決し、早期停止する推奨。追加の API 呼び出しはすべてトークンをコストします。
- 解決モードでは資産が存在すると想定する推奨。資産を確認するのではなく、それを見つけるために検索します。
追加リソース
ライセンス: 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パターンを含んでいます。