0
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?

More than 1 year has passed since last update.

DockerでdbtCore+bigqueryの環境構築備忘録

0
Posted at

dbt cloud側は勉強したため、ワークフロー関係の学習時の備忘録
参考記事は↓記事はSnowflakeだが、Bigqueryで実装。
設定に関して詳細に書いておらず断念。DockerでdbtCoreの環境とBigqueryとの接続までは完了したが、Dockerの理解が。。。
明日違うサイトを参考にやってみる予定です。

事前準備

  • VSCodeエディタのインストール済
  • Docker Desktopのインストール

① python:3.9.10-buster と python:3.9-slim-bookworm の違い
buster = Debian 10(2019年リリース、2024年にサポート終了 → もう公式リポジトリが閉鎖)
bookworm = Debian 12(2023年リリース、現行の安定版)
→ busterは古いので apt-get update が 404 になります。bookworm は現行なので普通に動きます。

Dockerfile

# 古い buster はやめて、現行の Debian 12(bookworm)の slim 版へ
FROM python:3.9-slim-bookworm

ENV DEBIAN_FRONTEND=noninteractive \
    LANG=ja_JP.UTF-8 \
    LANGUAGE=ja_JP:ja \
    LC_ALL=ja_JP.UTF-8 \
    TERM=xterm

# 必要パッケージを一括で入れてからキャッシュ削除(イメージを太らせない)
RUN apt-get update \
 && apt-get install -y --no-install-recommends \
      locales \
      vim-tiny \
      less \
 # 日本語ロケールを生成(slimはlocale未生成なのでここが重要)
 && sed -i 's/# ja_JP.UTF-8 UTF-8/ja_JP.UTF-8 UTF-8/' /etc/locale.gen \
 && locale-gen \
 && update-locale LANG=ja_JP.UTF-8 \
 # aptキャッシュを捨ててスリム化
 && rm -rf /var/lib/apt/lists/*

# pip は最新版・setuptoolsも併せてアップグレード
RUN pip install --no-cache-dir --upgrade pip setuptools
&& pip install --no-cache-dir dbt-core dbt-bigquery

dbtCoreインストール

作成したコンテナ上に、dbtCore(bigquery用)をインストールします。
以下のコマンドを実行し、コンテナ環境にdbtCoreをインストールします。
コンテナ起動時にインストールを行う設定に変更。Dockerfile追記済
毎回インストールがめんどくさい。

コンテナ作成後、Dockerを使う意味についてもっと理解するべき、今回はお試しに使った記事を参考にしたが、ローカルでも作成したい。もっと知りたい。

dbt --version

DWH接続

dbtプロジェクトを初期化します。

dbt init dbt_core

接続ができないので~/.dbt/ディレクトリに profiles.ymlを準備。

profiles.ymlをローカルファイルから読む形に変更。

docker-compose.yml
    volumes:
      - ~/.dbt:/root/.dbt:ro

最後に設定が正しいかを確認するため以下コマンドを実行します。

dbt debug

※実行は~/dbt_core/に移動して行ってください

モデル実行

初期後、models/example配下にモデルが2つ用意されているのでコマンド実行します。

dbt run --select example
0
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
0
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?