我正在试用BigQueryOperator
的气流。我想我以后会使用谷歌作曲家,但我希望它先在本地运行。我有气流并运行BashOperator
工作正常,我也可以运行airflow test <dag> <task>
其中task
是我想要运行的大查询任务,但是当我从UI触发DAG时bigquery任务永远不会排队。相反,它们具有REMOVED
状态,没有任何反应。
我的DAG定义如下:
from airflow import DAG
from airflow.operators.bash_operator import BashOperator
from datetime import datetime, timedelta
from airflow.contrib.operators.bigquery_operator import BigQueryOperator
yesterday = datetime.combine(
datetime.today() - timedelta(1),
datetime.min.time())
default_args = {
'owner': 'airflow',
'depends_on_past': False,
'email': ['airflow@example.com'],
'start_date': yesterday,
'email_on_failure': False,
'email_on_retry': False,
'retries': 1,
'retry_delay': timedelta(minutes=5),
}
with DAG(
'tutorial', default_args=default_args) as dag:
operators
t1 = BashOperator(
task_id='print_date',
bash_command='date')
template_sql = '''
SELECT 'TOMAS' name, '{{ params.my_value }}' value, "{{ params.my_value2 }}" tables
'''
sampleBigQuery1 = BigQueryOperator(
task_id='bq_simple_sql1',
bql=template_sql,
use_legacy_sql=False,
destination_dataset_table='temp_tomas.airflow_1',
allow_large_results=True,
params={'my_value': (datetime.now()).strftime("%D %T"),
'my_value2': "yolo"}, # getTables()},
create_disposition='CREATE_IF_NEEDED',
write_disposition='WRITE_TRUNCATE'
)
t1 >> sampleBigQuery1
那么如何在运行airflow test ...
时调试一个案例,而不是在调度程序或UI触发时调整案例?这件事在我这里有什么不对吗?
本地我正在使用sqllite的标准气流安装,但我认为这不会产生任何影响。我在一个python环境中运行所有内容,所以它应该被包含在内。
答案 0 :(得分:2)
如果这是您的第一个Airflow设置,您可能需要先检查这些内容:Airflow 1.9.0 is queuing but not launching tasks
此外,在这里我特别推荐最后一步:
这可能会让您更好地了解未安排任务的原因。