【问题标题】:Need SSIS Help - How to Get the ID from Destination需要 SSIS 帮助 - 如何从目的地获取 ID
【发布时间】:2019-02-27 14:54:47
【问题描述】:

我是 SSIS 的新手。目前致力于将数据从 SQL 迁移到 Oracle。我们在两个数据库中都有表(具有不同的数据类型)。比如说,一个主人(角色)和一个孩子(员工)。我正在将 Employee 表从 SQL 迁移到 Oracle。 RoleID 是 Employee 表中的外键。

由于 Destination 数据类型和 RoleIds 与 Source 不同,我需要从 Source 员工表中获取“RoleName”,与 Destination 中的 Role Table 连接并获取各自的 ID。

来源: 员工表 --> RoleId(GUID 数据类型)

目的地 员工表 --> RoleId (Int 数据类型)

我尝试使用 FuzzyLookup 和 Lookup,但我没有在那里获得目标连接管理器的详细信息。任何其他想法如何实现这一目标?

提前致谢。

表结构:

【问题讨论】:

  • GUID ID 是否包含字母字符?如果是这样,它将无法匹配具有 INT 数据类型的列。
  • 是的,这就是我连接 RoleName 以获取目标角色 ID(即 INT)的原因。希望这会有所帮助
  • 请更详细地解释这句话,因为这是我解决这个问题的方法:“我尝试使用 FuzzyLookup 和 Lookup,我没有得到目标连接管理器的详细信息。”跨度>
  • @TabAlleman,我的一位朋友建议使用模糊查找,当我在“数据流”部分尝试时,我只能看到源连接字符串。我需要目标连接字符串才能获取我的目标角色表详细信息。
  • 只有 SQL Server 对象可以在引用数据源中使用,所以这里不能使用 Oracle 目标。有关更多信息,请参阅此docs.microsoft.com/en-us/sql/integration-services/data-flow/…

标签: sql sql-server oracle ssis oracle12c


【解决方案1】:

如果可以,最好的处理方法是将源数据按原样导入目标服务器上的临时表,然后在目标服务器上的过程中将数据导入最终表在过程代码中进行查找以获取 ID。

如果您不能这样做并且必须在 SSIS 包中完成所有操作,那么您可以通过将另一个 Source 组件添加到您的数据流来执行此操作,该组件从 Oracle 中的 Role 表中获取数据并执行 Merge Join 到来自 SQL Server 的数据,加入 RoleName 以将 Oracle 表中的 ID 获取到数据流中。请注意,如果您这样做,则必须在 Merge Join 键 (RoleName) 上订购两个源组件。

【讨论】:

    【解决方案2】:

    使用普通的查找转换

    为什么要使用模糊查找转换,而您可以使用普通查找转换来实现。

    模糊查找转换有一个限制,因为引用必须是 SQL Server 数据库,来自Fuzzy lookup transformation documentation

    参考数据源必须是 SQL Server 数据库中的表。

    基于Lookup transformation documentation

    查找转换支持 OLE DB 连接管理器的以下数据库提供程序:

    • SQL 服务器
    • 甲骨文
    • DB2

    数据准备

    如果数据不相同(这是使用模糊查找的原因),请尝试清理和准备数据以匹配查找引用。方法有很多:

    1. Data preparation (wrangling) using SQL
    2. 使用Derived Columns for simple cleaning operations
    3. 使用a Script Component for a complex cleaning logic
    4. 使用Data Conversion transformation to match the Data Types

    【讨论】:

      猜你喜欢
      • 2013-10-09
      • 1970-01-01
      • 2019-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-31
      • 2012-05-10
      相关资源
      最近更新 更多