
ETL是Extract,Transform和Load的缩写。 在此过程中,ETL工具从不同的RDBMS源系统中提取数据,而后转换数据,如应用计算,连接等,而后将数据加载到数据仓库系统中。
ETL流程需要来自各种利益相关方(包括开发人员,分析师,测试人员,高级管理人员)的积极参加.为了保持其作为决策者工具的价值,数据仓库系统需要随业务变化而变化。 ETL是数据仓库系统的重复活动(每日,每周,每月),需要灵活,自动化且有良好的文档。
在组织中采用ETL的起因有很多:
ETL分为3个步骤
图片.png在此步骤中,将数据从源系统提取到暂存区域。 假如在暂存区域中完成转换,源系统的性能不受影响。 暂存区域也有助于验证。
数据仓库需要集成不同的系统
DBMS,硬件,操作系统和通信协议。 来源可能包括遗留应用程序,如大型机,自己设置应用程序,ATM等联络设施,呼叫交换机,文本文件,电子表格,ERP,供应商提供的数据,合作伙伴等。
因而,在物理提取和加载数据之前需要逻辑数据映射。 此数据映射形容了源和目标数据之间的关系。
三种数据提取方法:
无论使用何种方法,提取都不应影响源系统的性能和响应时间。 这些源系统是实时生产数据库。 任何减速或者锁定都可能影响公司的底线。
在提取期间完成了少量验证:
从源服务器提取的数据是原始的,不能以其原始形式使用。 因而需要对其进行清除,映射和转换。 事实上,这是ETL流程添加价值和更改数据的关键步骤,从而可以生成富有洞察力的BI报告。
在此步骤中,您将对提取的数据应用一组函数。 不需要任何转换的数据称为直接移动或者传递数据 。
在转换步骤中,您可以对数据执行自己设置操作。 例如,假如客户想要不在数据库中的销售总额收入。 或者者,假如表中的名字和姓氏位于不同的列中。 可以在加载之前连接它们。
图片.png以下是数据完整性问题:
验证在此阶段完成
将数据加载到目标数据仓库数据库是ETL过程的最后一步。 在典型的数据仓库中,需要在相对较短的时间段(夜晚)加载大量数据。因而,应针对性能优化负载过程。
假如发生负载故障,应将恢复机制配置为从故障点重新启动,而不会丢失数据完整性。 数据仓库管理员需要根据主要服务器的性能监控,恢复和取消负载。
加载类型:
市场上有许多数据仓库工具。 这里有少量最突出的:
1.MarkLogic:
MarkLogic使用一系列企业功能使数据集成更容易,更快捷。 此工具备助于执行非常复杂的搜索操作。 它可以查询不同类型的数据,如文档,关系和元数据。
http://developer.marklogic.com/products
甲骨文:
Oracle是业界领先的数据库。 它为内部部署和云端提供了广泛的数据仓库处理方案选择。 它有助于通过提高经营效率来优化用户体验。
https://www.oracle.com/index.html
3.亚马逊RedShift:
它使用标准SQL和现有BI工具分析所有类型数据的简单且经济高效的工具。 它还允许使用查询优化技术运行针对数PB的结构化数据的复杂查询。
https://aws.amazon.com/redshift/?nc2=h_m1
切勿尝试清除所有数据:
每个组织都希望将所有数据都清除干净,但大多数组织都不愿意等待或者不准备等待。 要清除它只要要太长时间,所以最好不要尝试清除所有数据。
永远不要清洗任何东西:
始终计划清除某些东西,由于构建数据仓库的最大起因是提供更清晰,更可靠的数据。
确定清除数据的成本:
在清除所有脏数据之前,确定每个脏数据元素的清除成本非常重要。
要加快查询解决速度,请使用辅助视图和索引:
要降低存储成本,请将汇总数据存储到磁盘磁带中。 此外,还需要在要存储的数据量与其详细使用之间进行权衡。 在数据粒度级别进行权衡以降低存储成本。