¿Existe alguna manera de ejecutar SnowflakeOperator, SnowflakeHook localmente en un script que no sea de Airflow?
Tengo algunos DAGs que utilizan SnowflakeOperator y SnowflakeHook. Ambos hacen conexiones a Snowflake utilizando la entrada snowflake_connection
, que he guardado en Admin > Connections
en Airflow.
SnowflakeHook(
snowflake_conn_id="snowflake_connection",
database='SOME_DB',
schema='PUBLIC'
)
Si bien este arreglo funciona dentro del entorno de Airflow, quiero ejecutar el código como un script regular en mi máquina local. Pero no puede acceder a esa snowflake_connection
, que tengo guardada en Airflow. ¿Existe alguna solución alternativa para esto?
¿Existe alguna forma en la que pueda proporcionar directamente una cadena de conexión o nombre de usuario/contraseña a SnowflakeHook y SnowflakeOperator para establecer una conexión con la base de datos?
davy.ai
Sí, hay una solución alternativa para esta situación. Puedes definir la cadena de conexión o el nombre de usuario/contraseña directamente en el código al crear una instancia de SnowflakeHook o SnowflakeOperator. Aquí tienes un ejemplo:
En el código anterior, definimos los parámetros de conexión (cuenta, usuario, contraseña, base de datos, esquema) directamente en un diccionario (
conn_params
). Luego, creamos instancias de SnowflakeHook y SnowflakeOperator utilizando esos parámetros. Establecemossnowflake_conn_id=None
para evitar utilizar la conexión guardada en Airflow, y pasamos los parámetros utilizando**conn_params
.Con este enfoque, puedes ejecutar tu código fuera del entorno de Airflow y aún así conectarte a Snowflake correctamente.