我希望DAG中的所有任务都在下一次运行的第一个任务执行之前完成
我有max_active_runs=1,但仍然发生
default_args = {
'depends_on_past': True,
'wait_for_downstream': True,
'max_active_runs': 1,
'start_date': datetime(2018, 03, 04),
'owner': 'tin.nguyen',
'email': ['tin.nguyen@example.com'],
'
为了在气流中设置连接和变量,我使用了DAG,我们这样做是为了快速设置气流,以防我们必须再次快速设置所有内容。虽然我的连接和变量出现了,但任务“失败”。错误是说已经存在一个sql_路径变量
[2018-03-30 19:42:48,784] {{models.py:1595}} ERROR - (psycopg2.IntegrityError) duplicate key value violates unique constraint "variable_key_key"
DETAIL: Ke
我们使用的是Apache1.9.0。我已经写了一个雪花钩插件。我已经将挂钩放在$u HOME/plugins目录中
$AIRFLOW_HOME
+--plugins
+--snowflake_hook2.py
雪花钩2.py
# This is the base class for a plugin
from airflow.plugins_manager import AirflowPlugin
# This is necessary to expose the plugin
目前没有
我的选择是:
使用,然后使用GoogleCloudStorageToBigQueryOperator
这不是我渴望做的事情。这意味着为存储支付双倍的费用。即使从任何一个仍涉及付款的存储中删除文件
将文件从S3下载到本地文件系统,并从文件系统加载到BigQuery-但是没有S3DownloadOperator,这意味着从头开始编写整个过程,不需要任何人参与。这忽略了使用气流的意义
还有别的选择吗?您建议怎么做?如果第一个选项是成本限制,您可以通过PythonOperator使用S3H
当我打开一个管理>连接>一些连接时,它总是显示相同的连接,甚至打开其他连接,我如何解决这个问题
我可以在网络选项卡上看到正确的请求(我认为它是正确的):
{id\u为每个连接更改\u}&url=%2Fadmin%2F连接%2F
但它加载正确的连接,然后加载其他连接(相同的不正确连接)
气流版本:1.10.4我所做的是在anonymous中使用浏览器(Google Chrome),然后我猜这是浏览器的某种缓存。我所做的是在anonymous中使用浏览器(Google Chrome),那么我猜这是浏
Airflow cli支持传递会议的选项
airflow trigger_dag --conf {"file_variable": "/path/to/file"} dag_id
但在UI上,它并没有提供在UI上触发时提供参数的方法
我的理解正确吗
为什么它们不提供用于设置conf的UI选项
当我使用Jenkins时,给/更改然后给作业构建参数是非常常见的。您的假设是正确的。当前无法在通过Web UI触发dag_运行时为其提供配置
解决这个问题的方法是从外部触发dag,这可以通过几种不同的方式
从DAG文件夹中删除多个DAG文件后,需要为每个DAG运行气流删除DAG DAG\u id,或从web UI中逐个删除DAG条目
除了这样做,是否有一个功能或命令可以一次性清除已删除的DAG?您始终可以直接对气流数据库执行查询;我们有一个流程,通过从日志、任务_失败等中删除条目,定期清理数据库
与对数据库进行任何更改一样,确保您有备份您始终可以直接对数据库执行查询;我们有一个流程,通过从日志、任务_失败等中删除条目,定期清理数据库
与任何有关更改数据库的内容一样,确保您有备份
我遇到了一个严重的问题,请保持每秒在/tmp处创建matplotlib文件夹
从日志文件中找不到任何东西,我不知道如何解决这个问题。我试图删除所有,但它仍在继续创建
我正在尝试在下一个配置下创建一个外部传感器
DAG-A在00:00:00运行
DAG-B在04:00:00运行
DAG-B.task检查aDAG-a.task的状态
问题是,当来自DAG-B的外部任务传感器戳破DAG-A.task时,使用04:00:00小时如下:
INFO - Poking for DAG-A.task on 2020-06-02T04:00:00+00:00
相反:
INFO - Poking for DAG-A.task on 2020-06-02T00:00:00+
我正在添加一个插件,它将在运行时创建新的DAG。
对于Web服务器部分,我相信创建一个DAG并调用sync\u to\u db就足够了。但是有什么方法可以使调度程序与这个新的dag同步吗?(用从数据库中收集数据查看dagba)
这也可以是一个选项,但我避免创建文件
谢谢
尝试运行以下breeze build命令来构建airflow docker时,出现以下错误。我克隆gitmaster分支来构建此映像
生成命令:
./breeze build-image --production-image --python 3.7 --install-airflow-version 2.0.0 --additional-extras=jdbc --additional-python-deps="pandas" --additional-runtime-ap
也许有人能告诉我我做错了什么。我在Airflow中有一个运行命令的任务,在日志中我得到以下错误:
[2018-05-30 11:22:43,814] {models.py:1428} INFO - Executing <Task(PythonOperator): computer_unload_and_load> on 2018-05-30 15:22:41.595535
[2018-05-30 11:22:43,814] {base_task_runner.py:115} INFO
在Airflow UI上,如果任务失败,是否可以从UI中查看特定于该任务的日志
单击图中带有红色边框的自定义文件传感器测试OmegaFileSensor的任务矩形->查看日志
在树状视图中也可以进行同样的操作。我发现树视图更容易访问,因为与图形视图相比,您不需要选择正确的日期
也可以从主屏幕访问日志。在链接部分,右侧类似汉堡包的图标(v1.9.0)也会指向日志。单击自定义文件(传感器)测试(OmegaFileSensor)的任务矩形,在图中有红色边框->查看日志
在树状视图中也可以进行同样的操作
气流部署中的所有DAG均未设置成功完成时的结束日期
开始日期已正确设置为任务开始的日期时间,但结束日期仍为空
此临时查询清楚地显示了问题:
select * from dag_run where dag_id = 'my_dag' and state = 'success'
order by start_date desc
我做错什么了吗
谢谢这是气流中的一个缺陷
我已经在本地mac上安装了airflow 2.0,支持PostgresSQL for sql\u alchemy\u conn。我的DAG运行良好,并在sqla数据库中维护元数据,但任何airflow用户命令错误,且未创建角色表/视图
我尝试过设置和重置数据库,但这些表在sql\u alchemy\u conn DB中仍然不可用
psycopg2.ProgrammingError: relation "ab_permission_view_role" does not exist
LINE 2:
标签: Airflow
slackgoogle-cloud-composer
当google cloud composer中的DAG运行在气流中失败时,我试图向tom slack发送通知。使用的气流版本是1.9,因此我不能使用松弛的Webhook。但是当我添加代码时,我得到了一个奇怪的错误:没有名为“slackclient”的模块
我不知道如何在google cloud composer中实现这一点。我尝试通过在composer中添加PyPi变量来安装slack包。但到目前为止,一切都不起作用。
有人能帮忙吗
我的代码:
from slackclient import S
我希望有一个dag,如果在任何任务中出现错误,它应该自动执行一个任务来“重置”表并结束进程。例如:
#Task that needs to be performed if any of the above fails
drop_bq_op = BigQueryOperator(
task_id='drop_bq',
use_legacy_sql=False,
allow_large_results=True,
bql="""DELETE FROM dataset.
我有两个气流工人,每个人都在一台机器里
在机器A中运行一个文件传感器任务,而在机器B中运行一个rsync任务(将文件从A复制到B)以及另一个用于复制文件的文件传感器任务。
有时,rsync任务在未尝试执行的情况下失败,并且不会生成日志文件。
任务的触发规则是all_done和AIFLOW v1.9
传感器任务使用我禁用的xcom_push和xcom_pull,但同样的问题也会发生
-[ RECORD 3 ]---+-----------------------------------------
我希望每天多次运行气流任务。时间是
8:45
13:30
01:00
我试过这个
schedule_interval='45,30,0 8,13,1 * * *'
这是否正确?根据,您的表达式将在1、1:30、1:45触发DAG,然后在8和13小时内触发相同的DAG(因此它是不正确的)。虽然我不是crontab专家,但气流为任意复杂的日程安排提供了其他解决方案
我想安排一个每月的工作,从今天开始每个月都在同一天运行。我希望今天是第一次跑步。例如,今天是11月2日,时间是上午10点。我如何安排每月2号上午11点运行的月度作业,11/2必须是第一次运行
default_args = {
'owner': 'airflow',
'depends_on_past': False,
'start_date': datetime(2020, 11, 1,22,00),
'email': "myemail@abc.com&q
我已经设计了一个定制的子操作符。除了“放大子Dag”按钮没有出现外,一切正常。如果airflow UI不将任务识别为子操作员,则按钮不会显示。我试图覆盖task\u type属性,正如在和旧版本中提到的,但它对我不起作用。您知道是否可以看到带有自定义子运算符的按钮吗
气流版本:1.10.12
以下是我的尝试:
类emrsubdag运算符(subdag运算符):
模板_字段=()
模板_ext=()
@应用默认值
定义初始化(self,*args,**kwargs):
dag=kwargs.get
我正在使用Airflow的python操作符调用python函数。错误发生在try/except块中
def python_callable_new():
print("Inside python callable ...")
import psycopg2
try:
print("attempting database connection from python method.. ")
con
我已经建立了一个DAG,开始日期为2021-04-02,计划间隔为每月第3天晚上11点。执行日期似乎工作正常,但DAG似乎每天2:30连续运行。我似乎找不出是怎么回事
default_args = {
'owner': DAG_OWNER_NAME,
'email': ALERT_EMAIL_ADDRESSES,
'email_on_failure': True,
'email_on_retry': False,
'start_date': datetim
我有以下DAG:
def load_data():
数据=加载_数据()
n_rows=data.shape[0]
返回n_行
def get_n_行(**kwargs):
ti=kwargs[“ti”]
n\u rows=ti.xcom\u pull(任务id=“加载数据”)
如果n_行>10:
返回“多行任务”
返回“不是很多行任务”
与达格(
"测试",,
默认参数={“提供上下文”:True},
description='A test',
计划间隔=时间增量(天数=1),
开始日期=日
标签: Airflow
apache-airflowairflow-scheduler
我已设置气流以分布式模式运行,有10个工作节点。我试图通过触发一个测试dag来访问并行工作负载的性能,该测试dag只包含一个任务,该任务只休眠3秒钟,然后就出来了
我使用命令触发了dag
气流回填试验-s 2015-06-20-e 2015-07-10
调度程序并行启动作业/DAG,我经常看到以下o/p:
[2017-06-27 09:52:29611]{models.py:4024}信息-正在更新考虑1个任务的状态
[2017-06-27 09:52:29647]{models.py:4024
我有以下代码:
import_orders_op = MySqlToGoogleCloudStorageOperator(
task_id='import_orders',
mysql_conn_id='mysql_con',
google_cloud_storage_conn_id='gcp_con',
sql='SELECT * FROM orders where orders_id>{0};'.format(LAST_IMPORTED_ORDER_ID
嗨,我是新来的阿帕奇,我有很多的依赖性
任务A>>任务B>>任务C>>任务D>>任务E
可以从中间任务(比如任务C)运行气流DAG吗
在分支的情况下,是否可以只运行特定的分支
接线员在中间
是否可以从上次失败任务恢复气流DAG
如果不可能,如何管理大型DAG并避免重新运行
冗余任务
如果可能的话,请为我提供如何实施的建议
你不能手动操作。如果设置了BranchPythonOperator,则可以根据BranchPythonOperator中设置的条件跳过任务,直到要开始的任务
与1相同
对。您可
当我创建一个新的dag时,我必须进入UI并单击“计划”切换以关闭计划。我如何在不使用UI的情况下做到这一点?DAG构造函数本身是否有选项
换句话说:如何在DAG文件中将上面的按钮设置为“关闭”?无法在DAG文件中将DAG设置为禁用。您可以通过临时将DAG的schedule\u interval设置为None来模拟该行为。如果要确保默认情况下关闭所有新DAG,还可以将气流配置值DAG\u在创建时暂停设置为True。然后,当新DAG准备好进行计划时,您需要在UI中手动打开它们。无法在DAG文件中设
我试图在JdbcOperator中编写多个sql语句,但不确定如何使用该模板;或许多sql字符串的分隔符。
下面的代码显示TemplateNotFound。我创建了与“DAG”相同级别的“templates”文件夹
您可以通过以下方式使用它:
列表:
sql_task = JdbcOperator(
task_id='sql_cmd',
jdbc_conn_id='hive_connection',
template_searchpath='/etc/dev/airflo
有没有办法在不混合dag环境和sys.path的情况下将自定义python模块导入dag文件?不能用像这样的东西
environ[“PROJECT_HOME”]=“/path/to/some/PROJECT/files”
#导入某些项目文件
sys.path.append(environ[“PROJECT_HOME”])
导入mymodule
因为sys.path是在所有dag之间共享的,这会导致(例如,dag定义之间的值共享)如果想要从不同的地方导入不同dag定义具有相同名称的模块(如果有许
我使用气流触发windows计算机上使用ssh的任务
我能够进行身份验证,然后在windows机器上运行python脚本
但是,当我将任务标记为失败时,日志会显示服用毒药丸,但当我登录窗口机器时,任务仍在运行
我是否需要向SSHOperator提供任何参数,或者是否有人遇到类似错误
我正在使用gcloud
使用Composer,我有了一个安排不同任务管道的气流环境
其中一条管道包括:
为数据流作业准备的任务很少
数据流作业
一些将利用作业结果的任务
DAG配置为每一步等待前一步成功
我有一个问题,dataflow任务在airflow中被标记为失败,因此接下来的步骤不会执行。然而,当我在dataflow中检查作业时,它似乎已经成功了
这是我在气流中的所有(切割)原木:
这是一个已知的问题吗?请看一看:你能在提到作业失败的地方分享完整的日志消息吗?这是我在日志中的全部内容,我
标签: Airflow
airflow-schedulerairflow-operatorapache-airflow-xcom
我有一个用例,我们在s3目录中有一组10个文件(比方说)。我们正在尝试将这些文件重命名为第二个目录中对应的映射重命名文件名模式。我通过传递文件名动态创建了任务id唯一性
for file in rename_list:
rename_tak = RenameOperator(
task_id="file_rename_task_{}".format(str(file.split(":")[0])),
s3_conn
气流:
在使用Airflow Bash操作符时,我不断收到以下警告:
警告-自上次心跳(0.57秒)起的时间
我正在尝试设置和理解自定义策略。不确定我做错了什么,但是,遵循这一点是行不通的
气流版本:1.10.10
预期结果:如果我尝试使用default\u owner运行DAG,它应该抛出异常
实际结果:无此类例外
/root/afflow/config/afflow\u local\u settings.py
类策略错误(异常):
通过
def群集_策略(任务):
打印(“任务\实例\变异\挂钩”)
提出政策错误
def任务\实例\变异\挂钩(ti):
打印(“任务\实例\变异\挂钩”)
提出政策错
标签: Airflow
airflow-schedulerairflow-worker
我正在通过Airflow管理一条数据管道,它管理从ETL过程(通过Stitch/Airflow)到数据仓库(BigQuery)和BI实现(Tableau)的一切。我希望对某些任务进行优先级排序,因为其他DAG由它们触发(例如,将数据推送到第三方),而某些内部任务(例如,更新报告)可以等待,因此不太重要
我尝试通过在任务中设置优先级权重来实现这一点,以使用下游的默认权重规则将重要任务推上队列,但在执行时,优先级较低的任务会在优先级较高的任务之前运行,尽管所有上游任务都已完成
我曾尝试将所有这些任务
您好,我正在尝试发送一个文件,其中包含gcp存储中存储的airflow(composer)csv,但我无法附加它。
我得到错误“没有这样的文件或目录:'gs://bucket test/test.csv'”
如果我没有附加文件,邮件将正确发送
另一个问题是:我可以创建csv而不将其保存到存储吗?并直接发送
output_file = 'gs://bucket-test/test.csv'
email_summary = email_operator.EmailOperator(
tas
标签: Airflow
apache-airflowairflow-scheduler
是否有一种方法可以在整个DAGROUN中使用dependens\u pass,而不仅仅是应用于任务
我有一个每日DAG,周五的DAG跑步在第四个任务中出错,但是周六和周日的DAG跑步仍然按计划进行。使用dependens\u on\u pass=True将暂停第4个任务上的DAG运行,但是前3个任务仍将运行
我可以看到在DagRun DB表中有一个状态列,其中包含运行的失败。我想要的是一种将DagRun配置为在前一个DagRun失败时不启动的方法,在找到之前失败的任务之前不启动并运行
有人知道这
如果任务1成功,我想执行任务2;如果任务1失败,我想运行任务3;如果需要,我想分配另一个流
基本上,我希望在没有ssh操作符的情况下在airflow中运行条件任务
from airflow import DAG
from airflow.operators import PythonOperator,BranchPythonOperator
from airflow.operators import BashOperator
from datetime import datetime, time
假设我想写一个DAG来显示特定红移模式中的所有表。
SQL查询是Show Tables
如何为其创建DAG?
我想应该是这样的:
dag = airflow.DAG(
'process_dimensions',
schedule_interval="@daily",
dagrun_timeout=timedelta(minutes=60),
default_args=args,
max_active_runs=1)
process_product_dim
我很高兴,我终于从Airflow 1.9版升级到了1.10版。使用我得到的气流1.10工作。现在,我检查了他们的UDPATE到1.10的版本,以了解在AWSEC2实例上运行时如何解决这些问题。我发现他们用调用这个新类的函数get_hostname来替换所有获得服务器IP地址的函数。现在,在这个小函数中,您可以看到这样的注释:
使用配置中的可调用项或使用
socket.getfqdn作为回退
那么在注释之后你会看到代码
callable_path = conf.get('core', 'hostn
我目前面临的问题是,我在MongoDB集合中有文档,每个文档都需要由需要在非循环依赖关系图中运行的任务进行处理和更新。如果上游任务无法处理文档,则任何从属任务都不能处理该文档,因为该文档尚未使用先决条件信息进行更新
如果我使用气流,这就给我留下了两种解决方案:
为每个文档触发一个DAG,并使用--conf传入文档ID。问题在于,这不是气流的预期使用方式;我将永远不会运行一个预定的进程,根据文档在集合中的显示方式,我将每天运行1440次
在每个期间运行DAG,以处理在该期间的集合中创建的所有文档。
我想将气流与presto结合起来。在bashshell上,commmand-*/opt/presto/bin/presto-server 10.0.0.15:8190-catalog-hive-schema-cvm_-db-execute select*from-cvm_-db.cvm_-weekly_-rech limit 10*可以正常工作,但在python脚本中,它抛出并出错-无效sythax并突出显示该命令。
请问做这件事最好的方法是什么。
下面是气流脚本
imp
我使用以下配置执行了DAG:
default_args = {
'owner': 'airflow',
'depends_on_past': False,
'start_date': airflow.utils.dates.days_ago(0, 0, minute=1),
'email': ['francisco.salazar.12@sansano.usm.cl'],
'email_on_failure': False,
'email_on_r
是否有气流操作员从URL下载CSV文件并将文件上载到S3?我可以将本地文件上载到S3,但想知道是否有操作员可以将文件上载到S3,而无需将文件下载到我的本地计算机?我认为最简单的解决方案是对最简单的任务使用on_execute_回调(在本例中下载文件)让S3操作员完成上传任务
示例(地面军事系统):
没有,先生。没有这样的接线员。你必须编写一些代码来下载文件。对于上传,您可以利用S3Hook的方法。我不知道有什么方法可以在不下载的情况下将远程文件移动到S3(当然,除非您可以直接在远程机器上触发aw
我们有100个dag,其前缀为“dag_EDW_HC_*”。下面是暂停dag的命令
Command: airflow pause dag_id
我们有没有办法在一次行动中暂停所有100个dag的“dag_EDW_HC*.”。。(以python或任何其他方式编程)我能想到的最简单(可能也是最快)的方法是更新数据库:
更新dag
设置为\u暂停=错误
其中dag_id喜欢“dag_EDW_HC%”;
我也参考了一些链接,比如,但要暂停多个DAG,我没有任何参考。非常感谢您的回复。。所以iit的意思
今天,我尝试运行除8080以外的气流端口的web控制台,如808090,但每次我在aiffort.cfg中提到不同的端口时,都会重新初始化气流并运行aiffort webserver-D
但是每次web控制台在端口8080上运行时,有人能帮助或遇到此问题吗?保存文件后,您需要更改airflow.cfg上的端口,您应运行airflow initdb并再次启动airflow webserverairflow webserver-D
如果您使用的是docker图像,则会有所不同。你需要更改你的.ym
我已经在centos上安装了Apache AirFlow并启动了Web服务器。我可以看到服务已启动并在端口上运行,但当我尝试从本地访问时,url无法访问。我已禁用服务器上的防火墙,并且我可以从本地访问服务器上安装的其他服务(气流除外)。很抱歉发布此问题,这是由于防火墙阻止了端口。谢谢你的帮助
我想做的是使用dag_id和run_id作为S3中的路径的一部分,我希望获得数据,但我开始理解这些模板化的值仅应用于任务执行上下文
我是否可以向下面这样的操作员提供它们的值,以控制文件的去向
my_task = RedshiftToS3Transfer(
task_id='my_task',
schema='public',
table='my_table',
s3_bucket='bucket',
s3_key='foo/bar/{{ dag_id }}/{{ run_id
标签: Airflow
gunicornkubernetes-helmminikube
我正在尝试使用minikube和helm chart stable/Airflow在本地运行气流(在部署前进行测试)。但由于gunicorn问题,airflow Web服务器无法启动
舵:v2.14.3
Kubernetes:v1.15.2
Minikube:v1.3.1
舵图图像:普克尔/多克气流
以下是步骤:
minikube启动
helm安装--名称空间“airflow”--名称“airflow”stable/airflow
日志包括:
Thu Sep 12 07:29:54 UTC 20
上一页 1 2 3 4 5 6 7 8 9 ...
下一页 最后一页 共 40 页