龙空技术网

数据集成技术(二)--ETL技术

企业驱动 1037

前言:

此刻咱们对“etl技术的定义”大致比较重视,我们都需要知道一些“etl技术的定义”的相关知识。那么小编同时在网摘上收集了一些关于“etl技术的定义””的相关内容,希望小伙伴们能喜欢,咱们快快来了解一下吧!

ETL是数据抽取、转换和装载(Extract,Transformation,Loading)的英文简称,是数据仓库获取高质量数据的关键环节,是对分散在各业务系统中的现有数据进行提取、转换、清洗和加载的过程,使这些数据成为商业智能系统需要的有用数据。ETL是数据集成的第一步,也是构建数据仓库最重要的步骤。

下面我们以从某运维平台获取的各省RNC基础工参数据为例说明ETL主要流程。

图1 示例

上图给出了3个省级运维平台数据库中RNC基础工参数据的字段信息。通过对比,初步发现以下问题:

问题1: A、B省使用了中文表名、而C省使用了英文表名;问题2: A省数据内容相对丰富,但是B省和C省都有不同程度的数据内容缺失情况,例如B省缺失“NodeB数量”等字段,C省缺失“所属SGSN”字段;问题3:A、B、C省相同的字段内容使用了不同的名称,例如A省的“所属城市标识”分别对应B省的“城市标识”和C省的“city_id”。A省的“载频数目”对应B省的“载波数”和C省的”freq_num”;问题4:A、B、C省均存在字段名称相近,但实际取值需要转换的字段。例如A省”厂商标识”字段取值为“1,2,3,4,5”,对应B省“厂商名称”字段的“华为、中兴、阿郎、诺西、爱立信”;问题5:A、C省中”Iu接口配置带宽”单位为Mbps,但B省该字段的单位为bps,为便于后续分析对比,需要进行转换;问题6:由于这是RNC基础工参信息表,所以“RNC标识”字段应为非空。但在实际数据中,却存在”RNC标识”为空的无效数据,需要清洗。

2.1 数据抽取(Data Extract)

数据抽取指的是从不同的网络、不同的操作平台、不同的数据库和数据格式、不同的应用中抽取数据的过程。在这个过程中,首先需要结合业务需求确定抽取的字段,形成一张公共需求表头,并且每个省的数据库字段也应与这些需求字段形成一一映射关系。这样通过数据抽取所得到的数据都具有统一、规整的字段内容,为后续的数据转换和加载提供基础。

图2

在上图中可以观察到,虽然B省数据库中缺少“NodeB数量”、“单载频NodeB数量”、 “双载频NodeB数量”、 “三载频NodeB数量”信息,但这些信息能够较为重要,所以依然将这些字段包含在需求字段中,只是从B省抽取的数据中这些字段内容为空。

通过数据抽取,我们可以有效的解决刚才提到的问题1-3。但是需要特别说明的是,数据抽取并不仅仅是根据业务确定公共需求字段。更涉及到从不同类型的数据库(Oracle、Mysql、DB2、Vertica等)、不同类型的文件系统(Linux、Windows、HDFS)、以何种方式(数据库抽取、文件传输、流式)、何种频率(分钟、小时、天、周、月)、何种抽取方式(全量抽取、增量抽取)获取数据。所以具体的实现也包含了大量的工作和技术难点。

2.2 数据转换(Data Transformation)

数据转换就是处理抽取上来的数据中存在的不一致的过程。数据转换一般包括两类:

第一类:数据名称及格式的统一,即数据粒度转换、商务规则计算以及统一的命名、数据格式、计量单位等;针对问题4中的”厂商标识”字段,将取值统一为“华为、中兴、阿郎、诺西、爱立信”。这样就需要对A省的该字段取值“1,2,3,4,5”根据映射关系进行数据转换;而对于问题5中的”Iu接口配置带宽”字段,则将单位统一为Mbps,这样在对B省数据进行处理时,需要对取值除以1000000进行匹配。

第二类:数据仓库中存在源数据库中可能不存在的数据,因此需要进行字段的组合、分割或计算。以运营商获取的用户上网详单为例,需要根据用户上网内容和流量类型确定用户使用的业务类型(流媒体、即时通信、下载、浏览等),生成相应字段。并对单个用户在单个小区的各类型业务流量、次数、时间进行汇总统计

数据转换实际上还包含了数据清洗的工作,需要根据业务规则对异常数据进行清洗,保证后续分析结果的准确性。问题6中“RNC标识”为空的字段将会被清除。

2.3 数据加载(Data Loading)

数据装载的主要任务是将经过清洗后的干净的数据集按照物理数据模型定义的表结构装入目标数据仓库的数据表中,并允许人工干预,以及提供强大的错误报告、系统日志、数据备份与恢复功能。整个操作过程往往要跨网络、跨操作平台。在实际的工作中,数据加载需要结合使用的数据库系统(Oracle、Mysql、Spark、Impala等),确定最优的数据加载方案,节约CPU、硬盘IO和网络传输资源。

标签: #etl技术的定义