MeltanoのTransform
Meltanoでは、ELTのT(Transform)の部分はdbtで補います。この記事では、MeltanoでTransformを行う方法について紹介します。
dbtのインストール
次のコマンドでインストール可能なdbtを確認します。
bash
$ meltano discover transformers
dbt-bigquery
dbt-postgres
dbt-redshift
dbt-snowflake
dbt
dbt
をインストールすることも可能ですが、dbt-snowflake
など特定のdbtプラグインをインストールすることが推奨されています。今回はdbt-bigquery
を利用し、Transformを実行していきます。次のコマンドでdbt-bigquery
をインストールします。
bash
$ meltano add transformer dbt-bigquery
dbt-bigquery
のコンフィグ一覧を確認します。
bash
$ meltano config dbt-bigquery list
または、次の公式ドキュメントで確認することができます。
次のコマンドで、dbt-bigquery
のコンフィグであるproject
、dataset
、auth_method
、keyfile
の設定を行います。(meltano.yml
ファイルを直接編集することも可能です。)
bash
$ meltano config dbt-bigquery set project "YOUR_PROJECT_ID"
$ meltano config dbt-bigquery set dataset "YOUR_DATASET"
$ meltano config dbt-bigquery set auth_method "service-account"
$ meltano config dbt-bigquery set keyfile "PATH/TO/YOUR/KEYFILE"
meltano.yml
ファイルは次のようになります。
meltano.yml
.
.
.
environments:
- name: dev
config:
plugins:
transformers:
- name: dbt-bigquery
config:
project: YOUR_PROJECT_ID
dataset: YOUR_DATASET
auth_method: service-account
keyfile: PATH/TO/YOUR/KEYFILE
dbtの処理を記述
/transform
ディレクトリには次のファイルが存在します。
bash
$ ls /transform
dbt_project.yml
profile
models
/transform/models/
ディレクトリにSQLを記述し、/transform/dbt_project.yml
ファイルを任意で編集します。
dbtを実行
次の2種類の方法でdbtを実行することが可能です。
- ELTパイプラインとして
run
コマンドを実行meltano run tap-github target-bigquery dbt-bigquery:run
など
- スタンドアローンとして
invoke
コマンドを実行meltano invoke dbt-bigquery run
また、meltano.yml
ファイルを次のように編集することにより、カスタムコマンドを作成することができます。
meltano.yml
.
.
.
plugins:
transformers:
- name: dbt-bigquery
commands:
my_models:
args: run --select +YOUR_MODEL_NAME
description: Run dbt, selecting model `YOUR_MODEL_NAME` and all upstream models.
bash
$ meltano run tap-github target-bigquery dbt-bigquery:my_models
$ meltano invoke dbt-bigquery:my_models
dbtプロジェクトを外部リポジトリから参照
/transform/
ディレクトリに直接dbtのコードを記述する他に、/transform/
ディレクトリにpackage.yml
ファイルを作成し、次のような記述をすることでmeltanoプロジェクトとdbtプロジェクトを切り離すことができます。
transform/package.yml
packages:
- git: https://github.com/your_repo/your-dbt-project.git
revision: 1.0.0
参考
AlloyDB
Amazon Cognito
Amazon EC2
Amazon ECS
Amazon QuickSight
Amazon RDS
Amazon Redshift
Amazon S3
API
Autonomous Vehicle
AWS
AWS API Gateway
AWS Chalice
AWS Control Tower
AWS IAM
AWS Lambda
AWS VPC
BERT
BigQuery
Causal Inference
ChatGPT
Chrome Extension
CircleCI
Classification
Cloud Functions
Cloud IAM
Cloud Run
Cloud Storage
Clustering
CSS
Data Engineering
Data Modeling
Database
dbt
Decision Tree
Deep Learning
Descriptive Statistics
Differential Equation
Dimensionality Reduction
Discrete Choice Model
Docker
Economics
FastAPI
Firebase
GIS
git
GitHub
GitHub Actions
Google
Google Cloud
Google Search Console
Hugging Face
Hypothesis Testing
Inferential Statistics
Interval Estimation
JavaScript
Jinja
Kedro
Kubernetes
LightGBM
Linux
LLM
Mac
Machine Learning
Macroeconomics
Marketing
Mathematical Model
Meltano
MLflow
MLOps
MySQL
NextJS
NLP
Nodejs
NoSQL
ONNX
OpenAI
Optimization Problem
Optuna
Pandas
Pinecone
PostGIS
PostgreSQL
Probability Distribution
Product
Project
Psychology
Python
PyTorch
QGIS
R
ReactJS
Regression
Rideshare
SEO
Singer
sklearn
Slack
Snowflake
Software Development
SQL
Statistical Model
Statistics
Streamlit
Tabular
Tailwind CSS
TensorFlow
Terraform
Transportation
TypeScript
Urban Planning
Vector Database
Vertex AI
VSCode
XGBoost