- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
3.2.4 ETL逻辑模型 ETL概念模型并不是一个完整的工作流模型,它定义了数据源与目标数据仓库属性之间的映射关系以及中间必要的转换,但并不关注转换的语义以及执行顺序。 ETL流程的逻辑模型是一个以数据为中心的工作流模型,在逻辑建模阶段,ETL流程的设计者需要明确定义数据流所经过的各个活动的操作语义,并确定整个流程中各个活动的执行顺序。 活动(activity)是ETL工作流的基本执行单元,是ETL逻辑模型中一个重要元素。它定义了输入数据模式、输出数据模式、活动的操作语义以及活动的执行优先级。活动的操作语义定义了活动对输入数据所执行的操作,以及输入数据模式到输出数据模式之间的映射关系,可以使用SOL语言或者其他的形式化语言对语义进行描述,也可以使用ETL工具箱中的操作组件和相应的运行时参数进行表示。在一个ETL流程中,必须明确规定每一个活动的执行优先级,ETL流程中的任意两个活动,如果存在依赖关系,即一个活动的输入模式依赖于另一个活动的输出模式(不一定是相邻活动),那么,这两个活动构成严格偏序关系,可以确定其执行的先后顺序。一般情况下,在一个ETL流程中,抽取操作(extract)总是最先执行,加载操作(load)最后执行。 ETL逻辑模型中的活动对应于ETL概念模型中的转换或约束,但它提供了更详细的运行时信息。每一个活动都必须定义明确的操作语义,还必须规定每一个活动的执行优先级。 例3-2 建立例3-1概念模型对应的逻辑模型图。 抽取 1 抽取 1 抽取 1 PK 2 日期格式转换 3 连接 2 并运算 4 加载 5 图3.3 ETL逻辑模型 图3.3是ETL逻辑模型图,图中表示了主要活动的语义以及执行优先级,对于比较明显的语义没有标出。 3.3 ETL增量抽取机制 增量抽取是ETL实施过程中需要重点考虑的问题。在ETL过程中,增量更新的效率和可行性是决定ETL实施成败的关键问题之一。ETL中的增量更新机制比较复杂,采用何种机制往往取决于源数据系统的类型以及对增量更新性能的要求。 要实现增量抽取,关键是如何准确快速的捕获变化的数据。优秀的增量抽取机制要求ETL能够将业务系统中的变化数据按一定的频率准确地捕获到,同时不能对业务系统造成太大的压力,影响现有业务。相对全量抽取而言,增量抽取的设计更复杂。目前增量数据抽取中常用的捕获变化数据的方法主要有以下几种。 1.触发器方式 触发器方式是普遍采取的一种增量抽取机制。该方式是根据抽取要求,在要被抽取的源表上建立插入、修改、删除3个触发器,每当源表中的数据发生变化,就被相应的触发器将变化的数据写入一个增量日志表,ETL的增量抽取则是从增量日志表中而不是直接在源表中抽取数据,同时增量日志表中抽取过的数据要及时被标记或删除。 2.时间戳方式 时间戳方式是指增量抽取时,抽取进程通过比较系统时间与抽取源表的时间戳字段的值来决定抽取哪些数据。这种方式需要在源表上增加一个时间戳字段,系统中更新修改表数据的时候,同时修改时间戳字段的值。 有的数据库(例如Sql Server)的时间戳支持自动更新,即表的其它字段的数据发生改变时,时间戳字段的值会被自动更新为记录改变的时刻。在这种情况下,进行ETL实施时就只需要在源表加上时间戳字段就可以了。对于不支持时间戳自动更新的数据库,这就要求业务系统在更新业务数据时,通过编程的方式手工更新时间戳字段。 使用时间戳方式可以正常捕获源表的插入和更新操作,但对于删除操作则无能为力,需要结合其它机制才能完成。 3.全表删除插入方式 全表删除插入方式是指每次抽取前先删除目标表数据,抽取时全新加载数据。该方式实际上将增量抽取等同于全量抽取。对于数据量不大,全量抽取的时间代价小于执行增量抽取的算法和条件代价时,可以采用该方式。 4.全表比对方式 全表比对即在增量抽取时,ETL进程逐条比较源表和目标表的记录,将新增和修改的记录读取出来。 5.日志表方式 对于建立了业务系统的生产数据库,可以在数据库中创建业务日志表,当特定需要监控的业务数据发生变化时,由相应的业务系统程序模块来更新维护日志表内容。增量抽取时,通过读日志表数据决定加载哪些数据及如何加载。日志表的维护需要由业务系统程序用代码来完成。 6.系统日志分析方式 该方式通过分析数据库自身的日志来判断变化的数据。关系型数据库系统都会将所有的DML操作存储在日志文件中,以实现数据库的备份和还原功能。ETL增量抽取进程通过对数据库的日志进行分析,提取对相关源表在特定时间后发生的DML操作信息,就可以得知自上
文档评论(0)