postgresql - 如何在 Airflow 中将 Postgres 设置为后端数据库?
问题描述
我正在尝试建立 postgres 和气流之间的连接,这是我的 docker-compose
version: '3'
services:
postgres:
image: postgres
environment:
- POSTGRES_USER=airflow
- POSTGRES_PASSWORD=airflow
- POSTGRES_DB=airflow
webserver:
image: apache/airflow:1.10.13-python3.6
command: bash -c "airflow initdb; airflow webserver; airflow scheduler;"
environment:
- AIRFLOW_DATABASE_USERNAME=airflow
- AIRFLOW_DATABASE_PASSWORD=airflow
- AIRFLOW_DATABASE_NAME=airflow
volumes:
- ../airflow/dag:/opt/airflow/dags
ports:
- 8080:8080
设置 postgres 配置设置后,它仍然将 SQLite 作为后端数据库。日志如下
ravi@ravi:~/Documents/airflow$ docker-compose up airflow_webserver
Starting airflow_airflow_webserver_1 ...
Starting airflow_airflow_webserver_1 ... done
Attaching to airflow_airflow_webserver_1
airflow_webserver_1 | DB: sqlite:////opt/airflow/airflow.db
airflow_webserver_1 | [2020-12-06 12:53:22,911] {db.py:378} INFO - Creating tables
airflow_webserver_1 | INFO [alembic.runtime.migration] Context impl SQLiteImpl.
airflow_webserver_1 | INFO [alembic.runtime.migration] Will assume non-transactional DDL.
airflow_webserver_1 | Done.
解决方案
添加以下两个环境变量后,气流现在将后端数据库设为Postgres
:
AIRFLOW__CORE__SQL_ALCHEMY_CONN=postgresql+psycopg2://airflow:airflow@postgres/airflow
AIRFLOW__CORE__EXECUTOR=LocalExecutor
谢谢@elad
推荐阅读
- android-studio - ADB.exe 已过时且存在严重的性能问题
- mysql - 在 Ubuntu 上使用 phpmyadmin 设置绝对 url
- javascript - Winston 将文件名记录到传输中
- windows - Docker 卷 + mongodb (-v) - 如何让它们在 Windows 10 中工作?
- typescript - 无法创建 BehaviourSubject
- cordova - Ionic_CordovaError:在 Android Studio 或您的系统上找不到安装的 Gradle 版本以安装 gradle 包装器
- python - 在python中排名
- vue.js - 在 v-for 中使用带有插槽的组件
- java - 有意打开任何文件
- sql-server - SQL Server 用户