Можем ли мы создавать уникальное имя файла каждый раз, когда запускается даг воздушного потока, и получать доступ к этому файлу из всех задач? Я попытался создать глобальную переменную (output_filename) и добавить к ней метку времени. Но когда я когда-либо получаю доступ к этому имени файла в задачах, каждая задача генерирует другое имя файла, поскольку она вычисляет отметку времени в каждой задаче. Ниже приведен пример кода:
table_name = 'Test_ABC'
start_date = datetime.now()
cur_tmpstp = start_date.strftime('%Y_%m_%d')
output_filename = table_name + "_" + cur_tmpstp + ".csv"
S3_landing_path = "s3://abc/"
def clean_up():
if os.path.exists(output_filename):
os.remove(output_filename)
task_1 = BashOperator(
task_id='task_1',
bash_command="aws s3 cp %s %s/ " %(output_filename, S3_landing_path, ),
dag=dag)
task_2_cleanup = PythonOperator(
task_id='task_2_cleanup',
python_callable=clean_up,
dag=dag)
У нас есть другие задачи, в которых мы должны получить доступ к output_filename. Как мы можем получить доступ к глобальной переменной output_filename во всех задачах?