首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在informatica中对FlatFile目标进行SCD Typ1

在Informatica PowerCenter中,Slowly Changing Dimensions (SCD) 是一种处理数据仓库中随时间变化的数据的技术。SCD Type 1 是其中一种类型,它通过覆盖旧数据来处理数据的变化,即最新的数据会替换掉旧的数据,而不保留历史记录。

基础概念

  • Slowly Changing Dimensions (SCD): 用于处理数据仓库中的维度表,这些表中的数据随时间变化。
  • SCD Type 1: 数据发生变化时,直接更新现有记录,不保留历史数据。

相关优势

  • 简单易实现。
  • 适用于不需要保留历史数据的场景。

类型

  • SCD Type 1: 直接覆盖。
  • SCD Type 2: 保留历史记录。
  • SCD Type 3: 部分保留历史记录。

应用场景

适用于数据变化不频繁,且不需要查看历史数据的场景,例如当前状态的数据报告。

实现步骤

  1. 创建维度表: 在数据库中创建维度表。
  2. 配置映射: 在Informatica中配置源表到维度表的映射。
  3. 设置SCD Type 1: 在映射中设置SCD Type 1 的处理逻辑。

示例

假设我们有一个FlatFile源文件 customer_src.txt,内容如下:

代码语言:txt
复制
ID,Name,Address,EffectiveDate,EndDate
1,John Doe,123 Main St,2020-01-01,
2,Jane Smith,456 Elm St,2020-01-01,

维度表 customer_dim 结构如下:

代码语言:txt
复制
CREATE TABLE customer_dim (
    ID INT PRIMARY KEY,
    Name VARCHAR(100),
    Address VARCHAR(100),
    EffectiveDate DATE,
    EndDate DATE
);

配置映射

  1. 创建源定义: 在Informatica中创建源定义,指向 customer_src.txt
  2. 创建目标定义: 创建目标定义,指向 customer_dim 表。
  3. 创建映射: 创建一个新的映射,将源定义连接到目标定义。
  4. 设置SCD Type 1:
    • 在映射中添加一个 Expression Transformation
    • 设置 Update StrategyOverwrite
    • 配置 EffectiveDateEndDate 字段的处理逻辑。

示例代码

代码语言:txt
复制
<Mapping>
    <Source Qualifier="SRC_CUSTOMER">
        <SourceDefinition>Customer_Source</SourceDefinition>
    </Source>
    <Target LoadOrder="1" Name="TGT_CUSTOMER_DIM">
        <TargetDefinition>Customer_Dim</TargetDefinition>
    </Target>
    <Transformation Type="Expression" Name="EXP_SCD_TYPE1">
        <InputParameters>
            <InputParameter Expression="IIF(TARGET.EndDate IS NULL, TODAY(), TARGET.EndDate)" Name="EndDate" Type="DATE"/>
            <InputParameter Expression="SRC.EffectiveDate" Name="EffectiveDate" Type="DATE"/>
        </InputParameters>
        <OutputParameters>
            <OutputParameter Expression="SRC.ID" Name="ID" Type="INTEGER"/>
            <OutputParameter Expression="SRC.Name" Name="Name" Type="VARCHAR(100)"/>
            <OutputParameter Expression="SRC.Address" Name="Address" Type="VARCHAR(100)"/>
            <OutputParameter Expression="#Parameters.EndDate" Name="EndDate" Type="DATE"/>
            <OutputParameter Expression="#Parameters.EffectiveDate" Name="EffectiveDate" Type="DATE"/>
        </OutputParameters>
    </Transformation>
    <Joiner JoinType="Left" Name="JOINER_SCD">
        <Input>
            <JoinCondition>SRC.ID = TGT.ID</JoinCondition>
            <LeftInput>
                <RefEntity>SRC_CUSTOMER</RefEntity>
            </LeftInput>
            <RightInput>
                <RefEntity>TGT_CUSTOMER_DIM</RefEntity>
            </RightInput>
        </Input>
    </Joiner>
    <Expression Transformation="EXP_SCD_TYPE1">
        <Input>
            <RefEntity>JOINER_SCD</RefEntity>
        </Input>
        <Output>
            <RefEntity>TGT_CUSTOMER_DIM</RefEntity>
        </Output>
    </Expression>
</Mapping>

参考链接

通过以上步骤和示例代码,您可以在Informatica中实现对FlatFile目标的SCD Type 1 处理。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 维度模型数据仓库(四) —— 初始装载

    (三)初始装载         在数据仓库可以使用前,需要装载历史数据。这些历史数据是导入进数据仓库的第一个数据集合。首次装载被称为初始装载,一般是一次性工作。由最终用户来决定有多少历史数据进入数据仓库。例如,数据仓库使用的开始时间是2015年3月1日,而用户希望装载两年的历史数据,那么应该初始装载2013年3月1日到2015年2月28日之间的源数据。在2015年3月2日装载2015年3月1日的数据,之后周期性地每天装载前一天的数据。在装载事实表前,必须先装载所有的维度表。因为事实表需要维度的代理键。这不仅针对初始装载,也针对定期装载。本篇说明执行初始装载的步骤,包括标识源数据、维度历史的处理、使用SQL和Kettle两种方法开发和测试初始装载过程。         设计开发初始装载步骤前需要识别数据仓库的每个事实表和每个维度表用到的并且是可用的源数据,并了解数据源的特性,例如文件类型、记录结构和可访问性等。表(三)- 1里显示的是本示例中销售订单数据仓库需要的源数据的关键信息,包括源数据表、对应的数据仓库目标表等属性。这类表格通常称作数据源对应图,因为它反应了每个从源数据到目标数据的对应关系。生成这个表格的过程叫做数据源映射。在本示例中,客户和产品的源数据直接与其数据仓库里的目标表,customer_dim和product_dim表相对应。另一方面,销售订单事务表是多个数据仓库表的源。

    03

    印尼医疗龙头企业Halodoc的数据平台转型之路:基于Apache Hudi的数据平台V2.0

    数据平台已经彻底改变了公司存储、分析和使用数据的方式——但为了更有效地使用它们,它们需要可靠、高性能和透明。数据在制定业务决策和评估产品或 Halodoc 功能的性能方面发挥着重要作用。作为印度尼西亚最大的在线医疗保健公司的数据工程师,我们面临的主要挑战之一是在整个组织内实现数据民主化。Halodoc 的数据工程 (DE) 团队自成立以来一直使用现有的工具和服务来维护和处理大量且多样的数据,但随着业务的增长,我们的数据量也呈指数级增长,需要更多的处理资源。由于现代数据平台从不同的、多样化的系统中收集数据,很容易出现重复记录、错过更新等数据收集问题。为了解决这些问题,我们对数据平台进行了重新评估,并意识到架构债务随着时间的推移积累会导致大多数数据问题。我们数据平台的所有主要功能——提取、转换和存储都存在问题,导致整个数据平台存在质量问题。 现有数据平台 印尼医疗龙头企业Halodoc的数据平台转型之路:数据平台V1.0 在过去几年中为我们提供了很好的服务,但它的扩展性满足不了不断增长的业务需求。

    02
    领券