在 Apache Airflow 中实现 Postgres Sql

ada*_*mSC 9 postgresql installation sqlalchemy airflow ubuntu-18.04

我在 Ubuntu 18.04.3 服务器上实现了 Apache-Airflow。当我设置它时,我使用了 sql lite 通用数据库,它使用了顺序执行器。我这样做只是为了玩转并习惯系统。现在我正在尝试使用本地执行程序,并且需要将我的数据库从 sqlite 转换为推荐的 postgres sql。

有人知道如何进行这种转变吗?我发现的所有教程都需要从一开始就使用 postgres sql 设置 Airflow。我知道有很多活动部件,我害怕弄乱我目前正在运行的东西。任何知道如何做到这一点或可以指出我在哪里看的人都非常感激。谢谢!

Mar*_*ado 9

只是为了用一些命令完成@lalligood 的回答:

airflow.cfg文件中查找sql_alchemy_conn并更新它以指向您的 PostgreSQL 服务:

sql_alchemy_conn = postgresql+psycopg2://user:pass@hostadress:port/database
Run Code Online (Sandbox Code Playgroud)

例如:

sql_alchemy_conn = postgresql+psycopg2://airflow:airflow@localhost:5432/airflow
Run Code Online (Sandbox Code Playgroud)

如上一行所示,您需要同时调用 user 和 database airflow,因此您需要创建它。为此,请打开您的 psql 命令行并键入以下命令以创建一个名为气流的用户和数据库,并将对数据库的所有权限授予airflow用户airflow

CREATE USER airflow;
CREATE DATABASE airflow;
GRANT ALL PRIVILEGES ON DATABASE airflow TO airflow;
Run Code Online (Sandbox Code Playgroud)

现在您已准备好使用 postgres 初始化气流应用程序:

airflow initdb

如果一切正常,再次访问 psql 命令行,使用\c airflow命令进入气流数据库并键入\dt命令以列出该数据库的所有表。您应该会看到气流表的列表,目前为 23。

  • 在较新的版本中,它是“airflow db init” (2认同)

小智 0

我通过执行以下 4 个步骤使其正常工作:

  1. 假设您从头开始,请使用 SQLite 数据库初始化您的气流环境。这里的关键要点是它生成文件airflow.cfg
  2. 更新行sql_alchemy_connairflow.cfg指向您的 PostgreSQL 服务器。
  3. 在 PostgreSQL 中创建airflow角色+数据库。(撤销公共对气流数据库的所有权限并确保气流角色拥有气流数据库!)
  4. (重新)初始化气流 ( airflow initdb) 并确认您在airflow数据库中看到 ~19 个表。