2017-11-23 4 views
0

私はAirflowワークフローでMsSqlOperatorを使用しようとしていますが、接続文字列を設定する方法を理解できません。Airflow MsSqlOperatorでmssql_conn_idを使用するには?

私はので、私はmssql_conn_idを定義する必要があるとエラー

airflow.exceptions.AirflowException: The conn_id `sa:[email protected]` isn't defined 

を取得し、接続文字列自体

t2 = MsSqlOperator(
    task_id='sql-op', 
    mssql_conn_id='sa:[email protected]', 
    sql='use results; insert into airflow value("airflow","out")', 
    dag=dag) 

するmssql_conn_idを設定しようとしました。どこか。何か案は?

私はこのようなSQLAlchemyのを使用してMS SQLデータベースに接続することができるよ:

params = urllib.quote_plus("DRIVER={ODBC Driver 13 for SQL Server};SERVER=172.17.0.2;UID=SA;PWD=password") 
engine = create_engine("mssql+pyodbc:///?odbc_connect=%s" % params) 

conn = engine.connect() 

ので、私は、サーバーが稼働している知っています。

答えて

1

mssql_conn_idパラメータは、実際の接続URIではなく、気流データベースのconnectionエントリを参照します。 airflow connections --add --conn-id my_mssql --conn_uri mssql+pyodbc://sa:[email protected]

  • 環境変数を使用します:次にAIRFLOW_CONN_MY_MSSQL=mssql+pyodbc://sa:[email protected]
  • を設定 - :

    • UI:>接続
    • コマンドライン管理の下であなたは、接続を追加するためのいくつかのオプションが持つ

      オペレータのconn_idを参照してください:

      t2 = MsSqlOperator(
          task_id='sql-op', 
          mssql_conn_id='my_mssql', 
          sql='use results; insert into airflow value("airflow","out")', 
          dag=dag) 
      
    +0

    その明確な説明をありがとう - 私の気流の仕事は今MS SQLと話している! –

    関連する問題