2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

DataformとGitLabの連携運用入門 〜手動リリースからチーム開発への第一歩〜

Posted at

この記事について

Google Cloud Dataform を GitLab と連携してチーム開発できるようにするための入門記事です。

  • Dataform を Git 管理したい
  • CI/CD まではまだ導入できていない
  • 手動リリースでも安全に運用したい
  • SQL ベース開発のレビュー方法を整理したい

そんな現場に向けて、実務で使える最低限のセットアップと運用方法をまとめました。

目的

Dataform を Git 管理下に置くことで、

  • 開発履歴が残る
  • レビューができる
  • 本番反映のフローが安全になる
  • 「誰が何を変えたか」追跡しやすい

といったメリットが得られます。

この記事では、CI/CD をまだ導入していない現場でもすぐ始められる Git 連携方法を詳しく紹介します。

事前準備(GitLab / GCP / Dataform)

▶ GitLab の設定

  1. README つきの GitLab リポジトリを作成(権限:Maintainer/Owner)
  2. SSH 秘密鍵を作成
    https://docs.gitlab.com/user/ssh/#generate-an-ssh-key-pair
  3. GitLab アカウントに公開鍵を登録
    https://docs.gitlab.com/user/ssh/#add-an-ssh-key-to-your-gitlab-account

▶ Google Cloudの設定(Secret Manager)

Dataform が GitLab に SSH 接続するための プライベート鍵 を保存します。

  1. Secret Manager を開く
  2. SSH の private key を登録
    https://docs.cloud.google.com/dataform/docs/connect-repository?hl=ja

▶ Dataform で GitLab を接続

  1. https://cloud.google.com/dataform にアクセス
  2. プロジェクト作成
  3. Settings → Git と接続
  4. 接続方法 → SSH を選択
  5. GitLab リポジトリ URL を入力
  6. デフォルトブランチ:main
  7. 「リンク」をクリックして接続完了

✔ Dataform からブランチ作成・MR作成がそのまま GitLab に反映されるようになります。

main / develop ブランチ運用パターン

Dataform はテーブル単位の変更が多いため、
GitFlow の簡易版がもっとも相性が良い と感じています。

ブランチ構成

ブランチ名 用途 対応環境
main 本番反映 Production
develop 検証・通常開発 Staging / Dev
feature/* 個別開発(後で develop にマージ) Dev
release リリース調整用(必要に応じて) Production
hotfix 本番障害発生時のみ使用 Production

✔ 「main にマージ=本番反映」という一本化ルールが、運用トラブルを減らします。

(任意)ブランチごとのスキーマ切り替え

Dataform では ブランチ名に応じて prod/stg データセットを切り替えることも可能 です。
(任意設定・必要な場合のみ)

// includes/environment.js
config {
  schema: dataform.projectConfig.schemaSuffix === "main"
    ? "prod_dataset"
    : "stg_dataset"
}

※ 本番と検証環境を明確に切り分けたい時に便利。

差分レビューのポイント

Dataform の SQLX は差分が Git 上にそのまま出るため、
レビューでは以下を押さえておけば安全です👇

✔ チェックするポイント

  • definitions/ のテーブル定義・SQLロジック変更
  • includes/ の共通処理に影響が出ていないか
  • dataform.json のスケジュール・設定値の変更
  • 参照テーブル (ref()) の変更による影響

🔍 実務ではこの 4 点を見ておけば、デプロイ後の事故はほぼ防げます。

実務Tips:安全なリリース管理

項目 おすすめ対応
リリース前チェック dataform run --dry-run で依存確認
main 更新時 Slack 通知 or 実行ログで記録
タグ管理 v2025.11v2025.12 など月単位
コミット規約 feat: / fix: / refactor: などを統一

小さな修正でも MR を作り、履歴を残しておくことが長期的に効いてきます。

さいごに

Dataform の Git 連携は、
分析基盤を “コードとして管理する” 第一歩 です。
まだ CI/CD まで導入できていない環境でも、

  • 履歴が残る
  • レビューできる
  • 本番反映のフローが明確になる
    これだけでチームの透明性は一気に上がります。
    自分も CI/CD の導入は模索中ですが、
    まずは今回紹介した Git 運用だけでも十分メリットを感じています。

今後のステップ

  • GitLab CI で Dataform を自動実行
  • Cloud Build と組み合わせた本番デプロイ
  • DAG の差分検知・自動チェック
  • 多環境(dev/stg/prod)でのスケジュール管理
    少しずつ仕組みを整えながら、より安全でスケーラブルな運用にしていければと思います。
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?