web-dev-qa-db-ja.com

Airflowを使用してmysqlレコードを取得および処理する方法

する必要がある

1. run a select query on MYSQL DB and fetch the records.              
2. Records are processed by python script.

どうすればよいかわかりません。 xcomはここに行く方法ですか?また、MYSQLOperatorはクエリを実行するだけで、レコードをフェッチしません。使用できる組み込みの転送オペレーターはありますか?ここでMYSQLフックをどのように使用できますか?

フックを使用してデータを取得し、変換を適用して、(スコアリングされた)行を他の場所に戻すPythonOperatorを使用することができます。

誰かが同じことを進める方法を説明できますか?.

参照- http://markmail.org/message/x6nfeo6zhjfeakfe

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
)

これは続行する正しい方法ですか?また、次のMySqlOperatorのレコードを保存するためにxcomsをどのように使用しますか? '

t = MySqlOperator(
conn_id='mysql_default',
task_id='basic_mysql',
sql="SELECT count(*) from table1 where id > 10",
dag=dag)
14
gpk27

もちろん、フックまたは演算子を作成して、get_records()メソッドを呼び出します。 https://airflow.readthedocs.io/en/stable/_modules/airflow/hooks/dbapi_hook.html

1
Breathe