Есть ли способ запустить SnowflakeOperator, SnowflakeHook локально в скрипте, отличном от Airflow?
У меня есть несколько групп DAG, которые используют SnowflakeOperator и SnowflakeHook. Оба они подключаются к Snowflake, используя ввод, который я сохранил в
Admin > Connections
.
SnowflakeHook(
snowflake_conn_id="snowflake_connection",
database='SOME_DB',
schema='PUBLIC'
)
Хотя эта схема работает в среде Airflow, я хочу запускать код как обычный скрипт на моем компьютере определения местоположения. Но он не может получить доступ к этому
snowflake_connection
, который я сохранил в Airflow. Есть ли способ обойти это?
Есть ли способ предоставить строку подключения или имя пользователя / пароль напрямую в
SnowflakeHook
а также
SnowflakeOperator
сделать соединение с базой данных?
1 ответ
Вы можете издеваться над соединением.
conn = Connection(
conn_type="gcpssh",
login="cat",
host="conn-host",
)
conn_uri = conn.get_uri()
with mock.patch.dict("os.environ", AIRFLOW_CONN_MY_CONN=conn_uri):
assert "cat" == Connection.get("my_conn").login
Подробнее см.: Имитация переменных и соединений .