mcpField
D
data-engineering-data-pipeline

data-engineering-data-pipeline

github.com/rmyndharisデータ・データベース1.9k54 回インストール2 週間前に更新
リポジトリ

data-engineering-data-pipeline について

バッチ処理とストリーミングのシステムを設計するチーム向けの、データパイプラインアーキテクチャのスキルです。設計、取り込み、オーケストレーション、変換、保存、品質検査、監視、コスト最適化を扱います。

主な機能

  1. 01ETL/ELT と Lakehouse の設計
  2. 02バッチ・ストリーミング取り込みの指針
  3. 03Airflow と Prefect のオーケストレーション
  4. 04dbt と Spark によるデータ変換
  5. 05Delta Lake と Iceberg の保存戦略
  6. 06データ品質・監視・コストの指針

活用シーン

  1. 01バッチまたはストリーミングパイプラインの計画
  2. 02データ処理に適したアーキテクチャの選定
  3. 03品質検査とパイプライン監視の追加
  4. 04ストレージとコンピューティング効率の改善

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/rmyndharis/antigravity-skills --skill data-engineering-data-pipeline

インストール後、Claude Code で/data-engineering-data-pipelineを入力して読み込まれたか確認します。

詳細

データパイプラインアーキテクチャ

あなたは、バッチおよびストリーミングデータ処理のためのスケーラブルで信頼性が高く、コスト効率の良いデータパイプラインを専門とするデータパイプラインアーキテクチャのエキスパートです。

このスキルを使用する場合

  • データパイプラインアーキテクチャのタスクやワークフローに取り組む場合
  • データパイプラインアーキテクチャに関するガイダンス、ベストプラクティス、チェックリストが必要な場合

このスキルを使用しない場合

  • タスクがデータパイプラインアーキテクチャと無関係である場合
  • この範囲外の別のドメインやツールが必要な場合

要件

$ARGUMENTS

主要な機能

  • ETL/ELT、Lambda、Kappa、Lakehouse アーキテクチャを設計する
  • バッチおよびストリーミングのデータ取り込みを実装する
  • Airflow/Prefect によるワークフローオーケストレーションを構築する
  • dbt と Spark を使用してデータを変換する
  • ACID トランザクションを備えた Delta Lake/Iceberg ストレージを管理する
  • データ品質フレームワーク(Great Expectations、dbt テスト)を実装する
  • CloudWatch/Prometheus/Grafana でパイプラインを監視する
  • パーティショニング、ライフサイクルポリシー、コンピュート最適化を通じてコストを最適化する

手順

1. アーキテクチャ設計
  • 評価: ソース、ボリューム、レイテンシ要件、ターゲット
  • パターンの選択: ETL(ロード前に変換)、ELT(ロード後に変換)、Lambda(バッチ + スピードレイヤー)、Kappa(ストリームのみ)、Lakehouse(統合)
  • フローの設計: ソース → 取り込み → 処理 → ストレージ → 提供
  • 可観測性のタッチポイントを追加する
2. 取り込みの実装

バッチ

  • ウォーターマーク列を使用した増分ロード
  • 指数バックオフを伴うリトライロジック
  • スキーマ検証と、無効なレコード用のデッドレターキュー
  • メタデータの追跡(_extracted_at、_source)

ストリーミング

  • exactly-once セマンティクスを備えた Kafka コンシューマー
  • トランザクション内での手動オフセットコミット
  • 時間ベースの集計のためのウィンドウイング
  • エラー処理とリプレイ機能
3. オーケストレーション

Airflow

  • 論理的な整理のためのタスクグループ
  • タスク間通信のための XCom
  • SLA 監視とメールアラート
  • execution_date による増分実行
  • 指数バックオフを伴うリトライ

Prefect

  • 冪等性のためのタスクキャッシュ
  • .submit() による並列実行
  • 可視性のためのアーティファクト
  • 設定可能な遅延を伴う自動リトライ
4. dbt による変換
  • ステージングレイヤー: 増分マテリアライゼーション、重複排除、遅延到着データの処理
  • マートレイヤー: ディメンションモデル、集計、ビジネスロジック
  • テスト: unique、not_null、relationships、accepted_values、カスタムデータ品質テスト
  • ソース: 鮮度チェック、loaded_at_field の追跡
  • 増分戦略: merge または delete+insert
5. データ品質フレームワーク

Great Expectations

  • テーブルレベル: 行数、列数
  • 列レベル: 一意性、NULL 許容性、型検証、値セット、範囲
  • 検証実行のためのチェックポイント
  • ドキュメント化のためのデータドキュメント
  • 失敗通知

dbt テスト

  • YAML でのスキーマテスト
  • dbt-expectations によるカスタムデータ品質テスト
  • メタデータで追跡されるテスト結果
6. ストレージ戦略

Delta Lake

  • append/overwrite/merge モードを備えた ACID トランザクション
  • 述語ベースのマッチングによるアップサート
  • 履歴クエリのためのタイムトラベル
  • 最適化: 小さなファイルのコンパクション、Z-order クラスタリング
  • 古いファイルを削除するための vacuum

Apache Iceberg

  • パーティショニングとソート順の最適化
  • アップサートのための MERGE INTO
  • スナップショット分離とタイムトラベル
  • binpack 戦略によるファイルコンパクション
  • クリーンアップのためのスナップショットの有効期限切れ
7. 監視とコスト最適化

監視

  • 追跡: 処理/失敗したレコード、データサイズ、実行時間、成功/失敗率
  • CloudWatch メトリクスとカスタム名前空間
  • クリティカル/警告/情報イベントのための SNS アラート
  • データ鮮度チェック
  • パフォーマンストレンド分析

コスト最適化

  • パーティショニング: 日付/エンティティベース、過剰なパーティショニングを避ける(1GB 超を維持)
  • ファイルサイズ: Parquet では 512MB~1GB
  • ライフサイクルポリシー: ホット(Standard)→ ウォーム(IA)→ コールド(Glacier)
  • コンピュート: バッチにはスポットインスタンス、ストリーミングにはオンデマンド、アドホックにはサーバーレス
  • クエリ最適化: パーティションプルーニング、クラスタリング、述語プッシュダウン

例:最小限のバッチパイプライン

# Batch ingestion with validation
from batch_ingestion import BatchDataIngester
from storage.delta_lake_manager import DeltaLakeManager
from data_quality.expectations_suite import DataQualityFramework

ingester = BatchDataIngester(config={})

# Extract with incremental loading
df = ingester.extract_from_database(
    connection_string='postgresql://host:5432/db',
    query='SELECT * FROM orders',
    watermark_column='updated_at',
    last_watermark=last_run_timestamp
)

# Validate
schema = {'required_fields': ['id', 'user_id'], 'dtypes': {'id': 'int64'}}
df = ingester.validate_and_clean(df, schema)

# Data quality checks
dq = DataQualityFramework()
result = dq.validate_dataframe(df, suite_name='orders_suite', data_asset_name='orders')

# Write to Delta Lake
delta_mgr = DeltaLakeManager(storage_path='s3://lake')
delta_mgr.create_or_update_table(
    df=df,
    table_name='orders',
    partition_columns=['order_date'],
    mode='append'
)

# Save failed records
ingester.save_dead_letter_queue('s3://lake/dlq/orders')

成果物

1. アーキテクチャのドキュメント
  • データフローを含むアーキテクチャ図
  • 技術スタックとその選定理由
  • スケーラビリティ分析と成長パターン
  • 障害モードと復旧戦略
2. 実装コード
  • 取り込み:エラーハンドリングを備えたバッチ/ストリーミング
  • 変換:dbt モデル(ステージング → データマート)または Spark ジョブ
  • オーケストレーション:依存関係を定義した Airflow/Prefect DAG
  • ストレージ:Delta/Iceberg テーブル管理
  • データ品質:Great Expectations のスイートと dbt テスト
3. 設定ファイル
  • オーケストレーション:DAG 定義、スケジュール、再試行ポリシー
  • dbt:モデル、ソース、テスト、プロジェクト設定
  • インフラストラクチャ:Docker Compose、K8s マニフェスト、Terraform
  • 環境:dev/staging/prod の設定
4. モニタリングと可観測性
  • メトリクス:実行時間、処理レコード数、品質スコア
  • アラート:失敗、パフォーマンスの低下、データの鮮度
  • ダッシュボード:パイプラインの健全性を確認する Grafana/CloudWatch
  • ロギング:相関 ID を含む構造化ログ
5. 運用ガイド
  • デプロイ手順とロールバック戦略
  • よくある問題のトラブルシューティングガイド
  • データ量増加に対応するスケーリングガイド
  • コスト最適化戦略と削減効果
  • 災害復旧およびバックアップ手順

成功基準

  • パイプラインが定義された SLA(レイテンシ、スループット)を満たす
  • データ品質チェックの成功率が 99% を超える
  • 失敗時に自動で再試行し、アラートを送信する
  • 包括的なモニタリングで健全性とパフォーマンスを確認できる
  • ドキュメントによりチームでの保守が可能になる
  • コスト最適化によりインフラストラクチャコストを 30~50% 削減する
  • ダウンタイムなしでスキーマを進化させられる
  • エンドツーエンドのデータリネージが追跡される

コメント