# プロジェクト概要
## 目的、背景
既存のBigQueryデータ基盤では、Scheduled Queryを時間差で逐次実行する運用を行っており、テーブル間の依存関係が不明瞭で、途中でクエリが失敗すると後続ジョブを手動で再実行する必要がありました。これにより運用負荷が高く、エラー検知や原因追跡にも時間を要していました。これらの課題を解消するため、dbtを導入してデータパイプラインの構造化・自動化を進めました。
## 規模感、チーム構成、担当した役割
プロジェクトは基本的に私が主体となって進め、一部の実装に2名のメンバーが協力しました。要件整理から設計、環境構築、実装、運用設計までを一貫して担当しました。
## 使用技術や開発環境等
BigQuery, dbt, Cloud Build, Cloud Scheduler, Terraform などを使用し、データ基盤とCI/CDパイプラインをGCP上で構築しました。
# 取り組んだ課題
## どんな課題だったのか
従来のScheduled Query運用では、テーブル依存関係の可視化ができず、クエリエラー発生時の影響範囲把握やリカバリに手間がかかっていました。また、ジョブ管理が属人的で、変更や拡張が困難な状態でした。
## 技術的なアプローチや工夫した点
dbtを導入し、データレイク層・ステージング層・データマート層に分けたプロジェクト構造を設計しました。用途ごとにタグ分けしたワークフローを実装し、Slackへのアラート通知でエラー検知を自動化。TerraformによるIaC、Cloud Buildを用いたCI/CDの仕組みを整備しました。リプレイス時には既存クエリとdbtクエリの整合性を二重管理で検証しながら段階的に移行しました。
# 取り組みの成果
dbt docsによる依存関係の可視化により、データカタログとしての活用が可能になりました。Slackアラートによってエラー検知から対応までのリードタイムを短縮し、補完作業の効率化を実現。データソース追加の容易化やパイプラインの拡張性も向上しました。結果として、属人的だった運用を自動化・構造化し、信頼性と保守性の高いデータ基盤を構築することができました。