Skip to main content

Snowflake

弃用基本身份验证

Snowflake 将于 2026 年 3 月前完全弃用基本身份验证(用户名和密码)。在此日期之后,使用基本身份验证的连接将无法正常工作

为避免中断,请在截止日期前将您的连接更新为更安全的身份验证方法(例如,OAuth、Azure AD 或密钥对身份验证)。如需指导,请参阅知识库文章

驱动程序配置要求

对于数据库内处理,为了避免输出数据工具写入数据时出现错误,请在驱动程序中指定仓库、架构和数据库。

支持类型

读取和写入、数据库内。

验证版本

数据库版本:6.8.1

ODBC 客户端版本:3.12.0.1000 64 位

用于连接的 Alteryx 工具

标准工作流处理

数据库内工作流处理

输入数据工具

  1. 选择输入数据工具,然后导航至输入数据 - 配置窗口。选择连接文件或数据库下的下拉菜单。

  2. 前往数据连接 > 所有数据源 > Snowflake > ODBC

  3. Snowflake ODBC 连接弹出窗口中,输入您的用户名密码

  4. 选择表格或指定查询窗口中,选择表格 > 表格 > 确定

经典模式

如果要在经典模式下工作,请导航至选项 > 用户设置 > 编辑用户设置 > 选中输入/输出工具菜单选项使用经典模式复选框。

  1. 要指定查询,请选择 SQL 编辑器选项卡。在可用空间中输入查询,然后选择测试查询 > 确定

  2. 选择输出数据工具,然后导航至菜单 > 选项

  3. 选择用户设置 > 编辑用户设置 > 选中输入/输出工具菜单选项使用经典模式复选框。

  4. 前往输出数据 - 配置 > 写入文件或数据库,然后选择下拉图标。

  5. 选择其他数据库 > 选择 Snowflake 批量...

  6. 您还可以使用输入数据工具(经典模式)选择文件和数据源。

如果要切换到经典模式,请将输出数据工具替换为新工具,然后选择画布F5 以刷新。

输出数据工具

要完全支持表格和列的读写,请将 Alteryx Designer 表格/字段名称 SQL 样式选项设置为带引号。设为“带引号”后,系统将专门选择数据库中的表,而选择将以大写形式生成结果。

在配置 Snowflake 批量连接之前,请查看以下内容:

  • 您只能使用 Snowflake 批量加载器写入数据。

  • 数据写入新输出后,Snowflake 批量加载器将删除写入 S3 存储桶的数据。

  • 文本字段的最大允许长度为 16,777,216 字节。

如需了解详情,请参阅 Snowflake 文档

注意

从 2023.2 版本开始,Designer 会在本地取消工作流时取消所有未完成的数据库内执行。这样可以解除对数据管道的限制。这一功能改善了整体数据库交互。

配置 ODBC 连接

  1. ODBC 数据源管理员中,选择 Snowflake 驱动程序并选择配置

  2. 输入连接设置和凭证。

  3. 选择确定以保存连接。

注意

要完全支持名称采用大小写混合形式的表格和列的读写,必须将 Alteryx Designer 表格/字段名称 SQL 样式选项设置为带引号

Snowflake JWT 密钥对身份验证

凭借版本 2024.1,在包含 DCM 的 Alteryx Designer 中为 Snowflake 使用密钥文件 (JWT) 身份验证变得前所未有的简单。只需选择您的 Snowflake 连接并从可用数据源列表中查找密钥对身份验证。

通过 ODBC 驱动程序配置 Snowflake JWT:

  1. 按照 Snowflake 的说明创建令牌。

  2. 将 ODBC DSN 中的“身份验证程序”设置为 SNOWFLAKE_JWT。

    Snowflake JWT
  3. 在 Alteryx 中,连接字符串必须指向文件位置,例如:odbc:DSN=Simba_Snowflake_JWT;UID=user;PRIV_KEY_FILE=G:\AlteryxDataConnectorsTeam\OAuth project\PEMkey\rsa_key.p8;PRIV_KEY_FILE_PWD=__EncPwd1__;JWT_TIMEOUT=120

    如需更多说明,请参阅 Snowflake 文档

有关如何为 Snowflake 帐户配置 Snowflake JWT 身份验证的详细信息,请参阅 Snowflake 文档

配置 Snowflake 批量连接以写入数据

批量加载支持使用 DSN 的连接以及非 DSN 连接。

要使用非 DSN 连接字符串配置批量加载器,请手动构建连接字符串。该字符串必须包含写入 Snowflake 所需的参数以及暂存所需的参数。Snowflake 所需参数可在 Snowflake 文档中找到。暂存所需参数可在下方找到。

  • 连接字符串示例:snowbl:Driver= {SnowflakeDSIIDriver};Server=customerinstance.snowflakecomputing.com;Database=TEST_DB; Warehouse=TEST_WAREHOUSE;schema=PUBLIC;UID=user;PWD=password;Bucket=S3Bucket; Access=IAMAccessKey;Secret=IAMSecretKey;URL=s3.amazonaws.com;Region=us-east-1

要使用 DSN 配置批量加载程序,请使用 UI 并按照以下步骤操作:

  1. 选择输出数据工具,然后导航至输出数据 (1) - 配置窗格。

  2. 写入文件或数据库下方,选择下拉图标 > 找到数据连接窗口以选择数据源选项卡 > 所有数据源 > Snowflake > 选择批量

  3. Snowflake 批量连接窗口中,选择本地选项卡 > 在用户名(可选)密码(可选)框中输入您的凭证 > 选择确定以查看输出表格弹出窗口。

  4. 使用表格名称或采用 db.schema.tablename 形式输入指定输出文件的表格(或工作表)名称:这是完全限定的表格。

  5. 输出数据 (1) - 配置窗格的选项下方,从表格/字段名称 SQL 样式下拉列表中选择带引号

  6. 从字段获取文件/表格名称下方,确定是否要选中附加后缀至文件/表格名称下拉列表的复选框。如果您选中该复选框,请从下拉选项中选择...

    1. 作为后缀附加至文件/表格名称

    2. 作为前缀附加至文件/表格名称

    3. 更改文件/表格名称

    4. 更改整个文件路径

  7. 如果您选中作为后缀附加至文件/表格名称复选框,则在包含完整或部分文件名的字段下方选择以下一项:

    1. SEQUENCE_CATALOG

    2. SEQUENCE_SCHEMA

    3. SEQUENCE_NAME

    4. SEQUENCE_OWNER

    5. DATA_TYPE

    6. NUMERIC_PRECISION

    7. NUMERIC_PRECISION_RADIX

    8. NUMERIC_SCALE

    9. START_VALUE

    10. MINIMUM_VALUE

    11. MAXIMUM_VALUE

    12. NEXT_VALUE

    13. INCREMENT

    14. CYCLE_OPTION

    15. CREATED

    16. LAST_ALTERED

    17. COMMENT

  8. 如果从下拉列表中选择了字段,确定是否要选中将字段保留在输出中复选框,以将该字段包含在输出中。

使用 Snowflake 批量连接暂存数据的方法

配置 Snowflake 批量连接以写入 Amazon S3

  1. 输出数据 - 配置窗口中,选择写入文件或数据库,然后选择其他数据库 > Snowflake 批量,以显示 Snowflake 批量连接窗口。

  2. 选择数据源名称,或者单击 ODBC 管理员创建一个。如需了解详情,请前往 ODBC 和 OLEDB 数据库连接

  3. 输入用户名密码(如需)。

  4. Amazon S3 中,输入 AWS 访问密钥AWS 私密密钥

  5. 私密密钥加密中选择一个加密选项:

    • 隐藏:以最简单的加密方式隐藏密码。

    • 为本机加密:计算机上的任何用户都能访问连接。

    • 为用户加密:登录用户可以在任何计算机访问连接。

  6. 端点中选择以下选项之一:

    • 默认值:Amazon 根据所选存储桶确定端点。

    • 指定端点:要指定存储桶所在的 S3 区域,请指定自定义端点或从先前输入的端点选择。

      • S3 存储桶必须位于指定的 S3 区域。否则,将出现以下错误:必须使用指定端点来对您尝试访问的存储桶进行寻址请将所有未来的请求发送到此端点。

      • 选择默认值以关闭错误窗口。

  7. (可选)选择使用 Signature V4 进行身份验证,将安全性提升到高于默认 Signature Version 2 的水平。对于需要 Signature Version 4 的区域,此选项将自动启用。2014 年 1 月 30 日之后创建的区域仅支持 Signature Version 4。以下区域需要 Signature V4 的身份验证:

    • 美国东部(俄亥俄)地区

    • 加拿大(中部)地区

    • 亚太地区(孟买)地区

    • 亚太地区(首尔)地区

    • 欧盟(法兰克福)地区

    • 欧盟(伦敦)地区

    • 中国(北京)地区

  8. 选择一种服务器端加密方法以上传到加密的 Amazon S3 存储桶。请参阅《Amazon Simple Storage Service 开发人员指南》。

    • 无(默认值):不使用加密方法。

    • SSE-KMS:使用 AWS KMS 托管密钥的服务器端加密。您还可以提供 KMS Key ID。当您选择此方法时,使用 Signature V4 进行身份验证将默认启用。

  9. 输入存储数据对象的 AWS 存储桶的存储桶名称

  10. 输出数据 - 配置窗口中配置其他文件格式选项。如需了解详情,请前往文件格式选项

配置 Snowflake 批量连接以写入本地存储

现在,您拥有三种新增选项以将数据暂存到本地驱动器。

选择输出数据工具,然后导航至输出数据 (1) 配置窗格 > 在写入文件或数据库下方,找到数据连接窗口,然后选择数据源选项卡 > 所有数据源 > Snowflake > 选择批量。在 Snowflake 批量连接窗口中 > 选择本地选项卡 >

  1. 用户阶段:Snowflake 提供的内部阶段,与用户相关联。

    1. 选择用户 > 选择确定。在输出表格弹出窗口中,使用表格名称或采用 db.schema.tablename 形式输入指定输出文件格式的表格(或工作表)名称:这是完全限定的表格。选择确定。在输出数据 (1) - 配置窗格的选项下方,从表格/字段名称 SQL 样式下拉列表中选择带引号

  2. 表格阶段:Snowflake 提供的内部阶段,与表格相关联。

    1. 选择表格阶段 > 选择确定。在输出表格弹出窗口中,使用表格名称或采用 db.schema.tablename 形式输入指定输出文件格式的表格(或工作表)名称:这是完全限定的表格。选择确定。在输出数据 (1) - 配置窗格的选项下方,从表格/字段名称 SQL 样式下拉列表中选择带引号

      1. 内部命名阶段:在 Snowflake 数据库中,创建并执行 CREATE STAGE 命令,并为工具配置提供阶段名称

        注意

        最大字段大小为 16MB。如果超出字段大小阈值,系统将抛出错误,并且不会写入任何数据。

  3. 压缩类型:选项为“无压缩”或“使用 GZip 压缩”。

    1. 无压缩 - 文件以 CSV 格式进行暂存和上传

    2. 使用 GZIP 压缩 - CSV 文件使用 GZIP 压缩

  4. 区块大小(以 MB 为单位,范围是 1-999):此选项允许您选择本地暂存的每个 CSV 的大小。

    注意

    由于底层格式化和压缩,实际文件大小可能会因所选区块大小而异。

  5. 线程数 (1-99):此选项指定用于将文件上传到 Snowflake 的线程数。增大此值可能会提高上传较大文件的性能。如果输入 0,则使用 Snowflake 默认值 (4)。

从暂存开始,每次复制到表格的数据最多可包含 1000 个文件。如果暂存的文件超过 1000 个,您可能会看到多个 copy into 语句。这是 Snowflake 对复制文件所使用的 copy into 语句的要求。如需了解详情,请前往 Snowflake 门户

如需详细了解“压缩类型”、“区块大小 (MB)”和“线程数”等选项,请访问 Snowflake 门户