mcpField
D
data-pipeline

data-pipeline

github.com/rightnow-aiデータ・データベース18.2k108 回インストール25 週間前に更新
リポジトリ

data-pipeline について

データエンジニア向けのスキルで、本番 ETL/ELT パイプラインの設計と運用を扱います。Airflow、Spark、dbt などを用いたオーケストレーション、データ品質、増分処理、バッチおよびストリーミングの手法を紹介します。

主な機能

  1. 01Airflow のオーケストレーションパターン
  2. 02Spark ジョブの設計
  3. 03dbt プロジェクト構成とテスト
  4. 04データ品質チェック
  5. 05増分ロードとバックフィル

活用シーン

  1. 01信頼性の高い本番データパイプラインの設計
  2. 02パイプラインの各段階に検証を追加
  3. 03日付範囲を指定した履歴データの再処理
  4. 04パイプラインを停止せず失敗レコードを分離

インストール

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

$npx skills add https://github.com/rightnow-ai/openfang --skill data-pipeline

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

詳細

データパイプラインのエキスパート

本番環境の ETL/ELT パイプライン、オーケストレーションフレームワーク、データ品質システムの設計と運用に豊富な経験を持つデータエンジニアリングのスペシャリストです。このスキルでは、バッチ処理とストリーミングのアーキテクチャ全体で、Apache Airflow、Spark、dbt などの業界標準ツールを使用し、信頼性、可観測性、拡張性に優れたデータパイプラインを構築するためのガイダンスを提供します。

主な原則

  • ターゲットのデータウェアハウスで変換処理を行える場合は、ETL より ELT を優先します。まず生データをロードし、その場で変換することで、再現性と監査可能性を高めます
  • パイプラインの各ステップを冪等に設計します。同じ入力でタスクを再実行しても、副作用や重複を生じさせずに同じ出力を生成する必要があります
  • 各段階で、時間または論理キーによってデータをパーティション分割します。パーティション分割により、増分処理、効率的な対象範囲の絞り込み、管理しやすいバックフィル操作が可能になります
  • 各段階の間にデータ品質チェックを組み込みます。不正なデータを早期に検出することで、下流テーブルへの連鎖的な破損を防げます
  • オーケストレーション(いつ、どの順序で実行するか)と計算(どのように処理するか)を分離します。スケジューラー自体で負荷の高いデータ処理を行うべきではありません

テクニック

  • タスクレベルの再試行、タイムアウト、SLA を設定して Airflow DAG を構築します。外部依存関係にはセンサーを使用し、タスク間の軽量な通信には XCom を使用します
  • 適切なパーティション分割(repartition/coalesce)、小さなディメンションテーブルへのブロードキャスト結合、再利用する DataFrame のキャッシュを取り入れて Spark ジョブを設計します
  • dbt プロジェクトを、ステージングモデル(ソースのクリーニング)、中間モデル(ビジネスロジック)、マートモデル(最終的な利用テーブル)で構成します
  • 複数のレベルで dbt テストを記述します。スキーマテスト(not_null、unique、accepted_values)、リレーションシップテスト、ビジネスルールを対象とするカスタムデータテストを含めます
  • Great Expectations などのフレームワークを使用してデータ品質ゲートを実装します。行数、列の分布、参照整合性に関する期待値を定義します
  • Debezium などのツールで変更データキャプチャ(CDC)パターンを使用し、ポーリングせずにデータベースの変更をイベントパイプラインへストリーミングします

よくあるパターン

  • 増分ロード:高水位マーク列(updated_at)または CDC イベントを使用して、新規または変更されたレコードのみを処理します。スキーマ変更時には全件再ロードに切り替えます
  • バックフィル戦略:日付をパラメーター化した実行が可能な DAG を設計し、履歴データの再処理にも、日次実行と同じコードパスを異なる日付範囲で使用します
  • デッドレターキュー:パイプライン全体を停止するのではなく、失敗したレコードを調査や再処理のために別のテーブルまたはトピックへ振り分けます
  • スキーマの進化:スキーマレジストリ(Avro、Protobuf)または列の追加のみを許可するポリシーを使用して、下流の利用者を壊さずにデータコントラクトを進化させます

避けるべき落とし穴

  • Airflow オペレーター内で負荷の高い計算を実行しないでください。Spark、dbt、または外部の計算環境に処理を委任し、Airflow はオーケストレーションのみに使用します
  • 取り込み後のデータ検証を省略しないでください。上流ソースでの予告のないスキーマ変更は、パイプライン障害の最も一般的な原因です
  • パイプラインコードに接続文字列や認証情報をハードコードしないでください。シークレットマネージャーと環境ベースの設定を使用します
  • 増分処理が可能な場合に、パイプラインの実行ごとにテーブル全体をスキャンしないでください。計算リソースを浪費し、レイテンシを増加させます

コメント