问题陈述:
气流部署当时只能使用一个DB。这是因为,在部署时,气流将在public
架构中创建初始表,如图
因此,我们无法创建同一DB中的另一个气流部署。
解决方案:
创建一个具有唯一用户凭据的新架构,授予用户凭证上的所有特权以访问新创建的架构。然后将新用户设置为新模式的搜索路径更改。最后,在气流yaml部署文件中使用DB用户凭据添加模式名称。
实现这一目标的步骤:
创建一个新的模式和用户凭据
CREATE SCHEMA airflow_ciapi;
CREATE USER nishok_ciapi WITH PASSWORD '***************';
授予特权查询
GRANT ALL PRIVILEGES ON DATABASE postgres to nishok_ciapi;
GRANT SELECT ON ALL SEQUENCES IN SCHEMA airflow_ciapi TO nishok_ciapi;
GRANT EXECUTE ON ALL FUNCTIONS IN SCHEMA airflow_ciapi TO nishok_ciapi;
GRANT ALL ON ALL TABLES IN SCHEMA airflow_ciapi TO nishok_ciapi;
GRANT ALL ON ALL SEQUENCES IN SCHEMA airflow_ciapi TO nishok_ciapi;
GRANT ALL ON ALL FUNCTIONS IN SCHEMA airflow_ciapi TO s_ciapi;
nishok
GRANT CREATE ON SCHEMA airflow_ciapi TO nishok_ciapi;
更改搜索路径查询
ALTER USER nishok_ciapi SET search_path = airflow_ciapi;
同一db
中的两个架构采样YAML文件以进行气流部署
airflow:
service:
type: NodePort
image: ********.dkr.ecr.us-east-1.amazonaws.com/***********
tag: GIT_SHA
nodeselector: airflow
config:
dags_folder: /root/airflow/dags
s3_url: s3://airflow
base_url: airflow.xyz.com
schema: airflow_ciapi