【问题标题】:Pull from multiple databases in the same source qualifier?从同一个源限定符中的多个数据库中提取?
【发布时间】:2011-02-18 20:19:28
【问题描述】:

我想知道是否可以从同一个源限定符中的多个数据库中提取。您只能为每个源限定符指定一个数据库连接,所以我不确定这是否可行。

【问题讨论】:

    标签: informatica-powercenter


    【解决方案1】:

    本,

    如果它们都来自同一个数据库供应商并且设置了数据库链接,则可以在源限定符中使用 DBLINKS。

    select a.col1,
           b.col2
      from schema1.table1 a,
           schema1.table2@db2 b
      where a.col3 = b.col4;
    

    但如果它们是异构数据库,我认为最好的实现方式是创建两个不同的源限定符(或根据您的要求和列数进行不同的查找)并使用参数文件/会话来提及不同的连接.

    【讨论】:

      【解决方案2】:

      假设用于连接的帐户在两个数据库中具有同等权限,则它是 DATABASE_NAME.TABLE_NAME

      SELECT
          a.id 
         ,a.name
         ,a.company
         ,b.company_id 
         ,b.company_name
         ,b.address 
      FROM
        database1.users as a 
      JOIN 
        database2.companies as b ON a.company=b.company_id
      

      【讨论】:

      • 这适用于同一数据库中的不同模式。我需要加入多个数据库连接。我想我将改用查找,因为这允许您从单独的数据库中查找。
      【解决方案3】:

      我将使用数据库链接来实现这一点,它允许跨两个数据库进行交互。 尽管出于多种原因不是首选解决方案,但出于您的原因,这将帮助您实现您所说的。

      但是,从理想的解决方案的角度来看,您不应该首先这样做 :) 如果数据来自两个不同的数据库,请从两个不同的源限定符中获取它们,然后根据您的需要,进行连接器或查找(取决于功能要求)等。

      【讨论】:

        【解决方案4】:

        如果登录至少有读取权限并且架构在同一个服务中是可能的。

        出于某种原因,我们的 DBA 不允许使用 dblink...

        使用 informatica 的一个原因是,您可以为不同的源创建特定的源限定符 (SQ),然后使用 Join/Union trans... 如果您在某些数据源中遇到问题,请相信我;修复它,故障排除会更容易。

        还假设您离开公司,其他团队接手该工作;图形和逻辑上会更容易维护......

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-07-23
          • 2022-08-09
          • 2014-05-15
          • 1970-01-01
          相关资源
          最近更新 更多