簡體   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