从 SnowFlake 上的配置文件读取参数(不是通过 SnowSQL)
Read parameters from a config file on SnowFlake ( not via SnowSQL )
我能够从 SnowFlake 上的本地配置文件中读取参数(使用 SnowSQL)。但在生产环境中,SQL 将以自动方式 运行(使用 SnowFlake 任务)。
我在 Snowflake 中创建了一个调用存储过程的任务。存储过程需要几个我想从配置文件中读取的参数。因此同一个存储过程可以用于多个相似的用例。
如果有任何解决方法,请提出建议。
参考Link:https://docs.snowflake.net/manuals/user-guide/tasks-intro.html
虽然说"Note that a task does not support account or user parameters."
您无法从任务中读取配置文件。在我看来,最简单的方法是将您的配置放在 Snowflake table 中,然后让您的存储过程从 table 中读取任何配置。
因为我不太确定存储过程是否可以读取配置文件,因此我同意@SimonD 建议的方法。
另一种选择(虽然设计有点复杂)是在 S3 存储桶中使用 JSON 格式的配置文件,您可以通过阶段加载它。参考 $ 表示法访问相应的 JSON 属性以访问键值并将其注入存储过程中需要的位置。这样,您的配置仍然是 JSON 或雪花之外的文本格式,并且可以通过 S3 进行管理(如果您使用的是 AWS)
虽然我没有尝试过这种方法,但看起来应该可行。这样,可以防止雪花访问或意外的数据库更新。
我希望这个想法对你有意义吗?
我能够从 SnowFlake 上的本地配置文件中读取参数(使用 SnowSQL)。但在生产环境中,SQL 将以自动方式 运行(使用 SnowFlake 任务)。
我在 Snowflake 中创建了一个调用存储过程的任务。存储过程需要几个我想从配置文件中读取的参数。因此同一个存储过程可以用于多个相似的用例。
如果有任何解决方法,请提出建议。
参考Link:https://docs.snowflake.net/manuals/user-guide/tasks-intro.html
虽然说"Note that a task does not support account or user parameters."
您无法从任务中读取配置文件。在我看来,最简单的方法是将您的配置放在 Snowflake table 中,然后让您的存储过程从 table 中读取任何配置。
因为我不太确定存储过程是否可以读取配置文件,因此我同意@SimonD 建议的方法。
另一种选择(虽然设计有点复杂)是在 S3 存储桶中使用 JSON 格式的配置文件,您可以通过阶段加载它。参考 $ 表示法访问相应的 JSON 属性以访问键值并将其注入存储过程中需要的位置。这样,您的配置仍然是 JSON 或雪花之外的文本格式,并且可以通过 S3 进行管理(如果您使用的是 AWS)
虽然我没有尝试过这种方法,但看起来应该可行。这样,可以防止雪花访问或意外的数据库更新。
我希望这个想法对你有意义吗?