用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/ffsshhttiikk/opencode-agents-skills --skill etl命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
基于 SOC 职业分类
正在显示 SKILL.md
| name | etl |
| description | Extract Transform Load processes |
| license | MIT |
| compatibility | opencode |
| metadata | {"audience":"data-engineers","category":"data-science"} |
Use me when:
┌─────────┐ ┌──────────┐ ┌─────────┐ ┌────────────┐
│ Source │───▶│ Extract │───▶│ Transform│───▶│ Load │
│ Systems │ │ (Raw) │ │ (Logic) │ │ (Warehouse)│
└─────────┘ └──────────┘ └─────────┘ └────────────┘
│ │
│ Staging Area │
└─────────────(Temp Storage)────────────────┘
import pandas as pd
from sqlalchemy import create_engine
import psycopg2
# Extract
def extract():
users = pd.read_sql("SELECT * FROM users", db_conn)
events = pd.read_json("s3://data/events.json")
transactions = pd.read_csv("s3://data/transactions.csv")
return users, events, transactions
# Transform
def transform(users, events, transactions):
# Clean data
users = users.dropna(subset=["email"])
users["created_at"] = pd.to_datetime(users["created_at"])
# Join and aggregate
merged = events.merge(users, on="user_id")
agg = merged.groupby("date").agg({
"event_id": "count",
"revenue": "sum"
}).reset_index()
return agg
# Load
def load(data):
engine = create_engine("postgresql://warehouse")
data.to_sql("daily_metrics", engine,
if_exists="append", index=False)
# Pipeline orchestration
users, events, transactions = extract()
data = transform(users, events, transactions)
load(data)