此包包含 Snowflake Python 连接器,它符合 Python DB API 2.0 规范。
Snowflake Python 连接器提供了一个接口,用于开发可以连接到 Snowflake 并执行所有标准操作的 Python 应用程序。它提供了一种编程替代方案,用于使用 Snowflake JDBC 或 ODBC 驱动程序以 Java 或 C/C++ 开发应用程序。
该连接器 不 依赖于 JDBC 或 ODBC。可以在已安装 Python 3.9.0(或更高版本)的 Linux、Mac OSX 和 Windows 平台上使用 pip 进行安装。
Snowflake 文档可在以下网址获取: https://docs.snowflake.com/
欢迎在此处提交问题或 PR 以便进行一般性反馈。如需官方支持,请通过以下方式联系 Snowflake 支持: https://community.snowflake.com/s/article/How-To-Submit-a-Support-Case-in-Snowflake-Lodge
安装受支持的 Python 版本。克隆 Snowflake Python 连接器存储库,然后运行以下命令以使用 PEP-517 构建创建 wheel 包:
git clone git@github.com:snowflakedb/snowflake-connector-python.git
cd snowflake-connector-python
python -m pip install -U pip setuptools wheel build
python -m build --wheel .在 ./dist 目录中找到 snowflake_connector_python*.whl 包。
或者使用我们的 Docker 化构建脚本 ci/build_docker.sh,并在 dist/repaired_wheels 中找到构建好的 wheel 文件。
注意:ci/build_docker.sh 可用于仅编译特定版本,例如:ci/build_docker.sh "3.9 3.10"
这些工具已集成到 tox 中,以便我们在任何计算机上都能轻松地通用设置它们。
- fix_lint:运行
pre-commit以检查大量 lint 问题。可以进行安装,使其在每次本地创建提交时运行,请留意此环境成功时打印的提示。 - coverage:运行
coverage.py以合并生成的覆盖率数据文件。当运行多个类别并希望为此创建整体覆盖率数据文件时非常有用。 - flake8:(已弃用)与
fix_lint类似,但仅运行flake8检查。
默认情况下,Snowflake Python 连接器会收集遥测数据以改进产品。您可以通过在连接到 Snowflake 时将会话参数 CLIENT_TELEMETRY_ENABLED 设置为 False 来禁用遥测数据收集:
import snowflake.connector
conn = snowflake.connector.connect(
user='XXXX',
password='XXXX',
account='XXXX',
session_parameters={
"CLIENT_TELEMETRY_ENABLED": False,
}
)或者,您可以通过在 SnowflakeConnection 对象上将 telemetry_enabled 属性设置为 False 来禁用遥测数据收集:
import snowflake.connector
conn = snowflake.connector.connect(
user='XXXX',
password='XXXX',
account='XXXX',
)
conn.telemetry_enabled = False为确保 Python 包的真实性和完整性,请按照以下步骤使用 cosign 验证包签名。
验证签名的步骤:
- 安装 cosign:
- 本示例使用 golang 安装:installing-cosign-with-go
- 从存储库下载文件,例如 pypi:
- 从 release tag 下载签名文件,将版本号替换为您正在验证的版本:
- 验证签名:
# 将版本号替换为您正在验证的版本 ./cosign verify-blob snowflake_connector_python-3.12.2.tar.gz \ --key snowflake-connector-python-v3.12.2.pub \ --signature resources.linux.snowflake_connector_python-3.12.2.tar.gz.sig Verified OK
该库目前不支持 GCP 区域端点。请确保使用该库的任何工作负载都不需要支持 GCP 上的区域端点。如果您对此有疑问,请联系 Snowflake 支持。
该驱动程序使用一个名为 sf_mini_core 的 Rust 库,您可以在此处找到其源代码。