Airflow 气流2.0.2-雪花钩罐';t读取位于目录中的查询
我们正在迁移到airflow 2.0,我注意到以下错误,SnowflakeHook似乎无法读取位于“sql”目录中的查询,这在airflow 1.x中运行良好: snowflake.connector.errors.ProgrammingError:001003(42000): 019c5ac7-0602-31b5-0000-01b526e4fa46:SQL编译错误:语法 位置0处的错误行1意外的“sql” 在处理上述异常期间,发生了另一个异常: common.snowflake.exceptions.SQLCompilationSnowflakeException:001003 (42000):019c5ac7-0602-31b5-0000-01b526e4fa46:SQL编译错误: 位置0处的语法错误行1意外的“sql”。发生错误 处理查询时(019c5ac7-0602-31b5-0000-01b526e4fa46): sql/my_query.sql 下面是我们创建的类:Airflow 气流2.0.2-雪花钩罐';t读取位于目录中的查询,airflow,snowflake-cloud-data-platform,Airflow,Snowflake Cloud Data Platform,我们正在迁移到airflow 2.0,我注意到以下错误,SnowflakeHook似乎无法读取位于“sql”目录中的查询,这在airflow 1.x中运行良好: snowflake.connector.errors.ProgrammingError:001003(42000): 019c5ac7-0602-31b5-0000-01b526e4fa46:SQL编译错误:语法 位置0处的错误行1意外的“sql” 在处理上述异常期间,发生了另一个异常: common.snowflake.excepti
class SnowQueryOperator(BaseOperator):
template_fields = ['sql']
@apply_defaults
def __init__(self,
sql,
params=None,
warehouse=Variable.get('default_snowflake_warehouse'),
*args,
**kwargs):
super().__init__(*args, **kwargs)
self.sql = sql
self.params = params
self.warehouse = warehouse
def execute(self, context):
sf_hook = SnowflakeHook(warehouse=self.warehouse)
sf_hook.execute_query(self.sql)
我们就是这样使用它的:
t4 = SnowQueryOperator(
task_id='running_snowflake_query',
sql='sql/my_query.sql',
retries=0,
pool='airflow')
我认为这个代码在Airflow 1.10上不起作用 您缺少允许您读取
.sql
文件的模板
class SnowQueryOperator(BaseOperator):
template_fields = ('sql')
template_ext = ('.sql',)
我不清楚你为什么自己实现这个操作符。气流具有一定的流动性
您可以使用pip安装apache airflow providers snowflake
安装它,然后从airflow.providers.snowflake.operators.snowflake import snowflake operator以的身份导入该操作符。谢谢您的回复!不久前有人创建了这个类,但是如果我们可以使用内置的SnowflakeOperator,我会把它提出来,这也行得通!