Meltanoの環境
Meltanoでは、開発環境や本番環境に合わせて環境変数を管理したり切り替えたりすることができます。複数環境の定義はmeltano.yml
に記述され、次のようになります。
meltano.yml
environments:
- name: prod
config:
plugins:
extractors:
- name: tap-github
config:
organizations: [Meltano]
select: ['*.*']
loaders:
- name: target-snowflake
config:
dbname: prod
warehouse: prod_wh
batch_size_rows: 100000
env:
SOME_PROD_ONLY_SETTING: abc
- name: dev
config:
plugins:
extractors:
- name: tap-github
config:
organizations: [MeltanoLabs]
select: ['repositories.*']
loaders:
- name: target-snowflake
config:
dbname: dev
warehouse: dev_wh
batch_size_rows: 1000
環境の継承
同じベースのプラグインを異なる設定で複数利用したい場合は、既存のプラグインを継承した新しいプラグインを追加することができます。新しいプラグインはベースプラグインの設定を継承し、必要に応じて上書きすることができます。
meltano.yml
.
.
.
plugins:
extractors:
- name: tap-google-analytics
variant: meltano
config:
key_file_location: client_secrets.json
start_date: '2020-10-01T00:00:00Z'
- name: tap-ga--view-foo
inherit_from: tap-google-analytics
config:
# key_file_location and start_date are inherited
view_id: 123456
- name: tap-ga--view-bar
inherit_from: tap-google-analytics
config:
# key_file_location is inherited
start_date: '2020-12-01T00:00:00Z' # start_date is overwritten
view_id: 789012
環境変数のマッピング
Meltanoでは、次のように環境変数をマッピングすることができます。
meltano.yml
environments:
- name: dev
env:
MY_ENV_VAR: $MELTANO_PROJECT_ROOT/path/to/a/file.json
環境の指定
次の方法で環境を指定することができます。
- CLIコマンドで
--environment
オプションを追加する
bash
$ meltano --environment=dev run tap-github target-csv
MELTANO_ENVIRONMENT
を設定する
bash
$ export MELTANO_ENVIRONMENT=dev
$ meltano run tap-github target-csv
また、meltano.yml
ファイルにdefault_environment: staging
などを記述することでデフォルトの環境を指定することができます。
参考
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