已弃用 – Snowflake Connector 1.x for Informatica Cloud

本主题包含有关如何设置和使用 Snowflake Connector 1.x 版本的信息。其中解释了 Informatica Cloud 组织管理员和业务用户如何使用 Snowflake Connector 向 Snowflake 发布数据。

该连接器实现了 Informatica Cloud Connector SDK。可以在 Informatica Cloud 和 Informatica PowerCenter 9.6.1 上部署。如需关于在 PowerCenter 上部署连接器的帮助,请联系 Snowflake 支持部门

备注

Snowflake 还提供一个可用于与 Informatica 产品进行数据集成的 ODBC 库;目前,该库仅支持读取功能。

本主题内容:

Snowflake Connector 简介

Snowflake Connector 概述

Snowflake 以行业标准 ODBC 和 JDBC 库的形式提供用于查询和修改数据的编程 APIs。ODBC 库可用于使用标准 ODBC 连接器的 Informatica 产品。有关配置 ODBC 连接器的信息,请参阅 Informatica 文档。ODBC 库可以通过您的 Snowflake 账户下载。但是,使用 ODBC 将大量数据写入或更新到 Snowflake 中通常不是执行这些操作的最高效或最有效的方法。

Snowflake Connector 旨在提高在 Snowflake 中批量插入、修改和删除大量行的吞吐量。其工作原理是缓存通过 Informatica 接收的逐行数据,以压缩字符分隔文件的形式将其异步上传到云存储,并使用 Snowflake COPY 命令从文件中导入数据。

Snowflake Connector 的实施

系统在内部暂存区中为配置的连接用户(由 ~ 字符标识)暂存提交以供处理的数据。

子目录是在暂存区为每个作业创建的。可以处理多个批次,每个批次的用户暂存区都有相应的子目录。每个子目录都包含以下信息:

  • 目标表的名称。

  • 操作的名称(INSERT、DELETE、UPSERT、MODIFY)。

  • 时间戳和唯一标识符(连续数字)。

在 Classic Console 中的 History History 选项卡 页面中,将为配置为运行该流程的用户显示以下命令:

  • 配置为在作业之前运行的 SQL 语句。

  • 将数据文件上传到暂存区的 PUT 命令序列。

  • 创建临时表来暂存数据。

  • 将数据导入暂存表的 COPY 命令,可以选择在验证模式下首先识别/检索数据转换错误。

  • 处理数据的 DELETE、MERGE 或 INSERT 命令。

  • 从暂存区清理暂存文件的 RM 命令。

连接器可以修改此序列以优化性能。

数据错误会报告给 Informatica,写入错误文件会话日志,如果这样配置,则可能会终止作业。Snowflake 加载过程本身会跳过所有数据转换错误。

Snowflake 连接

Snowflake 连接概述

Snowflake Connector 使用 Snowflake JDBC 驱动程序进行连接。驱动程序库包含在连接器发行版中。

Snowflake 连接属性

Snowflake Connector 使用以下属性连接到 Snowflake:

USER 和 PASSWORD

用于加载过程的账户的用户名和密码。Snowflake 建议为要加载数据的表使用具有相应写入权限的专用用户。

Snowflake URL

用于连接到您账户中的 Snowflake 数据库和架构的 JDBC URL。例如:

jdbc:snowflake://xy12345.snowflakecomputing.cn/?db=load&schema=etl

其中:

  • xy12345 是您的账户名称(由 Snowflake 提供)。

  • 如果您的账户位于 US 西部以外的区域,则 JDBC 连接字符串还必须在您的账户名称后面包含 区域 ID,格式为 <account_id>.<region_id>.snowflakecomputing.cn

  • load 是用于加载数据的默认数据库的名称。

  • etl 是包含要加载的表的架构(在 load 数据库中)的名称。

备注

在设计期间,元数据浏览仅限于连接或用户搜索路径中指定的 Snowflake 架构和数据库。

小技巧

如果您运行的作业包含大量数据集和非常复杂的转换,则可能需要很长时间才能完成。如果作业耗时超过 4 小时,则 Snowflake 连接令牌可能会过期。为避免这种情况,可以在 JDBC 连接字符串中指定 client_session_keep_alive 参数,以防止连接令牌过期。例如:

jdbc:snowflake://xy12345.snowflakecomputing.cn/?...&client_session_keep_alive=true

作业的开始事务

如果已设置,则连接器将在每个作业开始之前启动事务,并在作业完成或失败时提交或回滚。

备注

Informatica 不支持连接器 API 中的操作回滚或断开连接。终止作业可能会留下挂起的表锁定和未提交的事务,可能需要从 Snowflake 命令行手动释放。

数据出错时中止

选择此属性后,如果在数据导入期间遇到任何数据转换错误,则每个作业都将停止处理。要在遇到错误时回滚部分变更,还要设置 作业的开始事务

备注

由于数据是异步加载的,因此如果使用此属性并生成了多批数据,则某些数据可能已经提交。

传播数据流

该连接器实现了允许链接数据处理的中游写入界面。如果选择此属性,则连接器将传递数据以供进一步处理。

为了获得更好的性能,请勿选择此属性。

Snowflake 数据同步任务

该连接器提供高级目标属性,用于指定执行数据同步任务时要使用的 Snowflake 特定操作和属性。

Snowflake 高级目标属性

下表描述了可以为数据同步任务指定的高级目标属性:

高级目标属性

描述

更新键列

目标表中用分号分隔的列名列表,这些列名应用作 DELETE 或 MODIFY 操作的复合键。

之前执行

将在作业开始之前执行的 SQL 语句。

截断表

在执行作业之前,从目标表中删除所有数据。此语句在执行 之前执行 语句后完成。

之后执行

将在作业完成后执行的 SQL 语句。

一次性处理数据

选中此属性后,连接器将在处理作业之前上传作业中的所有数据。

出错时保留暂存文件

若加载数据时出现错误,则保留暂存的数据文件。仅当启用“数据出错时中止”时,此属性才有效。

使用当地时区

使用代理本地时区转换 TIMESTAMP/日期时间数据。默认情况下,使用 UTC 进行转换。

成功文件目录

目前未使用。

错误文件目录

目前未使用。

数据库替换

要更新的数据库的名称;替换为数据同步任务定义的目标数据库。不要在数据同步任务中为数据库替换、架构替换或表替换指定值。您可以在 PowerCenter 会话中指定值。

架构替换

要更新的架构的名称;替换为数据同步任务定义的目标架构。不要在数据同步任务中为数据库替换、架构替换或表替换指定值。您可以在 PowerCenter 会话中指定值。

表替换

要更新的表的名称;替换为数据同步任务定义的目标表。不要在数据同步任务中为数据库替换、架构替换或表替换指定值。您可以在 PowerCenter 会话中指定值。

使用说明:

  • Snowflake 不强制执行主键或外键约束,也不保留键的元数据。即使在 Informatica 环境中相应的列被标记为键,您也必须指定 更新键列 属性。

  • 一次性处理数据 属性可能会延迟作业的完成,但可以保证在出现故障时不会保留任何数据,也不会保留整个事务。同时处理最大数量的数据还可以最大限度地利用 Snowflake 仓库并行度。

  • PowerCenter 使用 数据库替换架构替换表替换 属性在运行时提供替换数据同步任务的目标数据库、架构和/或表的值。这允许使用相同的数据同步任务来更新多个数据库和架构中的表。默认情况下,这些字段为空白,应留空,因为属性的值是在运行时提供的。

语言: 中文