airbyte-connection-setup について
airbyte-connection-setup は、Airbyte のデータ接続を設定・管理するスキルです。ソースと宛先の設定、同期モード、API による作成、トラブルシューティングを扱います。
主な機能
- 01ソースと宛先の接続設定
- 02全件更新または増分同期モードの選択
- 03API を使ったソース作成
- 04ネットワーク、認証、スキーマの問題への対処
- 05接続のセキュリティと性能に関する実践
活用シーン
- 01ソースと宛先間のデータフロー設定
- 02接続の同期方式の選択
- 03接続失敗やデータ変更のトラブル対応
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ dengineproblem/ agents-monorepo --skill airbyte-connection-setupインストール後、Claude Code で/airbyte-connection-setupを入力して読み込まれたか確認します。
詳細
Airbyte 接続設定エキスパート
Airbyte の接続設定と管理に関するエキスパートです。
基本原則
接続アーキテクチャ
- ソースと宛先のペア:変換を伴うデータフロー
- 増分同期:フルリフレッシュよりも優先されます
- スキーマの進化:スキーマの変更に対応します
- 障害からの復旧:エラーを確実に処理します
同期モード
- Full Refresh:データを完全に上書きします
- Incremental Append:新しいレコードを追加します
- Incremental Deduped:プライマリキーに基づいて重複を排除します
Docker Compose の設定
version: '3.8'
services:
db:
image: airbyte/db:${VERSION}
environment:
- POSTGRES_USER=${DATABASE_USER}
- POSTGRES_PASSWORD=${DATABASE_PASSWORD}
volumes:
- db:/var/lib/postgresql/data
server:
image: airbyte/server:${VERSION}
environment:
- DATABASE_PASSWORD=${DATABASE_PASSWORD}
- DATABASE_URL=${DATABASE_URL}
- WORKSPACE_ROOT=/tmp/workspace
ports:
- "8001:8001"
volumes:
- workspace:/tmp/workspace
- data:/data
depends_on:
- db
webapp:
image: airbyte/webapp:${VERSION}
ports:
- "8000:80"
depends_on:
- server
ソースの設定
# PostgreSQL источник
source_config = {
"host": "localhost",
"port": 5432,
"database": "production_db",
"username": "airbyte_user",
"password": "secure_password",
"ssl_mode": {"mode": "require"},
"replication_method": {
"method": "CDC",
"plugin": "pgoutput",
"initial_waiting_seconds": 300
}
}
宛先の設定
# Snowflake назначение
destination_config = {
"host": "account.snowflakecomputing.com",
"role": "AIRBYTE_ROLE",
"warehouse": "AIRBYTE_WAREHOUSE",
"database": "AIRBYTE_DATABASE",
"schema": "RAW_DATA",
"username": "airbyte_user",
"password": "secure_password",
"loading_method": {"method": "Internal Staging"}
}
同期の設定
{
"syncCatalog": {
"streams": [
{
"stream": {
"name": "users",
"supportedSyncModes": ["full_refresh", "incremental"]
},
"config": {
"syncMode": "incremental",
"cursorField": ["updated_at"],
"destinationSyncMode": "append_dedup",
"primaryKey": [["id"]]
}
}
]
},
"schedule": {
"units": 1,
"timeUnit": "hours"
}
}
API 統合
import requests
# Создание источника
source_payload = {
"sourceDefinitionId": "decd338e-5647-4c0b-adf4-da0e75f5a750",
"connectionConfiguration": source_config,
"workspaceId": workspace_id,
"name": "Production PostgreSQL"
}
response = requests.post(
f"{airbyte_url}/api/v1/sources/create",
json=source_payload,
headers={"Content-Type": "application/json"}
)
# Создание подключения
connection_payload = {
"sourceId": source_id,
"destinationId": destination_id,
"syncCatalog": sync_catalog,
"schedule": {"units": 1, "timeUnit": "hours"}
}
requests.post(
f"{airbyte_url}/api/v1/connections/create",
json=connection_payload
)
トラブルシューティング
よくある問題
- ネットワーク接続:ファイアウォールとアクセスを確認します
- 認証:権限と有効期限を確認します
- リソース制限:メモリと CPU を監視します
- スキーマの変更:設定を更新します
最適化
- バッチサイズを調整します
- 接続プーリングを使用します
- カーソルフィールドにインデックスを作成します
- パフォーマンスを監視します
セキュリティ
- シークレットを vault に保存します
- すべての接続で SSL/TLS を使用します
- ネットワークをセグメント化します
- 定期的に更新します
コメント
Markdown 対応