Text⭐さぁ、手を動かすのだ⭐
Chapter 3: ローカル開発環境のセットアップ(Mac編)
この章では、Mac環境でdbtを使用したデータパイプライン開発のためのローカル開発環境をセットアップします。 Gitからコンテナ化された開発環境まで、一連のツールチェーンを構築していきます。
主な学習内容
- Gitのインストール(コマンドラインディベロッパーツール)
- Rancher Desktopのインストールと設定
- Visual Studio Codeのインストール
- Dev Containers拡張機能の追加
- GitHubリポジトリのクローン
- Devcontainerの設定ファイル作成
- dbt開発用のDevcontainer環境構築
Dev Containersとは?
1. Gitのセットアップ(コマンドラインディベロッパーツール)
gitの設定をします。インストールされていない場合は、X-Codeをインストールするなどしてください。
git --version
でバージョンが表示されれば、Gitは正常にインストールされています。
2. Rancher Desktopのインストール
Rancher DesktopはDockerの代替となるコンテナランタイムです。 Docker Desktopと比較して、商用利用でも無料で使用できるのが特徴です。
インストール手順
2. 「Download for macOS」をクリック
3. ダウンロードした.dmgファイルを開く
4. Rancher Desktop.appをApplicationsフォルダにドラッグ&ドロップ
5. アプリケーションを起動し、初期設定を完了
6. Container Engineは「dockerd (moby)」を選択することを推奨
初回起動時は、コンテナランタイムの初期化に数分かかる場合があります。
Kubernetesは今回は使用しないため、無効にしておいても問題ありません。
3. Visual Studio Codeのインストール
VSCodeは無料で使用できる高機能なコードエディタです。 豊富な拡張機能により、dbt開発に最適な環境を構築できます。
インストール手順
2. 「Download for macOS」をクリック
3. ダウンロードした.zipファイルを解凍
4. Visual Studio Code.appをApplicationsフォルダに移動
5. アプリケーションを起動
6. 初回起動時にコマンドラインから使用するための設定を行う
コマンドラインからの起動設定により、ターミナルから直接プロジェクトフォルダを開けるようになります。
4. Dev Containers拡張機能の追加
Dev Containers拡張機能により、VSCode内でコンテナベースの開発環境を利用できるようになります。 この拡張機能により、dbtプロジェクトを一貫した環境で開発できます。
拡張機能インストール手順
2. 左側のサイドバーから拡張機能アイコン(四角いアイコン)をクリック
3. 検索ボックスに「Dev Containers」と入力
4. Microsoft公式の「Dev Containers」拡張機能を選択
5. 「インストール」ボタンをクリック
6. インストール完了後、VSCodeを再起動
この拡張機能により、プロジェクトフォルダ内の.devcontainer設定を自動で認識し、
コンテナ内での開発環境を提供してくれます。
5. GitHubリポジトリのクローン
dbtプロジェクトを管理するためのGitHubリポジトリを作成し、ローカル環境にクローンします。 ここでは新規リポジトリの作成から既存リポジトリのクローンまでの手順を説明します。
新規リポジトリ作成の場合
2. 右上の「+」ボタン → 「New repository」を選択
3. Repository name: 「dbt-tutorial」(任意の名前)
4. 「Add a README file」にチェック
5. 「Create repository」をクリック
既存リポジトリを使用する場合
プライベートリポジトリの場合は、SSH鍵の設定やPersonal Access Tokenが必要になる場合があります。
クローンしたディレクトリが、次のステップでのdevcontainer設定の作業ディレクトリになります。
6. Devcontainer設定ファイルの作成
dbt開発用のDevcontainer環境を構築するため、設定ファイルを作成します。 これにより、チーム全体で一貫したPython・dbt環境を共有できます。
Devcontainer設定手順
2. devcontainer.jsonファイルを作成
3. Dockerfileまたは既存イメージを設定
4. VSCodeでプロジェクトを開き、Command Palette (Cmd+Shift+P) から「Dev Containers: Open Folder in Container ...」を実行すると環境に入れる
まず、.devcontainer/requirements.txt
を作成します:
注意: dbt-fusionはCLIとして別途Dockerfile内でインストールします これにより、dbt(従来版)とdbtf(Fusion版)の両方が使用可能になります
次に、.devcontainer/Dockerfile
を作成します:
次に、.devcontainer/docker-compose.yml
を作成します:
最後に、.devcontainer/devcontainer.json
を作成します:
各ファイルの役割と学習効果
• dbt-core 1.10.9とdbt-snowflake 1.10.0、sqlfluff 3.4.2、flake8 7.1.1を管理
• ビルド時にコンテナイメージに組み込まれ、一貫した環境を提供
Dockerfile: コンテナイメージの構築手順を定義。dbt-fusionも追加インストール。
• 従来のdbtとFusion版の両方をインストールし、比較学習が可能
docker-compose.yml: サービスの設定とオーケストレーション。本格的な開発環境構築を学べます。
• ボリュームマウント、ポートフォワーディング、環境変数など
devcontainer.json: VSCode固有の設定のみ。IDEとの連携に特化。
• dbt開発に必要な拡張機能、エディタ設定、リモートユーザーなど
なぜこの構成が優れているか
2. 一貫性: ビルド時に依存関係が固定され、環境の一貫性を保証
3. 学習効果: Dockerの基本概念から実践的な使い方まで体系的に学習
4. 拡張性: データベースや他のサービスを簡単に追加可能
5. 責任分離: 各ファイルが明確な役割を持ち、保守しやすい
6. チーム開発: 一般的な構成のため、チームメンバーが理解しやすい
dbt-coreとdbt-fusionの使い分け
dbt-core(従来版):
dbt
コマンドで実行• 安定性重視、豊富なドキュメントと実績
• dbt-core 1.10.9 + dbt-snowflake 1.10.0の組み合わせ
dbt-fusion(次世代版):
dbtf
コマンドで実行• パースが最大30倍、コンパイルが2倍高速
• リアルタイム検証、ローカル実行が可能
• Rustで再構築された高性能エンジン
学習時は両方を試して、パフォーマンスの違いを体感できます。
詳細: dbt Fusion CLI インストールガイド
設定ファイル作成後、VSCodeでプロジェクトを開き直すとDevcontainer環境が利用可能になります。
7. Devcontainer環境の起動
設定ファイルを作成したら、実際にDevcontainer環境を起動してdbt開発環境を確認します。
Devcontainer起動手順
2. 右下に表示される通知「Reopen in Container」をクリック
3. または Command Palette (Cmd+Shift+P) → 「Dev Containers: Reopen in Container」を実行
4. コンテナのビルドと起動を待つ(初回は数分かかります)
5. ターミナルでdbtがインストールされていることを確認
環境構築完了!
次章では、この環境を使用してSnowflakeに接続し、最初のdbtプロジェクトを作成していきます。
Devcontainer環境により、チーム全体で一貫した開発環境を共有でき、
「私の環境では動く」問題を解決できるようになりました。
8. Snowflakeキーペア認証の完了設定
前章で作成したdbtユーザーに対して、Devcontainer環境からRSAキーペアを生成し、
セキュアなキーペア認証を設定します。
手順1: RSAキーペアの生成
重要な注意事項
バックアップ: 秘密鍵は安全な場所にバックアップを取ってください
権限設定: chmod 600により所有者のみが読み取り可能に設定
Gitの除外: .gitignoreに追加して誤ってコミットしないようにする
手順2: 公開鍵をSnowflakeに登録
手順3: 公開鍵フィンガープリントの検証(任意で)
手順4: dbt profiles.ymlの設定
ここで、devcontainer環境をリビルドします。 コマンドパレットを開いて、「Dev Containers: Rebuild Container」を実行します。
キーペア認証設定完了
✓ RSAキーペアの生成(秘密鍵・公開鍵)
✓ 公開鍵のSnowflakeへの登録
✓ 公開鍵フィンガープリントの検証(任意)
✓ dbt profiles.ymlの設定
✓ dbt debug コマンドでの接続確認
これで、セキュアなキーペア認証を使用してdbtからSnowflakeに接続できる準備が整いました。
これでSnowflake接続の準備が完了しました。セキュアなキーペア認証により、
安全で効率的なdbt開発環境が整いました。
Sponsored by
スポンサーを募集中。紹介コンテンツもご用意しますので、ご興味あればお問い合わせください。