J'ai besoin de
1. run a select query on MYSQL DB and fetch the records.
2. Records are processed by python script.
Je ne suis pas sûr de la façon dont je dois procéder. Est-ce que xcom est le chemin à parcourir ici? En outre, MYSQLOperator exécute uniquement la requête, ne récupère pas les enregistrements. Y a-t-il un opérateur de transfert intégré que je peux utiliser? Comment puis-je utiliser un crochet MYSQL ici?
vous souhaiterez peut-être utiliser un PythonOperator qui utilise le hook pour récupérer les données, appliquer la transformation et renvoyer les lignes (désormais notées) à un autre endroit.
Quelqu'un peut-il expliquer comment procéder à ce sujet?.
Reportez-vous - http://markmail.org/message/x6nfeo6zhjfeakfaste
def do_work():
mysqlserver = MySqlHook(connection_id)
sql = "SELECT * from table where col > 100 "
row_count = mysqlserver.get_records(sql, schema='testdb')
print row_count[0][0]
callMYSQLHook = PythonOperator(
task_id='fetch_from_testdb',
python_callable=mysqlHook,
dag=dag
)
Est-ce la bonne façon de procéder? De plus, comment utilisons-nous les xcom pour stocker les enregistrements pour le MySqlOperator suivant? '
t = MySqlOperator(
conn_id='mysql_default',
task_id='basic_mysql',
sql="SELECT count(*) from table1 where id > 10",
dag=dag)
Bien sûr, créez simplement un hook ou un opérateur et appelez la méthode get_records (): https://airflow.readthedocs.io/en/stable/_modules/airflow/hooks/dbapi_hook.html