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)