{{ 描述 }}
项目描述
DGP UI
这个库和应用程序提供了一个围绕Airflow的包装器,提供了一种通过基于配置的web-ui添加/删除DAGs(管道)的方法,该配置定义了管道'种类'以及每种类型所需的参数。
管道仪表板
编辑/新建管道
管道状态
快速入门
- 创建包含以下内容的文件夹
- 一个
configuration.yaml
文件,其中包含您的管道种类详情,例如
{
"kinds": [
{
"name": "kind1",
"display": "Kind 1",
"fields": [
{
"name": "param1",
"display": "Parameter 1"
},
{
"name": "param2",
"display": "Parameter 2"
}
]
},
{
"name": "kind2",
"display": "Kind 2",
"fields": [
{
"name": "param3",
"display": "Parameter 3"
},
{
"name": "param4",
"display": "Parameter 4"
}
]
}
],
"schedules": [
{
"name": "monthly",
"display": "Monthly"
},
{
"name": "daily",
"display": "Daily"
}
]
}
(如果没有指定计划,将使用默认的计划列表)。
- Airflow DAGs Creator - 一个Python文件,它读取管道配置并创建您的Airflow DAGs。示例代码
import datetime
import logging
from airflow import DAG
from airflow.operators.bash_operator import BashOperator
from airflow.utils import dates
from etl_server.models import Models
etl_models = Models()
default_args = {
'owner': 'Airflow',
'depends_on_past': False,
'start_date': dates.days_ago(1),
}
for pipeline in etl_models.all_pipelines():
# pipeline looks like this:
# {
# "id": "<identifier>",
# "name": "<English Name of Pipeline>",
# "kind": "<kind-name>",
# "schedule": "<schedule>",
# "params": {
# "field1": "value1",
# .. other fields, based on kind's fields in configuration
# }
# }
dag_id = pipeline['id']
logging.info('Initializing DAG %s', dag_id)
dag = DAG(dag_id, default_args=default_args, schedule_interval=datetime.timedelta(days=1))
task = BashOperator(task_id=dag_id,
bash_command='echo "%s"; sleep 10 ; echo done' % pipeline['name'],
dag=dag)
globals()[dag_id] = dag
- 使用
docker-compose
设置运行服务器,示例docker-compose.yaml
文件
version: "3"
services:
db:
image: postgres:12
environment:
POSTGRES_PASSWORD: postgres
POSTGRES_USER: postgres
POSTGRES_DB: etls
expose:
- 5432
volumes:
- /var/lib/postgresql/data
server:
build: .
image: akariv/airflow-config-ui
environment:
DATABASE_URL: postgresql://postgres:postgres@db/etls
AIRFLOW__CORE__SQL_ALCHEMY_CONN: postgresql://postgres:postgres@db/etls
expose:
- 5000
ports:
- 5000:5000
depends_on:
- db
volumes:
- /path/to/local/dags/folder/:/app/dags
运行后(docker-compose up -d server
),在浏览器中打开http://localhost:5000
以查看web UI。
另一种选择是创建一个新的Docker镜像,该镜像继承自akariv/airflow-config-ui
,并用configuration.json
文件和您的DAG Python文件替换/app/dags/
的内容。
关闭
etl-server-0.0.13.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | aad63e31592d11fc3e0aa3fe5e0265950f1408dd6198d1b37d0aa334a3e1d40c |
|
MD5 | 9a0813defcd785bd54ba362afd7d72f9 |
|
BLAKE2b-256 | 3ade55b53ab63d8f2ebe55c7416c362dd01c990cf526c2da287b72dee6830d6c |
关闭
etl_server-0.0.13-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 6da904778e69c6932c77717434ebed7dc4241af9377b471252f05a7fffc294c8 |
|
MD5 | 79463de10c02157806c3c3cf5909ec23 |
|
BLAKE2b-256 | 879dff6a0ef6a757b668038437955224ef3247ebe03da19dd39e069cbd854d52 |