繁体   English   中英

在 Apache Airflow 中实现 Postgres Sql

[英]Implementing Postgres Sql in Apache Airflow

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

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

只是用一些命令完成@lalligood 答案:

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

sql_alchemy_conn = postgresql+psycopg2://user:pass@hostadress:port/database

例如:

sql_alchemy_conn = postgresql+psycopg2://airflow:airflow@localhost:5432/airflow

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

CREATE USER airflow;
CREATE DATABASE airflow;
GRANT ALL PRIVILEGES ON DATABASE airflow TO airflow;

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

airflow initdb

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

除了添加到airflow.cfg文件之外的另一种选择

是将 ENV 变量AIRFLOW__CORE__SQL_ALCHEMY_CONN设置为您想要的 postgresql 服务器。

示例: export AIRFLOW__CORE__SQL_ALCHEMY_CONN_SECRET=sql_alchemy_conn

或者您可以在您的 Dockerfile 设置中进行设置。

请参阅此处的文档

通过执行以下 4 个步骤,我能够使其工作:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM