第三讲 数据抽取、转换和装载
大数据导论 4.3.2大数据方法的驱动力——抽取、转换、加载技术

• 通过ODBC的方式建立数据库链接 • 如果不能建立数据库链接:
• 通过工具将源数据导出成文本文件,然后导入到ODS中 • 通过程序接口来完成。
对于文件类型数据源
• 培训业务人员务发生的时间
抽取、转换和加载
Big Data
抽取、转换和加载 ETL实现
借助ETL工具实现
SQL方式实现
ETL与SQL结合实现
Big Data
抽取、转换和加载
抽取数据
转换数据 加载数据
Big Data
对于与存放数据仓库的数据库系统相同的数据源处理方法
• DBMS都会提供数据库链接功能,在DW数据库服务器和原业务系统之间建立直 接的链接关系
抽取数据
转换数据
加载数据
数据转换
不一致数据转换
• 将不同业务系统的相同类型的数据统一
数据粒度的转换
• 将业务系统数据按照数据仓库粒度进行聚合
商务规则的计算
• 将这些数据指标计算好了之后存储在数据仓库中
Big Data
抽取、转换和加载
抽取数据
转换数据
加载数据
• 将清洗完的数据写入到数据仓库 (Data Warehousing,DW)中
Big Data
感谢聆听!
抽取、转换和加载 Big Data
《大数据导论》
抽取、转换、加载技术
抽取、转换和加载
ETL是将业务系统的数据经过抽取、 清洗转换之后加载到数据仓库的过程
抽取
转换
加载
(Extract) (Transform) (Load)
Big Data
抽取、转换和加载
• 操作型数据存储 (Operational Data Store,ODS) • 数据仓库 (Data Warehousing,DW) • 数据库操作系统 (Database Management System,DBMS)
数据库的数据抽取与转换方法

数据库的数据抽取与转换方法数据库是当前各行各业中广泛使用的数据管理工具,它可以帮助机构快速存储、访问和操作大量的数据。
数据抽取与转换是数据库应用中的重要环节,它可以帮助用户从不同的数据源中抽取数据,并将其转换为符合目标数据库结构的格式。
本文将介绍数据库的数据抽取与转换方法,并探讨其应用场景和技术挑战。
数据抽取是指从一个或多个数据源中选择数据,并将其从源系统中提取出来的过程。
数据转换是将抽取得到的源数据进行格式转换、清洗和整合,使其适应目标数据库的结构和格式。
数据抽取和转换通常是数据库迁移、数据集成、数据仓库和商业智能等领域中的常见任务。
数据抽取与转换的方法多种多样,根据具体的需求和技术条件选择合适的方法非常重要。
下面介绍几种常见的数据抽取与转换方法:1. 手动导出导入:这是一种简单直接的方法,通过数据库的导出和导入功能手动将数据从源数据库中导出,然后再导入到目标数据库中。
它适用于少量数据和简单的需求,但对于大量数据和复杂的数据转换要求,手动导出导入方法效率较低且容易出错。
2. SQL语句转换:利用SQL语言对数据进行查询、过滤、合并和计算等操作,在源数据库中执行SQL语句并将结果导出到目标数据库。
这种方法适用于简单的数据转换需求,但对于复杂的数据转换要求,SQL语句转换方法的可扩展性和效率较差。
3. ETL工具:ETL(Extract, Transform, Load)是一种常见的数据抽取与转换工具。
它通过定义数据抽取规则、转换规则和加载规则,自动地从源数据库中抽取数据,经过转换处理后加载到目标数据库中。
ETL工具通常包含图形化的用户界面,便于用户配置数据流程和转换规则。
ETL工具具有较高的效率和灵活性,可适应各种数据抽取和转换需求。
4. 数据同步工具:数据同步工具可以实现数据库之间的实时数据同步。
它通过监控源数据库的变化,并将变化的数据实时同步到目标数据库中。
数据同步工具往往具有较高的性能和稳定性,适合于需要频繁更新的数据抽取和转换需求。
数据挖掘 ETL

对于这个ETL场景,可以建立如图1所示的概念模型。其中:ห้องสมุดไป่ตู้Sl和s2表示数据源中的表,DSA表示中间数据库,DW表示 目标数据仓库。
在上面这个例子中,为了保证目标数据仓库中数据的完整性, 需要从Sl和s2两个数据源抽取数据,对它们执行并(union)操 作。为了与数据仓库中事实表的模式一致,必须对S1中的 customer表和city表执行外连接,而且还要将S2中 date属性的数据删E美的日期格式(mm/dd/yyyy)转换成中 国的日期格式(y#y/mm/dd),还需要根据s2的其他属性组 合(rlalne、email)为S2表计算生成一个主键。其中,并运算、 外连接运算以及日期转换属于概念模型中的转换transform), 其他的操作如PK、SK则属于约束(ETL constrain)。
数据抽取、转换、加载ETL 数据抽取、转换、加载ETL
2010.10.9
目录
ETL建模 ETL增量机制 ETL数据质量控制机制
ETL工作流模型
在ETL流程设计中,首先应该根据业务需求和相 关数据源的结构建立概念模型,确定源数据库与 目标数据库之间的映射关系,然后根据概念模型 建立逻辑模型。
ETL概念模型
ETL增量抽取机制 ETL增量抽取机制
要实现增量抽取,关键是如何准确快速的捕获变化的 数据。优秀的增量抽取机制要求ETL能够将业务系统中 的变化数据按一定的频率准确地捕获到,同时不能对 业务系统造成太大的压力,影响现有业务。相对全量 抽取而言,增量抽取的设计更复杂。增量数据抽取中 常用的捕获变化数据的方法有以下几种:
ETL逻辑模型
ETL概念模型并不是一个完整的工作流模型,它定义了数 据源与目标数据仓库属性之间的映射关系以及中间必要 的转换,但并不关注转换的语义以及执行顺序。 ETL流程的逻辑模型是一个以数据为中心的工作流模型, 在逻辑建模阶段,ETL流程的设计者需要明确定义数据流 所经过的各个活动的操作语义,并确定整个流程中各个 活动的执行顺序。
数据仓库设计与建模的增量抽取与全量加载的实现方法(三)

数据仓库设计与建模的增量抽取与全量加载的实现方法引言:数据仓库设计与建模是现代企业决策制定与执行的重要依据。
为了保持数据仓库中的数据与源系统的数据一致性,需要定期进行增量抽取与全量加载。
本文将介绍数据仓库增量抽取与全量加载的实现方法。
一、增量抽取方法增量抽取是将源系统中最新更新的数据从源系统中抽取到数据仓库中的过程。
以下介绍几种常见的增量抽取方法。
1. 基于时间戳的增量抽取在源系统中为每个数据记录增加一个时间戳字段,用来记录该记录的最后更新时间。
数据仓库每次抽取时,只抽取时间戳大于上一次抽取时间的记录。
通过比较时间戳,可以有效地实现增量抽取。
2. 基于日志的增量抽取源系统的操作日志记录了每次对数据的增删改操作,可以通过解析操作日志来抽取新增、修改和删除的数据。
这种方法可以实现实时抽取,并能够较好地应对源系统内部操作的复杂性。
3. 基于主键的增量抽取每个数据记录在源系统中都有一个唯一的主键,可以将主键与数据仓库中的对应记录进行比较,从而找到新增或修改的数据。
这种方法简单可靠,但对于大数据量的源系统可能存在性能问题。
二、全量加载方法全量加载是将数据仓库中的数据与源系统的数据完全同步的过程。
以下介绍几种常见的全量加载方法。
1. 定期全量加载根据需求设定一个固定的时间间隔,如每天凌晨,将源系统中的所有数据抽取到数据仓库中。
这种方法简单易行,但可能对源系统造成较大的负载。
2. 增量全量加载每次增量抽取完毕后,将抽取到的数据与数据仓库中的数据进行比较,找到源系统中已经删除的数据,并将其从数据仓库中删除。
然后将增量抽取到的数据与数据仓库中的数据进行合并,实现数据的完全同步。
三、增量抽取与全量加载的实践经验在实际应用中,为了保证数据仓库的准确性和及时性,需要结合具体情况选择合适的增量抽取与全量加载方法。
以下是一些实践经验供参考。
1. 精细化的增量抽取根据业务需求的不同,可以将增量抽取的粒度设置得更细。
例如,可以根据不同的业务规则设定增量抽取时所考虑的时间窗口,从而只抽取有业务影响的数据,减少不必要的开销。
数据仓库技术的ETL过程解析与实践

数据仓库技术的ETL过程解析与实践引言:数据仓库技术的ETL(Extract, Transform, Load)过程是将各类异构数据源中的数据抽取、转换和加载到数据仓库中的关键环节。
本文将对ETL的过程进行解析,并从实践角度探讨其重要性和常见问题。
1.数据抽取(Extract):数据抽取是ETL过程的第一步,它涉及从各种数据源中提取数据。
不同的数据源可能包括关系数据库、文件系统、Web服务等。
在此阶段,我们需要考虑以下问题:数据源的选择:针对不同需求的数据源选择不同,如关系数据库可以通过SQL查询获取数据,文件系统可以通过读取文件获得数据,Web服务可以通过API接口访问数据等。
因此,针对具体的数据源类型,我们需要选择合适的数据抽取方法。
数据抽取的频率:根据数据的更新频率和实时性要求,我们需决定数据抽取的频率,如每日、每周或实时抽取等。
不同的频率对应着不同的抽取策略和工具选择。
2.数据转换(Transform):数据转换是ETL过程的核心环节,它负责将抽取到的数据进行清洗、规范化、集成和聚合等处理。
在数据转换阶段,我们需要重点关注以下问题:数据清洗:数据清洗通常包括去除重复值、处理缺失值、校验数据完整性、规范化数据格式等。
通过数据清洗,我们可以提高数据质量和一致性,保证后续分析的准确性。
数据规范化:数据规范化是将数据转换为统一的格式和结构,以适应数据仓库中的模式。
这包括数据类型转换、字段命名统一、数据单位标准化等操作,以确保数据的一致性和可比性。
数据集成:在数据集成过程中,我们需要将来自不同数据源的数据进行合并和关联,以获得更全面的视图。
这可能涉及到数据匹配、关系建模和数据合并等操作。
数据聚合:数据聚合是将细粒度的数据聚集为更高层次的概要数据,以提供更高级别的分析。
通过聚合操作,可以减少数据存储和处理的复杂性,同时加速查询和分析过程。
3.数据加载(Load):数据加载是ETL过程的最后一步,它将经过抽取和转换的数据加载到数据仓库中,以供后续的分析和报表生成。
ETL测试基础教程:数据提取、转换和加载说明书

About the T utorialAn ETL tool extracts the data from all these heterogeneous data sources, transforms the data (like applying calculations, joining fields, keys, removing incorrect data fields, etc.), and loads it into a Data Warehouse. This is an introductory tutorial that explains all the fundamentals of ETL testing.AudienceThis tutorial has been designed for all those readers who want to learn the basics of ETL testing. It is especially going to be useful for all those software testing professionals who are required to perform data analysis to extract relevant information from a database. PrerequisitesWe assume the readers of this tutorial have hands-on experience of handling a database using SQL queries. In addition, it is going to help if the readers have an elementary knowledge of data warehousing concepts.Disclaimer & CopyrightCopyright 2015 by Tutorials Point (I) Pvt. Ltd.All the content and graphics published in this e-book are the property of Tutorials Point (I) Pvt. Ltd. The user of this e-book is prohibited to reuse, retain, copy, distribute or republish any contents or a part of contents of this e-book in any manner without written consent of the publisher.We strive to update the contents of our website and tutorials as timely and as precisely as possible, however, the contents may contain inaccuracies or errors. Tutorials Point (I) Pvt. Ltd. provides no guarantee regarding the accuracy, timeliness or completeness of our website or its contents including this tutorial. If you discover any errors on our websiteorinthistutorial,******************************************iT able of ContentsAbout the Tutorial (i)Audience (i)Prerequisites (i)Disclaimer & Copyright (i)Table of Contents .................................................................................................................................... i i 1.ETL – INTRODUCTION . (1)Difference between ETL and BI Tools (1)ETL Process (2)ETL Tool Function (3)2.ETL TESTING – TASKS (4)3.ETL VS DATABASE TESTING (5)4.ETL TESTING – CATEGORIES (7)5.ETL TESTING – CHALLENGES (9)6.ETL – TESTER'S ROLES (10)7.ETL TESTING – TECHNIQUES (12)8.ETL TESTING – PROCESS (15)9.ETL TESTING – SCENARIOS (TEST CASES) (16)10.ETL TESTING – PERFORMANCE (19)11.ETL TESTING – SCALABILITY (20)12.ETL TESTING – DATA ACCURACY (21)13.ETL TESTING – METADATA (22)ii14.ETL TESTING – DATA TRANSFORMATIONS (23)15.ETL TESTING – DATA QUALITY (24)16.ETL TESTING – DATA COMPLETENESS (25)17.ETL TESTING – BACKUP RECOVERY (26)18.ETL TESTING – AUTOMATION (27)19.ETL TESTING – BEST PRACTICES (28)20.ETL TESTING – INTERVIEW QUESTIONS (30)iiiETL Testing 1The data in a Data Warehouse system is loaded with an ETL (Extract, Transform, Load) tool. As the name suggests, it performs the following three operations: ∙Extracts the data from your transactional system which can be an Oracle, Microsoft, or any other relational database, ∙Transforms the data by performing data cleansing operations, and then ∙ Loads the data into the OLAP data Warehouse.You can also extract data from flat files like spreadsheets and CSV files using an ETL tool and load it into an OLAP data warehouse for data analysis and reporting. Let us take an example to understand it better.ExampleLet us assume there is a manufacturing company having multiple departments such as sales, HR, Material Management, EWM, etc. All these departments have separate databases which they use to maintain information w.r.t. their work and each database has a different technology, landscape, table names, columns, etc. Now, if the company wants to analyze historical data and generate reports, all the data from these data sources should be extracted and loaded into a Data Warehouse to save it for analytical work.An ETL tool extracts the data from all these heterogeneous data sources, transforms the data (like applying calculations, joining fields, keys, removing incorrect data fields, etc.), and loads it into a Data Warehouse. Later, you can use various Business Intelligence (BI) tools to generate meaningful reports, dashboards, and visualizations using this data. Difference between ETL and BI T oolsAn ETL tool is used to extract data from different data sources, transform the data, and load it into a DW system; however a BI tool is used to generate interactive and ad-hoc reports for end-users, dashboard for senior management, data visualizations for monthly, quarterly, and annual board meetings.The most common ETL tools include: SAP BO Data Services (BODS), Informatica – Power Center, Microsoft – SSIS, Oracle Data Integrator ODI, Talend Open Studio, Clover ETL Open source, etc.Some popular BI tools include: SAP Business Objects, SAP Lumira, IBM Cognos, JasperSoft, Microsoft BI Platform, Tableau, Oracle Business Intelligence Enterprise Edition, etc.1. ETL – IntroductionETL ProcessLet us now discuss in a little more detail the key steps involved in an ETL procedure –Extracting the DataIt involves extracting the data from different heterogeneous data sources. Data extraction from a transactional system varies as per the requirement and the ETL tool in use. It is normally done by running scheduled jobs in off-business hours like running jobs at night or over the weekend.Transforming the DataIt involves transforming the data into a suitable format that can be easily loaded into a DW system. Data transformation involves applying calculations, joins, and defining primary and foreign keys on the data. For example, if you want % of total revenue which is not in database, you will apply % formula in transformation and load the data. Similarly, if you have the first name and the last name of users in different columns, then you can apply a concatenate operation before loading the data. Some data do esn’t require any transformation; such data is known as direct move or pass through data. Data transformation also involves data correction and cleansing of data, removing incorrect data, incomplete data formation, and fixing data errors. It also includes data integrity and formatting incompatible data before loading it into a DW system. Loading the Data into a DW SystemIt involves loading the data into a DW system for analytical reporting and information. The target system can be a simple delimited flat file or a data warehouse.2ETL T ool FunctionA typical ETL tool-based data warehouse uses staging area, data integration, and access layers to perform its functions. It’s normally a 3-layer architecture.∙Staging Layer– The staging layer or staging database is used to store the data extracted from different source data systems.∙Data Integration Layer–The integration layer transforms the data from the staging layer and moves the data to a database, where the data is arranged into hierarchical groups, often called dimensions, and into facts and aggregate facts. The combination of facts and dimensions tables in a DW system is called a schema.∙Access Layer–The access layer is used by end-users to retrieve the data for analytical reporting and information.The following illustration shows how the three layers interact with each other.3ETL Testing4ETL testing is done before data is moved into a production data warehouse system. It is sometimes also called as table balancing or production reconciliation . It is different from database testing in terms of its scope and the steps to be taken to complete this. The main objective of ETL testing is to identify and mitigate data defects and general errors that occur prior to processing of data for analytical reporting. ETL Testing – Tasks to be PerformedHere is a list of the common tasks involved in ETL Testing –1. Understand the data to be used for reporting2. Review the Data Model3. Source to target mapping4. Data checks on source data5. Packages and schema validation6. Data verification in the target system7. Verification of data transformation calculations and aggregation rules8. Sample data comparison between the source and the target system9. Data integrity and quality checks in the target system10. Performance testing on data2. ETL Testing – TasksETL Testing 5Both ETL testing and database testing involve data validation, but they are not the same. ETL testing is normally performed on data in a data warehouse system, whereas database testing is commonly performed on transactional systems where the data comes from different applications into the transactional database.Here, we have highlighted the major differences between ETL testing and Database testing.ETL TestingETL testing involves the following operations:1. Validation of data movement from the source to the target system.2. Verification of data count in the source and the target system.3. Verifying data extraction, transformation as per requirement and expectation.4. Verifying if table relations – joins and keys – are preserved during the transformation.Common ETL testing tools include QuerySurge , Informatica , etc. Database TestingDatabase testing stresses more on data accuracy, correctness of data and valid values. It involves the following operations:1. Verifying if primary and foreign keys are maintained.2. Verifying if the columns in a table have valid data values.3. Verifying data accuracy in columns. Example : Number of months column shouldn’t have a value greater than 12.4. Verifying missing data in columns. Check if there are null columns which actually should have a valid value.Common database testing tools include Selenium , QTP , etc.3. ETL vs Database TestingETL TestingEnd of ebook previewIf you liked what you saw…Buy it from our store @ https://6。
ETL数据抽取方法

ETL数据抽取方法概述:ETL(抽取、转换、加载)是一种常用的数据处理方法,用于从源系统中抽取数据并将其转换为适合目标系统加载的格式。
本文将详细介绍ETL数据抽取方法的标准格式,包括抽取过程、数据转换和加载过程。
一、抽取过程:1. 确定数据源:根据需求确定数据源,可以是关系型数据库、非关系型数据库、文件等,确保数据源的可靠性和完整性。
2. 设计抽取规则:根据需求和数据源的特点,设计抽取规则,包括抽取的时间范围、抽取的数据字段、抽取的条件等。
3. 开发抽取程序:根据设计的抽取规则,开发相应的抽取程序,使用合适的编程语言和工具实现数据的抽取。
二、数据转换:1. 数据清洗:对抽取的数据进行清洗,包括去除重复数据、处理缺失值、修正错误数据等,确保数据的准确性和一致性。
2. 数据转换:根据目标系统的要求,对数据进行转换,包括数据格式转换、数据合并、数据分割等,确保数据的适应性和可用性。
3. 数据整合:将清洗和转换后的数据整合为目标系统可以加载的格式,确保数据的完整性和一致性。
三、加载过程:1. 目标系统准备:确保目标系统的数据库结构和表结构与加载的数据匹配,包括创建表、定义字段等。
2. 数据加载:将经过抽取和转换的数据加载到目标系统中,可以使用数据库的插入语句、数据导入工具等方式进行加载。
3. 数据校验:对加载后的数据进行校验,比对源数据和目标数据的一致性,确保数据加载的准确性和完整性。
四、数据质量监控:1. 设计数据质量指标:根据业务需求和数据特点,设计相应的数据质量指标,包括数据完整性、数据准确性、数据一致性等。
2. 实施数据质量监控:通过定期抽样、数据比对等方式,对抽取、转换和加载的数据进行监控,及时发现和解决数据质量问题。
3. 数据质量报告:根据数据质量监控的结果,生成数据质量报告,向相关人员反馈数据质量情况,提供决策依据。
五、性能优化:1. 数据抽取性能优化:通过合理的抽取规则设计、增量抽取等方式,提高数据抽取的效率和速度。
数据转换和存储

数据抽取,转换和加载
1,目前我们使用的数据库:Oracle,Mysql,SQLServer,Access,SQLite和NOSQL
2,异构数据之间的数据交互工具:Java代码,ETL,ODI,powercenter,datastage
3,目前主流的数据仓库:IBM、Oracle、Sybase、CA、NCR、Informix、Microsoft、和SAS 等都有自己的数据仓库
4,ETL
1、ETL的定义
ETL分别是“Extract”、“Transform”、“Load”三个单词的首字母缩写也就是“抽取”、“转换”、“装载”,但我们日常往往简称其为数据抽取。
ETL是BI/DW(商务智能/数据仓库)的核心和灵魂,按照统一的规则集成并提高数据的价值,是负责完成数据从数据源向目标数据仓库转化的过程,是实施数据仓库的重要步骤。
ETL包含了三方面:
“抽取”:将数据从各种原始的业务系统中读取出来,这是所有工作的前提。
“转换”:按照预先设计好的规则将抽取得数据进行转换,使本来异构的数据格式能统一起来。
“装载”:将转换完的数据按计划增量或全部导入到数据仓库中。
2、为什么需要ETL?
因为目前运行的应用系统是用户花费了很大精力和财力构建的、不可替代的系统,尤其系统中的数据是非常之宝贵。
但由于不同原始数据库中的数据的来源、格式不一样,导致了系统实施、数据整合出现问题。
ETL就是用来解决这一问题的。
5,。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
9. 汇总:
10.键重构:
数据转换
3.数据整合
ETL功能的真正挑战:从多个不同的分离的源系统中将 所有数据有机的组织在一起供决策分析使用。 数据整合就是将所有相关的数据组合成一致的数据结构, 准备装载到DW中。 ►实体识别的困难
订单系统、客服系统、市场系统 客户信息 如何匹配这三个不同系统中同一个客户的问题:算法或者手工识别
周期性的状态
例如随时间变化的政策(利率等) ► 变化的数据存储在源系统中,为DW而进行的抽取相对容易
►
例子
数据抽取
► 从源操作系统中捕获数据
1.静态数据
►一般用于在数据仓库初始装载的时候进行 ►是相关数据源在某个时刻的快照 ►静态数据的抽取包括
当前值的抽取 周期性数据的抽取:每个时间点的值的获取
数据装载
► 几个名词
初始装载:第一次对所有数据仓库的表进行迁移 增量装载:根据变化需要定期对DW中的表进行 更新 完全刷新:完全删除DW中的一个表或多个表, 然后重新装载新的数据
Chapter 12 数据抽取、转换和装载
► Contents
ETL概览 数据抽取 数据转换 数据装载 ETL总结
第三讲
数据抽取、转换和装载
数据抽取、转换和装载
► 目标:
广泛了解ETL的功能 检查数据抽取功能(挑战、技术、评估和应用) 数据转换功能的任务和类型 理解数据整合和合并的意义 认识数据装载功能的重要性,了解将数据应用到 数据仓库的主要方法 理解为何说ETL非常重要、耗时和艰巨的任务
系统中有时间戳 ►记录删除了如何抽取?删除先做标记(逻辑删 除),待抽取后物理删除。但增加了开销。
通过文件的比较来捕获
►保存副本,然后比较昨天的副本和今天的副本以
决定抽取那些数据。 ►缺点:如果数据文件很大,则比较费时间 ►优点:对于没有交易日志或者时间标记的而言, 唯一可行的方法
数据抽取
► 技术的评估
►抽取:
抽取和应用变化着的数据有困难
3.ETL的需求和步骤
事实表的ETL
维度表的ETL
为所有的数据装载编写规程
组织数据缓存区域和检测工具 为聚集表制定计划
决定数据转换和清洗规则 建立全面的数据抽取规则 准备从源到目标数据元素的的数据映像关系 决定所有的数据源,包括内部和外部 决定数据仓库中需要的所有的目标数据 ETL处理过程的主要步骤
从数据库触发器中捕获数据
►
►
缺点1:只能捕获基于DB的数据
缺点2:建立和维护触发器以及触发器的执行增加了开销 优点:适用于所有的系统(基于DB的或者文件系统的) 缺点: 1 程序的开销 2可能会降低应用程序的性能
从源应用程序中捕获数据
► ►
数据抽取
► 延缓型
基于日期和时间标记的捕获
►通过日期比较来选择应该抽取的数据:前提是源
灵活性? 对源系统性能的影响 对已有应用程序的影响 与旧系统的兼容性 能用在文件系统中吗? 需要内部开发还是可用第三方软件
► Contents
ETL概览 数据抽取 数据转换 数据装载 ETL总结
数据转换
► 根据标准对数据进行转换,因为他们来自不
同的系统,必须保证所有数据放在一起后, 数据的组合不能违反任何商业规则。 ► Contents
源系统的结构随着时间会发生变化,因为新的商业条件不断出现。ETL 功能也必须相应的调整
大多数源系统的数据格式和类型对用户没有实际的含义,而且很多展 现方式模糊而晦涩的。
2.耗时而且费劲
50%~70%的时间花费在ETL上
what? where? when? ►转换:How?定义结构、缺失值补充、格式转换 ►装载:Long Time(测试)
在数据库 触发器中 捕获
在源应用程序 中捕获
立即型数据抽取:可选方法
数据抽取
►
立即型
通过交易日志捕获数据:日志本来就是DBMS所应该存储的为应付突发情 况的备份。
► ► ►
没有额外开销。需要保证日志刷新之前,已抽取了所有记录。 缺点:如果源数据不是基于DB的则无法进行此方式的数据捕获 使用数据库复制技术
数据转换
2。主要转化类型
1. 格式修正:数据类型与字段长度 2. 字段的解码:使得晦涩的值变得用户易于理解和有意义 3. 计算值和导出值
4. 单个字段的分离:姓和名;邮编和地址
5. 信息合并:从不同源系统中得到某个新的实体的过程。 6. 特征集合转化:编码的转化:ASCII码、BCD码、Unicode、 Big5、GB2312等等 7. 度量单位的转化: 8. 日期、时间格式的转化:
目标
产品数据
2.
客户 3.
从所有维度中列出每一个维 度属性
对于每个目标数据项,找出 源系统和源数据项
客户
运输渠道数据
产品
4.
5.
如果一个数据元素有多个来 源,选择最好的来源
确认一个目标字段的多个源 字段,建立合并规则 部署数据
运输合同
6.
出货跟踪 7. 8. 存货管理
确认多个目标字段的一个源 字段,建立分离规则
ETL过程涉及的各个方面
1.
2. 3. 4. 5. 6. 7. 8.
将几个数据源结构组合成数据仓库目标数据库中的行 将一个源数据结构分成若干个结构放入目标数据库中的若干 行 从源系统数据字典和目录中读取数据 从多种文件结构中读取数据,包括平面文件、索引文件、旧 系统数据库 装载大量原子事实表的细节 为大量聚集表或事实表做聚集 将数据从源系统平台上的一种格式转换成目标平台上的另一 个格式 将晦涩的数值改变成对用户有意义的值
静态数据捕获:初次数据装载时使用 修正数据捕获
通过交易日志捕获:DB ►通过数据库触发器捕获:DB、书写触发器 ►在源系统中捕获:程序书写开销 ►基于日期和时间标记的捕获:有时间戳、删除的问题
(逻辑删除、物理删除) 通过文件的比较来捕获:比较会很费劲、但实用
► 主要考察:
► 数据装载包括了初始、定期增量、刷新装载 ► 完成ETL功能的工具很多,工具需要手工编程
的补充完善。
确认默认值 检查缺失值的源数据
时间数据
订单量度
数据抽取:2.数据抽取技术
► ►
源系统中的数据是依赖时间变化的 在数据仓库中不能忽略历史信息 如何从源系统中捕获历史数据?—— 数据如何存储
在源系统中的。
►
源系统中的数据如何保存? 当前值
►
存储的值是代表当前属性的值,可能会改变,但何时改变则无法预 知。为保存历史变化的DW在这类系统中抽取数据很棘手。
ETL总结
►
►
数据仓库的ETL包括了很广泛的概念
而且是一个不断重复的周期性的过程
数据仓库的ETL需要工具的支持
商用的ETL工具支持ETL的各个过程;大多数ETL工具采用 常见的语言编写,因而我们容易对此进行必要的二次开发 可选择的ETL工具非常广泛 商用ETL工具的最大好处就是可以产生维护所产生的驱动 DW建设的元数据
► Contents
ETL概览 数据抽取 数据转换 数据装载 ETL总结
ETL概览
► Contents
最重要和最具有挑战性 耗时而且费劲 ETL的需求和步骤 关键因素
1.最重要和最具有挑战性
►
ETL功能具有挑战性,是因为源系统的性质
源系统彼此悬殊,种类多样,通常需要应付多个平台上的不同操作系 统 很多源数据都是陈旧的应用系统采用的是过时的技术 旧系统中的数据质量各不相同,需要花很多时间进行处理 历史数据通常不会被保存在操作型系统中,但对于DW至关重要。 源系统之间普遍缺乏一致性。在不同的源系统中,相同的数据可能会 用不同的形式来代表,且缺乏解决方法,导致不一致问题更加严重
►多数据源
多个数据源可以得到同一个数据字段,但值不一样?如何取舍?
数据转换
4.维度属性的转换
三种慢速变化的维度属性的修改方法
►第一类 ►第二类 ►第三类
数据转换
5.如何实施转换
数据转换的复杂性决定了手工操作的困难性。
► 使用转换工具 昂贵 高效率 高准确性 元数据的产生 即使是最先进的工具也可能需要手工的配合 ► 使用手工技术 编写程序 适用于小的DW 增加了后期的维护成本 不能产生元数据,即使是产生元数据也因为后期的维护产生 额外的工作维护负:追加的数据捕获
►是最后一次捕获数据后的修正 ►追加的数据捕获可能是立刻进行的或者延缓进行的
立即型数据捕获: 数据抽取发生在源系统中发生交易的时候, 数据抽取是即时的或者实时的。 ► 三种不同的方法 延缓型数据捕获:非即时的或实时的数据抽取 ► 两种不同的方法
源数据库 源数据 源操作型系统 触发程序 数据库管理系统 选择1: 通过交易 日志捕获 选择2: 从源系统中 抽取文件 选择3: 输出触发 程序文件 交易日志 文件
基本任务 主要转换类型 数据整合和合并 维度属性的转换 如何实施转换
数据转换
1。基本任务
选择:从源系统得到的整个记录或部分记录。通 常构成抽取功能本身的一部分。 分离或合并:包括数据处理类型。 转化:多种对单独字段的基本转化:标准化和可 理解化 汇总:最细事务粒度上的前期汇总 丰富:从多个源字段构成一个目标字段时,创建 一个更好的数据视图。
4.关键因素
► 数据抽取、转换复杂性源于源系统巨大的
差异性
OS DBMS Protocol ►遗留的旧系统
►硬件平台
► 与数据装载相关
最初装载和定期装载本身都需要大量时间 (必须找和合适的时间) 增量转载中的特殊问题