IBM®
跳转到主要内容
    中国 [选择]    使用条款
 
 
Select a scope: Search for:    
    首页    产品    服务与解决方案     支持与下载    个性化服务    
跳转到主要内容

developerWorks 中国  >  Information Management  >

使用 IBM InfoSphere Information Server 与 Salesforce CRM 进行数据集成

developerWorks
文档选项

未显示需要 JavaScript 的文档选项

英文原文

英文原文


级别: 初级

Jon Deng, 资深软件工程师, IBM
Jeff J. Li, 高级软件工程师, IBM

2008 年 11 月 13 日

本文介绍了 IBM® Information Server® Pack for Salesforce.com,并描述了这个包的体系结构设计,演示了它的用法,并强调了它相对于其他产品的优点。本文还演示了一些示例任务,指导您实现完整的部署。

简介

Salesforce 是一个领先的随需应变客户关系管理(CRM)系统。它为公司管理客户联系人、跟踪销售订单以及优化销售过程提供了一个完善的托管解决方案。它还允许客户以服务的形式定制他们的软件,从而取得竞争优势。

IBM Information Server 是一个统一、综合的信息集成平台。它可以分析、清洗和转换来自不同数据源的数据,交付一致、准确的业务数据。如果要将 Salesforce CRM 数据与后端企业资源计划(ERP)系统和其他数据分析应用程序中的企业数据进行集成和同步,则 IBM Information Server 是一个理想的解决方案。

本文阐述了最新认证的用于 Information Server 的 IBM Salesforce 解决方案的主要特性。本文还提供一些例子,以演示日常业务集成场景。这些例子提供了详细指南,顾问可以利用它们来解决 Salesforce 数据集成案例。





回页首


产品的先决条件及安装

IBM Information Server 包括很多用于数据集成和分析任务的软件产品。这些产品包括 Information Server DataStage®、Information Server QualityStage™、Information Server Information Analyzer、Information Server Federation Server 和其他附带产品。取决于特定的项目需求,用户可以选择安装 IBM Information Server 中的部分产品。


图 1. 设计 Salesforce.com 的 ETL 任务所需的软件产品
设计 Salesforce.com 的 ETL 任务所需的软件产品

图 1 显示了设计 Salesforce.com 的 ETL 任务所需 IBM Information Server 产品的最小集合。

  • IBM Information Server DataStage,包括:
    • DataStage Client
    • DataStage Server
    • DataStage Metadata Repository
    • DataStage Domain Server
    Information Server DataStage 产品可以分别安装在不同的主机上,也可以安装在同一台主机上。
  • Information Server Pack for Salesforce.com(IS Salesforce Pack)
    IS Salesforce Pack 是 IBM Information Server 的附带产品。这个包用于通过 Web 服务连接到 Salesforce.com。IS Salesforce Pack 的 GUI 安装在 DataStage Client 上。这个包的运行时部分则安装在 DataStage Server 上。
  • Apache Axis
    Apache Axis 是一个外部组件,用于管理 IS Salesforce Pack 的传输层。它包含用于 HTTP/HTTPS 协议的库,如图 Figure 1a 所示。



    图 1a. 作为外部组件的 Apache Axis
    作为外部组件的 Apache Axis





回页首


体系结构概述

在设计和执行 Salesforce.com 的 ETL 任务时,图 1 中的每个软件组件都扮演着不同的角色:

  • Information Server DataStage Client 和 IS Salesforce Pack GUI 组件提供一个智能的用户界面,使用户可以设计 ETL 任务,导入和导出元数据,以及设置将在 Salesforce.com 上执行的数据操作。
  • Information Server DataStage Server 和 IS Salesforce Pack server 组件使用户可以调度和运行 ETL 任务。
  • Information Server Domain Server 管理 Information Server 用户帐户和授权。
  • Information Server Metadata Repository 是用于存储和共享元数据定义的一个单独的数据库。

Information Server Salesforce Pack 主要包括三个组件:

  • Salesforce 元数据浏览器,用于浏览 Salesforce 对象的定义,以及将其从 Salesforce.com 导入到 DataStage。
  • Salesforce Load Stage,用于将数据从非 Salesforce 数据源装载到 Salesforce.com。它是一个 Salesforce 认证的装载解决方案。
  • Salesforce Extract Stage,用于将数据从 Salesforce.com 提取到非 Salesforce 数据源。它是一个 Salesforce 认证的提取解决方案。Salesforce 装载和提取 stage 都依赖于 Salesforce.com Web 服务 API。




回页首


Salesforce 元数据浏览器

这个包有一个智能的元数据浏览器。它既可以浏览 Salesforce 对象,又可以浏览 Salesforce 用户创建的定制对象。它可以将选定的对象定义从 Salesforce 导回到 IBM Information Server,以备将来使用。元数据浏览器只显示适用于用户选择的数据操作的对象和字段。图 2 显示了元数据浏览器用于查询操作的界面。元数据浏览器只显示用户可以对其执行查询操作的 Salesforce 对象。


图 2. 元数据浏览器和终端用户 Salesforce 帐户中的查询表对象
元数据浏览器及终端用户 Salesforce 帐户中的查询表对象

在图 3 中,元数据浏览器显示了允许用户对其更新数据或插入新数据的 Salesforce 对象。


图 3. 元数据浏览器和终端用户 Salesforce 帐户中的 Upsertable 对象
元数据浏览器和终端用户 Salesforce 帐户中的 Upsertable 对象

如图 2 和图 3 所示,元数据浏览器根据用户选择的操作显示不同的对象集合,包括定制对象。这个特性使终端用户对操作和对象之间的相互关联一目了然。

元数据浏览器不仅可以显示 Salesforce 对象,还可以显示与那些对象相关的字段属性。它进一步简化了终端用户在 DataStage 任务设计阶段的任务。在图 4 中,通过 UPSERT 操作选择 Opportunity 对象。该对象中只显示适合 UPSERT 操作的字段。


图 4. Upsert 操作对应的 Opportunity 字段
Upsert 操作对应的 Opportunity 字段

在图 5 中,通过 Query 操作选择同一个 Opportunity 对象。与图 4 相比,这里显示的 Opportunity 对象的字段有所不同。该对象中只有适合 Query 操作的字段是可见的。


图 5. Query 操作对应的 Opportunity 字段
Query 操作对应的 Opportunity 字段

元数据浏览器可以将 Salesforce 对象和字段定义导入到 DataStage 中。首先选择被插入的 Salesforce 对象和它的数据字段,如图 6 所示。然后单击 Import,将选择的 Salesforce 对象定义转换为 DataStage 表定义。创建的表定义如图 7 所示。还可以将表定义保存到 DataStage 存储库中,以备将来使用。


图 6. 导入 Salesforce 元数据
导入 Salesforce 元数据


图 7. 将元数据定义保存到 DataStage 中
将元数据定义保存到 DataStage 中




回页首


从 Salesforce 中提取数据

Salesforce Extract Stage 可以根据用户的 Salesforce.com 凭证从 Salesforce.com 中提取数据。提取的数据可以被装载到其他数据源,例如 Oracle®、DB2、SAP® 或纯文本文件。Extract Stage 依赖于 Salesforce.com Web 服务 API 和 Salesforce Object Query Language(SOQL)。

本节将设计一个简单的 ETL 任务,以演示设计步骤和提取功能。图 8 显示了这个示例任务。这个示例任务将 Salesforce Account 对象复制到 Oracle 数据库。可以手动创建 Oracle Account 表,或者由 DataStage Open Database Connectivity(ODBC)连接器在任务运行时自动创建它。


图 8. DataStage 任务有选择地将数据从 Salesforce.com 提取到 Oracle 9g
DataStage 任务有选择地将数据从 Salesforce.com 提取到 Oracle 9g


图 9. Oracle 数据库中的 Account 表
Oracle 数据库中的 Account 表

要设置 Salesforce 提取任务,必须先打开 stage GUI,然后选择操作类型。这里定义了 4 种操作类型:Query、QueryAll、Get Deleted Delta 和 Get Updated Delta。图 10 显示了选中 Query 操作时的界面。


图 10. 为提取选择 Query 操作
为提取选择 Query 操作

选择操作之后,可以启动元数据浏览器,选择要进行查询的业务对象,也可以手动输入对象名称和 SOQL 语句。元数据浏览器会自动生成 SOQL 语句作为参考。可以使用生成的 SOQL 语句,或者手动地修改该语句。图 11 和 12 显示了生成的 SOQL 语句。


图 11. 使用元数据浏览器选择对象和字段
使用元数据浏览器选择对象和字段


图 12. 自动生成的 SOQL 语句
自动生成的 SOQL 语句

运行数据提取操作

图 13 显示了如何设置 ODBC 连接器,以便将提取的 Salesforce 数据插入到 Oracle 数据库。


图 13. 设置到 Oracle 数据库的连接
设置到 Oracle 数据库的连接

图 14 显示了任务运行的结果。


图 14. 调度和运行提取任务
调度和运行提取任务




回页首


将数据装载到 Salesforce

本节使用一个简单的 ETL 任务来演示将数据装载到 Salesforce.com 中的必要步骤。图 15 显示了这个示例任务。该任务使用一个 ODBC Stage 从一个 Oracle 数据库表中提取客户数据。它将提取的数据传递给 Salesforce Load Stage(Salesforce_Contact),后者将处理后的数据装载到用户的 Salesforce 帐户的 contact 对象中。图 16 显示了 Oracle 数据库表中的示例数据。


图 15. 将数据从 Oracle 数据库装载到 Salesforce contact
将数据从 Oracle 数据库装载到 Salesforce contact


图 16. Oracle 数据库表中的示例数据
Oracle 数据库表中的示例数据

您需要将 Oracle 数据库中的源映射到 Salesforce contact 对象。这可以在将来自 Oracle 数据库和 Salesforce.com 的所有元数据导入完成之后再做。

要设置 Salesforce Load Stage Salesforce_Contact,请选择 Upsert 操作,如图 17 所示。


图 17. 选择操作
选择操作

然后,通过元数据浏览器从 Salesforce 对象 contact 中导入字段。图 18 显示了导入后的结果。


图 18. 导入的 Salesforce contact 字段
导入的 Salesforce contact 字段

图 19 显示了如何设置 ODBC 连接器,以便从 Oracle 数据库中提取联系人信息。


图 19. 从 Oracle 中提取数据
从 Oracle 中提取数据

在图 20 中,Oracle 数据库中的数据字段被映射到 Salesforce contact 对象中的字段。


图 20. Oracle 数据库与 Salesforce contact 对象之间的映射
Oracle 数据库与 Salesforce contact 对象之间的映射

在图 20 中,Oracle 数据库中的 REPID 字段被映射到 Salesforce OwnerId 字段。Oracle 中的 REPID 的长度只有 4。而 Salesforce OwnerId 的长度应该为 18。这种映射会产生错误,导致 Salesforce Load Stage 拒绝记录。图 21 表明,所有要装载到 Salesforce 中的记录都被拒绝,并且被发送到拒绝链接。


图 21. 记录被拒绝导致的装载失败
记录被拒绝导致的装载失败

如图 22 所示,拒绝链接的输出文件记录所有被拒绝记录的原因。用户可以根据这个拒绝文件改正错误,然后重新将记录装载到 Salesforce。


图 22. 拒绝的原因
拒绝的原因

并行装载

通过并行装载到 Salesforce,终端用户可以使用 Internet 上的 Web 服务调用加快装载过程。通常,如果使用顺序装载方式和单个的连接,将 50 万行数据装载到 Salesforce 需要 2 到 4 个小时。在实际的数据仓库中,这样的性能是难以接受的。但是,如果使用内建的 DataStage 并行功能,就可以根据用户的需要设置多个并行装载节点配置文件。然后,在运行时使用适当的配置文件,而不必更改任务中的任何设计。这个过程不仅简化了任务的设计,而且加快了装载过程。Salesforce Pack 可以根据多个节点自动划分数据,并通过多个连接将数据装载到 Salesforce。通常需要两个小时的装载任务现在只需 30 分钟就能完成。这样的性能可以改进客户的数据仓库建设过程,提高他们的生产率。





回页首


将 Salesforce 用于数据浓缩(data enrichment)

DataStage 中的 quality stage 可以清洗数据,移除错误的记录。在图 23 中显示的示例任务使用了一个 quality stage,以便在更新记录或将记录插入到 Salesforce 之前移除具有相同外部 ID 的重复记录。


图 23. 移除重复的记录
移除重复的记录

图 24 定义了列,用作检查重复记录的键。在这里,选择 ExternalID__C。


图 24. 为检查重复记录而定义的键 ExternalID__C
为检查重复记录而定义的键 ExternalID__C




回页首


结束语

本文演示了如何使用 IBM Information Server 和 Information Server Salesforce Pack 将 Salesforce.com CRM 与外部数据源集成。文中解释了 Salesforce 数据装载和提取过程,以及 Quality stage 中的数据浓缩特性。

IBM Information Server 为很多 Salesforce 客户面临的两个其他关键问题提供了领先的解决方案:

  • 数据质量:用于构建数据仓库的数据常常来自不同的数据源。遗留数据的结构往往没有文档说明,数据质量令人担忧。Information Server Information Analyzer 产品可以对数据进行分析,并确定数据的结构和质量。它帮助您理解数据。Information Server QualityStage 产品可标准化和匹配任何类型的信息,以创建高质量的数据。
  • 数据量:对于一个数据仓库环境,常常需要对巨量的数据进行常规性的处理。有时候,数据量的增长会超出预期。这个问题需要用一个可伸缩的 ETL 架构来解决。IBM Information Server 利用管道和分区技术为高数据吞吐量提供支持。IBM Information Server 可以部署在对称多处理(SMP)和大规模并行处理(MPP)计算机系统上,以取得最大的可伸缩性。节点配置的设置是无缝的,可以通过多个配置文件来完成,也可以在生产时完成。根据对这个包的评测,在使用公司的代理防火墙的情况下,在一个多节点配置中,装载 120 万行数据需要一个小时。

致谢

感谢 Milind Tamaska 为我们提供了反馈,并对本文作了审校。



参考资料

学习

获得产品和技术
  • 用可直接从 developerWorks 下载的 IBM 试用软件 构建您的下一个开发项目。


讨论


作者简介

作者照片:Jon Deng

Jon Deng 是佛罗里达州 Boca Raton 的 Software Group 的一名资深软件工程师。他在 2005 年 IBM 收购 Ascential 时随 Ascential 加入 IBM。他从事企业应用程序和电信系统方面的工作长达 8 年。目前,他正在参与开发 IBM InfoSphere Information Server 的下一代 salesforce 适配器。他还是一名认证的 SAP BW 专家。


作者照片:Jeff Li

Jeff Li 是佛罗里达州 Boca Raton 的 Software Group 的一名高级软件工程师。他在 2005 年 IBM 收购 Ascential 时随 Ascential 加入 IBM。他从事企业应用程序和电信系统方面的工作长达 15 年。目前,他正在为 IBM InfoSphere Information Server 开发复杂数据集成解决方案。他还是一名认证的项目管理专家。




对本文的评价








IBM 公司保留在 developerWorks 网站上发表的内容的著作权。未经IBM公司或原始作者的书面明确许可,请勿转载。如果您希望转载,请通过 提交转载请求表单 联系我们的编辑团队。
    关于 IBM 隐私条约 联系 IBM 使用条款