关于Python包是否支持创建Snowflake storage_integration的问询
关于Snowflake Python包创建STORAGE INTEGRATION的问题解答
当前Snowflake官方Python包(包括snowflake-connector-python和snowflake-snowpark-python)确实未提供创建STORAGE INTEGRATION的高层封装API,现有文档仅覆盖目录管理与NOTIFICATION INTEGRATION相关操作。
不过你可以通过Python包执行DDL语句的方式间接创建STORAGE INTEGRATION,以下是两种常见实现方式:
- 使用Snowpark Session执行DDL:
from snowflake.snowpark import Session # 配置连接参数 connection_params = { "account": "your_account", "user": "your_user", "password": "your_password", "warehouse": "your_warehouse", "database": "your_database", "schema": "your_schema" } session = Session.builder.configs(connection_params).create() # 执行创建STORAGE INTEGRATION的SQL session.sql(""" CREATE OR REPLACE STORAGE INTEGRATION my_storage_integration TYPE = EXTERNAL_STAGE STORAGE_PROVIDER = 'S3' -- 根据实际存储提供商调整,如GCS、Azure ENABLED = TRUE STORAGE_AWS_ROLE_ARN = 'arn:aws:iam::123456789012:role/your-snowflake-role' -- 对应云平台的角色ARN STORAGE_ALLOWED_LOCATIONS = ('s3://your-bucket/path/') -- 允许访问的存储路径 """).collect()
- 使用Snowflake Connector执行DDL:
import snowflake.connector # 建立连接 conn = snowflake.connector.connect( user='your_user', password='your_password', account='your_account', warehouse='your_warehouse', database='your_database', schema='your_schema' ) cursor = conn.cursor() try: # 执行创建语句 cursor.execute(""" CREATE OR REPLACE STORAGE INTEGRATION my_storage_integration TYPE = EXTERNAL_STAGE STORAGE_PROVIDER = 'S3' ENABLED = TRUE STORAGE_AWS_ROLE_ARN = 'arn:aws:iam::123456789012:role/your-snowflake-role' STORAGE_ALLOWED_LOCATIONS = ('s3://your-bucket/path/') """) finally: cursor.close() conn.close()
关于未来是否会支持专门的高层API:Snowflake的Python工具链会持续更新迭代,你可以通过官方反馈渠道提交该功能需求,或关注官方更新日志,后续有概率添加针对STORAGE INTEGRATION的原生封装支持。
内容的提问来源于stack exchange,提问作者Jaikiran Sawant
相关产品推荐
相关产品推荐

