Size: a a a

2020 October 03

IS

Ihar Shurupau in Airflow
John Smith
Зачем ты такое советуете?
а что не так?
источник

ДН

Дмитрий Негреев... in Airflow
Анатоли
внтури PythonOperator такую функцию
python вызываю


def get_results():
       request = "SELECT * FROM users"
       pg_hook = PostgresHook(postgre_conn_id="gres", schema="postgres")
       connection = pg_hook.get_conn()
       cursor = connection.cursor()
       cursor.execute(request)
       results = cursor.fetchall()
 file = open("sample1.txt","w")
 file.write(results)
 file.close()
сохрнаит ли в файл?
Мне кажется вам проще заюзать copy
источник

JS

John Smith in Airflow
Ihar Shurupau
а что не так?
Переменная резалтс скорее всего итерируемый объект, и его в стринг не переводят так
источник

JS

John Smith in Airflow
Более там в sql запрсе стоит *
источник

IS

Ihar Shurupau in Airflow
тогда такой вариант
for res in results:
   file.write(str(res) + '\n')
источник

I

Igor in Airflow
Я был только что у стоматолога и впервые попробовал тот самый airflow

Надо сказать, тот что о(б)суждают в этом чатике — намного более приятная штука
источник

IS

Ihar Shurupau in Airflow
John Smith
Переменная резалтс скорее всего итерируемый объект, и его в стринг не переводят так
results - это скорее всего list of tuples
for row in results:
   for col in row:
       file.write(str(col) + ';')
   file.write('\n')
источник

JS

John Smith in Airflow
Нет. Не лист. Но так уже почти правильно.
источник

IS

Ihar Shurupau in Airflow
внутри PostgresHook используется psycopg2 для коннекта к постгресу
в документации psycopg2 написано, что cursor.fetchall() возвращает list of tuples
https://www.psycopg.org/docs/cursor.html#cursor.fetchall
источник

JS

John Smith in Airflow
Коллеги, удаление дага через веб интерфейс должно удалять файл с дагом?
источник

AA

Anton Afonin in Airflow
John Smith
Коллеги, удаление дага через веб интерфейс должно удалять файл с дагом?
нет
источник

JS

John Smith in Airflow
А зачем тогда в интерфейсе кнопка? Просто логику не понимаю
источник

AA

Anton Afonin in Airflow
Чтобы удалить его из метаданных, если он больше не генерируется.
Логика в следующем - у тебя ошибка генерации дага/ты удалил файл/переименовал даг - скорее всего ты захочешь смотреть историю по старому дагу - вот она
источник

JS

John Smith in Airflow
Anton Afonin
Чтобы удалить его из метаданных, если он больше не генерируется.
Логика в следующем - у тебя ошибка генерации дага/ты удалил файл/переименовал даг - скорее всего ты захочешь смотреть историю по старому дагу - вот она
спасибо, правда не понял :)
источник

AA

Anton Afonin in Airflow
источник

ME

Max Efremov in Airflow
John Smith
А зачем тогда в интерфейсе кнопка? Просто логику не понимаю
Можно удалить и он создастся новый из файлика, тоже удобно
источник

AA

Anton Afonin in Airflow
Max Efremov
Можно удалить и он создастся новый из файлика, тоже удобно
хм, а зачем это делать?)
источник

ME

Max Efremov in Airflow
Anton Afonin
хм, а зачем это делать?)
Обычно при разработке, чтобы он сразу новую версию подхватил
источник

ME

Max Efremov in Airflow
Ну или сделать бэкфил заново, просто удаляю и он стартует с нуля
источник

AA

Anton Afonin in Airflow
Вообще для этого там есть кнопка рефреш
источник