हाल ही में मैंने एयरफ्लो का इतना परीक्षण किया है कि execution_date
के साथ airflow trigger_dag <my-dag>
चलाते समय एक समस्या है।एयरफ्लो ट्रिगर_डाग execution_date अगले दिन है, क्यों?
मैं सीख लिया है कि execution_date
क्या हम here से पहली बार में लगता नहीं है:
वायु प्रवाह ईटीएल जरूरतों के लिए एक समाधान के रूप में विकसित किया गया था। ईटीएल दुनिया में, आप आम तौर पर डेटा सारांशित करते हैं। इसलिए, यदि मैं 2016-02-19 के लिए डेटा सारांशित करना चाहता हूं, तो मैं 2016-02-20 मध्यरात्रि जीएमटी में ऐसा करूंगा, जो 2016-02-19 के लिए सभी डेटा उपलब्ध होने के ठीक बाद होगा।
start_date = datetime.combine(datetime.today(),
datetime.min.time())
args = {
"owner": "xigua",
"start_date": start_date
}
dag = DAG(dag_id="hadoopprojects", default_args=args,
schedule_interval=timedelta(days=1))
wait_5m = ops.TimeDeltaSensor(task_id="wait_5m",
dag=dag,
delta=timedelta(minutes=5))
कोड से ऊपर, पहला काम एक TimeDeltaSensor है कि वास्तविक काम करने से पहले एक और 5 मिनट के इंतजार कर रहा है है मेरी दैनिक कार्यप्रवाह के शुरू भाग है, इसलिए इसका मतलब यह है मेरी डेग 2016-09-09T00:05:00
, 2016-09-10T00:05:00
पर ट्रिगर किया जाएगा ... आदि
वेब यूआई में, मैं scheduled__2016-09-20T00:00:00
जैसे कुछ देख सकता हूं, और कार्य 2016-09-21T00:00:00
पर चलाया जाता है, जो ETL
मॉडल के अनुसार उचित लगता है।
हालांकि किसी दिन अज्ञात कारण के लिए मेरा डैग ट्रिगर नहीं किया गया है, इसलिए यदि मैं इसे 2016-09-20T00:10:00
पर ट्रिगर करता हूं, तो मैं इसे मैन्युअल रूप से ट्रिगर करता हूं, फिर टाइमडेलसेन्सर 2016-09-21T00:15:00
तक चलने से पहले प्रतीक्षा करेगा।
यह मैं क्या चाहते हैं, मैं इसे 2016-09-20T00:15:00
नहीं अगले दिन पर चलाना चाहते हैं, मैं --conf '{"execution_date": "2016-09-20"}'
के माध्यम से execution_date
गुजर की कोशिश की है, लेकिन यह काम नहीं करता नहीं है।
मुझे इस मुद्दे से कैसे निपटना चाहिए?
$ airflow version
[2016-09-21 17:26:33,654] {__init__.py:36} INFO - Using executor LocalExecutor
____________ _____________
____ |__()_________ __/__ /________ __
____ /| |_ /__ ___/_ /_ __ /_ __ \_ | /|//
___ ___ |/_/ _ __/ _// /_/ /_ |/ |//
_/_/ |_/_/ /_/ /_/ /_/ \____/____/|__/
v1.7.1.3
मैं इसे 'start_date' मुद्दा है नहीं लगता कि पढ़ सकते हैं, मैं एक दिन की आधी रात को मेरी' start_date' गोल दिए गए हैं, मेरी समस्या यह है कि 'execute_date 'अगले दिन सेट किया गया है जब डैग बाहरी रूप से ट्रिगर किया जाता है, जिसके लिए मुझे लगता है कि यह उपरोक्त जैसा है जैसा मैंने ऊपर कहा था। –
मैं ईटीएल शैली को शेड्यूल करने के लिए समझता हूं, लेकिन मैं अपनी समस्या को कैसे हल कर सकता हूं: अज्ञात कारण के लिए, मेरा डैग ट्रिगर नहीं हुआ है, मैं इसे 'trigution_date' पर' ट्रिगर_डाग 'उपसमंद के अलावा कैसे ट्रिगर कर सकता हूं, मैं बैकफिल के बारे में सोच सकता हूं ', तो अगर यह मामला है, तो हमें 'trigger_dag' क्यों चाहिए, यह बकवास करता है? –
क्या आपके पास शेड्यूलर चल रहा है? 'एयरफ्लो शेड्यूलर' – mistercrunch