CN102999528B - 一种数据仓库中etl任务离线和数据清理的方法及装置 - Google Patents

一种数据仓库中etl任务离线和数据清理的方法及装置 Download PDF

Info

Publication number
CN102999528B
CN102999528B CN201110276287.7A CN201110276287A CN102999528B CN 102999528 B CN102999528 B CN 102999528B CN 201110276287 A CN201110276287 A CN 201110276287A CN 102999528 B CN102999528 B CN 102999528B
Authority
CN
China
Prior art keywords
data
database object
database
data warehouse
offline
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201110276287.7A
Other languages
English (en)
Other versions
CN102999528A (zh
Inventor
黄晓婧
曾春秋
孙伟光
吴伟
方建江
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201110276287.7A priority Critical patent/CN102999528B/zh
Publication of CN102999528A publication Critical patent/CN102999528A/zh
Application granted granted Critical
Publication of CN102999528B publication Critical patent/CN102999528B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供了一种数据仓库中ETL任务离线和数据清理的方法及装置。所述方法包括:获取数据仓库中各数据库对象的调用信息;根据所述数据库对象的调用信息,进行离线对应的ETL任务,和/或,清理对应的数据的操作。本申请可以提高数据仓库中ETL任务离线和数据清理的效率和准确率。

Description

一种数据仓库中ETL任务离线和数据清理的方法及装置
技术领域
本申请涉及数据仓库分析的技术领域,特别是涉及一种数据仓库中ETL任务离线和数据清理的方法,以及,一种数据仓库中ETL任务离线和数据清理的装置。
背景技术
数据仓库是一个独立的数据环境,通过抽取过程将数据从联机事务处理环境、外部数据源和脱机的数据存储介质导入到数据仓库中。它的目的是建立结构化的数据存储空间,将不同数据源的数据分离出来,形成统一、有效的数据集,并最终加工、整合成所需要的数据。
ETL(Extraction-Transformation-Loading)是数据抽取、清洗、转换和装载的过程。是构建数据仓库的重要一环,用户从数据库抽取出所需的数据,经过数据清洗,最终按照预先定义好的数据仓库模型,将数据加载到数据仓库中去。
随着成熟的数据仓库技术不断发展,当数据仓库投入使用以后,各业务部门的需求会越来越多,使用数据仓库中数据量的增长速度也会越来越快,历史数据的大量聚集给数据查询和存储成本带来极大的冲击,许多已经衰亡不再使用的应用所对应的ETL任务和数据由于没有合理的下线策略,导致ETL任务一直在执行,数据仍然存储在系统中并不断在增长,极大的浪费了数据仓库中有限的计算和存储资源,因此对于数据仓库的ETL任务离线管理和数据仓库数据清理日渐成为一个现实的技术问题亟待解决。
目前对ETL任务的离线和数据清理工作大多数情况是通过人为判断的,由数据仓库的开发人员与业务方沟通,由业务方确定哪些应用不再使用和关注,由数据仓库开发人员将应用对应的ETL任务和清理数据存 储,以完成ETL任务离线和数据清理工作。
以上现有技术存在的问题是:由于是与业务方确认,当业务方人员众多时,对每个应用进行复查,效率极低,同时可能会无法覆盖所有人员,在做ETL任务下线和数据清理时不可避免的会存在遗漏,也可能会存在将正在使用的应用错误下线,人工的感性判断没有理性数据支持,下线时准确性不高,人为误判断可能会导致不可预知错误。
因此,目前需要本领域技术人员迫切解决的一个技术问题就是:如何提供一种高效的数据仓库中ETL任务离线和数据清理的方法及装置。
发明内容
本申请所要解决的技术问题是提供一种数据仓库中ETL任务离线和数据清理的方法,用以提高数据仓库中ETL任务离线和数据清理的效率和准确率。
相应的,本申请还提供了数据仓库中ETL任务离线和数据清理的装置,用以保证上述方法在实际中的实现及应用。
为了解决上述问题,本申请公开了一种数据仓库中ETL任务离线和数据清理的方法,包括:
获取数据仓库中各数据库对象的调用信息;
根据所述数据库对象的调用信息,进行离线对应的ETL任务,和/或,清理对应的数据的操作。
优选的,所述数据库对象的调用信息为,数据仓库中访问所述数据库对象的SQL语句的信息。
优选的,所述获取数据仓库中各数据库对象的调用信息,包括:
提取数据仓库中运行的SQL语句;
从数据仓库的SQL语句中解析出数据库对象的信息;
提取所述各数据库对象所对应的SQL语句的信息。
优选的,所述提取数据仓库中运行的SQL语句的步骤包括:
提取调度系统中的ETL任务记录日志中记录的SQL语句;
和/或,提取数据查询系统中的query日志中记录的SQL语句;
和/或,利用数据库系统中的捕获SQL运行功能获取数据仓库中运行的SQL语句。
优选的,所述从数据仓库的SQL语句中解析出数据库对象的信息的步骤包括:
解析数据仓库的SQL语句,获得数据库对象和数据库系统对象;
去除所述数据库系统对象,和/或,保留所述数据库对象。
优选的,所述数据库对象的SQL语句的信息包括调用对象和调用程序,所述根据数据库对象的调用信息,进行离线对应的ETL任务,和/或,清理对应的数据的操作的步骤包括:
若所述数据库对象的调用对象为非目标对象,且对应的调用程序为目标程序,则将所述数据库对象添加到预置的备选清单;
对预置的备选清单中的数据库对象,进行离线对应的ETL任务,和/或清理对应的数据的操作。
优选的,所述数据库对象的SQL语句的信息包括调用次数,所述根据数据库对象的调用信息,进行离线对应的ETL任务,和/或,清理对应的数据的操作的步骤包括:
若数据库对象在预设时间段内的使用次数为零,则针对该数据库对象,进行离线对应的ETL任务,和/或清理对应的数据的操作。
优选的,所述数据库对象的SQL语句的信息包括调用次数、调用对象和调用程序,所述根据数据库对象的调用信息,进行离线对应的ETL任务,和/或,清理对应的数据的操作的步骤包括:
若所述数据库对象的调用对象包括目标对象和非目标对象,且目标对象在预设时间段内对数据库库对象的调用次数小于预设阈值,且非目标对象对应的调用程序为目标程序,则将所述数据库对象添加到预置的备选清单;
对预置的备选清单数据库对象,进行离线对应的ETL任务,和/或清理对应的数据的操作。
优选的,所述目标对象为外部系统,所述非目标对象为数据仓库内部的调度系统,所述目标程序为数据库对象的生成程序。
优选的,所述对预置的备选清单数据库对象,进行离线对应的ETL任务,和/或清理对应的数据的操作的步骤包括:
确定所述备选清单中需要清除的数据库对象;
将所述需要清除的数据库对象进行离线对应的ETL任务,和/或清理对应的数据的操作。
本申请还提供了一种数据仓库中ETL任务离线和数据清理的装置,包括:
调用信息获取模块,用于获取数据仓库中各数据库对象的调用信息;
处理模块,用于根据所述数据库对象的调用信息,进行离线对应的ETL任务,和/或,清理对应的数据的操作。
与现有技术相比,本申请包括以下优点:
本申请通过解析访问数据仓库中数据库对象的SQL语句,获知数据库对象的调用信息,调用信息包括了数据库对象的调用次数和调用对象,以此为依据为庞大的数据仓库系统合理“瘦身”,去除掉没有使用价值的ETL任务和数据,从而节省了系统计算和存储资源,提高了系统性能,节约了数据仓库成本。
同时以数据库对象的调用情况为依据对相应的应用进行清理使得数据仓库ETL任务离线和数据清理工作变得有据可依,降低了人为因素,用数据说话,极大提高了数据仓库“瘦身”工作的准确性。此外,在对调用信息进行分析后,将备选的清理对象与业务方进行沟通,降低了需要与业务方沟通、确认的应用数量,提高了工作效率。
附图说明
图1是本申请的一种数据仓库中ETL任务离线和数据清理的方法实施例的流程图;
图2是本申请的一种数据仓库中ETL任务离线和数据清理的装置实施例的结构框图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请作进一步详细的说明。
ETL是数据仓库对数据库对象进行抽取、清洗、转换和装载的过程,数据仓库中数据量快速增长使得数据查询和存储成本不断增长,许多已经衰亡不再使用的应用所对应的ETL任务和数据由于没有合理的下线策略,极大的浪费了数据仓库中有限的计算和存储资源。现有技术中采用人工进行ETL任务离线和数据清理工作,存在效率和准确率低下的问题。
本申请实施例的核心构思之一在于,获取数据仓库中各数据库对象的调用信息,并依据所述数据库对象的调用信息,进行离线对应的ETL任务,和/或,清理对应的数据的操作。
参考图1,示出了本申请的一种数据仓库中ETL任务离线和数据清理的方法实施例的流程图,具体可以包括以下步骤:
步骤101、获取数据仓库中各数据库对象的调用信息。
数据仓库中的数据是对原有分散的数据库数据进行加工得到的,其中的数据库对象包括了最基本的表和视图,以及约束、序列、函数、存储过程、包、触发器等。
在本申请的一种优选的实施例中,所述数据库对象的调用信息可以为,数据仓库中访问所述数据库对象的SQL语句的信息。SQL(Structured Query Language)即结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统,通过SQL语句可以获知数据库对象的被访问的信息。
在具体的实现中,所述步骤101可以包括:
子步骤S11、提取数据仓库中运行的SQL语句;
在具体的实现中,通过对调度系统中的ETL任务记录日志、记录即席查询系统的Query日志,打开数据库系统中的捕获SQL运行功能方法收集在数据仓库中所有运行的SQL语句,在此之前可以先整理出数据仓库中所有能够调用到数据库中对象的系统,如调度系统、报表系统、即席查询系统、数据输出系统等。
在本申请的一种优选的实施例中,所述子步骤S11可以包括:
子步骤S11-1、提取调度系统中的ETL任务记录日志中记录的SQL语句。ETL任务记录日志通过在ETL代码中设置变量参数,将代码中每段执行的SQL语句都存储在变量中,待SQL语句执行成功后,将此变量的值写到数据库中,这样以来ETL代码中每段成功执行的SQL就能被记录下来。
和/或,子步骤S11-2、提取数据查询系统中的Query日志中记录的SQL语句。
例如,用户所有的Query命令都必须在类似Oracle的SQL*PLUS客户端执行,利用客户端的自带功能将用户的所有Query命令都进行记录。
和/或,子步骤S11-3、利用数据库系统中的捕获SQL运行功能获取数据仓库中运行的SQL语句。
打开数据库系统中的捕获SQL运行功能,如开启Oracle数据库中的审计功能,监控所有的select、delete、insert语句,同时将控制触发审计动作选项设置为by access,这样对每个Session中发生的每次操作都能被记录。
以上三种收集SQL语句的方法可以依据实际系统情况灵活搭配,可以选择同时进行收集,也可以通过几种方法组合收集。如若选用了开启数据库审计功能,就足够记录所有在数据库中运行的所有SQL,那么就可以只选择方法三即可;若开启数据库审计功能对系统性能消耗较大,那么可以采用方法一和方法二配合进行SQL收集工作。收集完成后,将收集到的所有SQL都存储在数据库中,以供后续分析所用。
子步骤S12、从数据仓库的SQL语句中解析出数据库对象的信息。
在本申请的一种优选的实施例中,所述子步骤S12可以包括:
子步骤S12-1、解析数据仓库的SQL语句,获得数据库对象和数据库系统对象。
在具体的实现中,可以采用SQL解析程序对SQL语句进行解析,如下例:
提取的SQL语句为:
INSERT INTO adl.cn_kms_offer_subject_split_fdt0
(stat_date,offer_id,offer_subject,member_id,split_kw_type,offer_split_kw)
SELECT b.stat_date,b.offer_id,b.offer_subject,b.member_id,b.split_kw_type,b.offer_split_kw,e.rowid
from idl.cn_offer_basic_fdt0 b
INNER JOIN idl.cn_member_tp_udt0 c
ON(b.member_id=c.member_id AND c.is_tp=′Y′)
LEFT OUTER JOIN tdl.cn_kms_offer_subject_split_fdt0_tmp0 d
ON(b.offer_id=d.offer_id)
LEFT OUTER JOIN(SELECT to_char(sysdate,′yyyymmdd′)ASstat_date,rowidFROM DUAL)e
ON a.stat_date=e.stat_date
WHERE b.stat_date=CAST(′20110615′AS DATE)-1 AND d.offer_idIS NULL
经过解析程序解析后可以得到如下数据库对象:
adl.cn_kms_offer_subject_split_fdt0
adl.cn_offer_basic_fdt0
tdl.cn_kms_offer_subject_split_fdt0_tmp0
数据库系统对象为:DUAL。
子步骤S12-2、去除所述数据库系统对象,和/或,保留所述数据库对象。
SQL语句的访问对象包括了数据库对象和数据库系统对象,数据库系 统对象不是任务离线的对象,即使某个系统对象被访问频率低,为保证数据库正常运行不可能将其离线并做数据清理,因此在解析SQL的过程中需要排除数据库系统对象,从而减少后续的分析结果集,并且使得分析结果更精准,如上例中,可以去除数据库系统对象DUAL,和/或,保留解析出来的三个数据库对象。
子步骤S13、提取所述各数据库对象所对应的SQL语句的信息。
通过SQL解析程序获得出数据库对象后,同时需记录访问各个数据库对象的SQL语句,根据这些SQL语句可以获知数据库对象在什么时间,被哪些系统和程序访问过等信息。
例如,由上例SQL语句的解析结果可知,数据库对象tdl.cn_kms_offer_subject_split_fdt0_tmp0表在2011年1月1日被数据仓库内部调度系统的cn_kms_offer_subject_split_fdt0.pl程序调用过,操作类型为fromClause。数据库对象adl.cn_kms_offer_subject_split_fdt0表在2011年1月2日被数据仓库内部调度系统的cn_kms_offer_subject_split_fdt0.pl程序调用过,操作类型为insertClause。
步骤102、根据所述数据库对象的调用信息,进行离线对应的ETL任务,和/或,清理对应的数据的操作。
在本申请的一种优选的实施例中,所述数据库对象的SQL语句的信息可以包括调用对象和调用程序,所述步骤102可以包括:
子步骤S21、若所述数据库对象的调用对象为非目标对象,且对应的调用程序为目标程序,则将所述数据库对象添加到预置的备选清单。
在上面的步骤中,通过各个数据库对象分别对应的SQL语句,已得知数据库对象被调用的系统,若该系统为非目标对象,则将其添加到备选清单。
在具体的实现中,所述非目标对象可以为数据仓库内部的调度系统,所述目标程序可以为数据库对象的生成程序,生成程序可以理解为该程序对数据库对象只有insert操作,没有from操作。
数据仓库对象仅被数据仓库内部的ETL调度系统调用,没有数据输出系统、报表系统、数据查询系统等后续系统调用。这种情况下,并且调用程序为其对应的生成程序,在这种情况下可以认为该数据库对象可以认为是调度系统中的叶子节点,。可以添加到预置的备选清单,接下来考虑对其对应的ETL任务和数据进行清理。
例如,在上面的SQL语句解析后,提取数据库对象adl.cn_kms_offer_subject_split_fdt0表的调用信息后,得知该数据库的调用系统只有数据仓库内部的调度系统,调用程序只有cn_kms_offer_subject_split_fdt0.pl。该程序对该表的操作只有insert操作,没有from操作,因此调用程序为其生成程序,因此可以认为该表为调度系统的叶子及节点,可以填加到备选清单。
子步骤S22、对预置的备选清单中的数据库对象,进行离线对应的ETL任务,和/或清理对应的数据的操作。
数据仓库中的各个数据库对象有相应的ETL任务和相应的数据,若该数据库对象的调用信息符合以上条件,就需要清理其所对应的ETL任务和数据。对应上述步骤中作为调度系统的叶子节点的数据库对象,ETL任务离线是指从数据仓库调度系统中将此数据库对象的刷新程序删除。同时还需清理该数据库对象所对应的数据,释放此数据库对象在数据库中占用的存储空间。
在本申请的一种优选的实施例中,所述数据库对象的SQL语句的信息可以包括调用次数,所述步骤102可以包括:
子步骤S31、若数据库对象在预设时间段内的使用次数为零,则针对该数据库对象,进行离线对应的ETL任务,和/或清理对应的数据的操作。
根据要统计的时间段选择需要进行统计的起始和截止日期,若在该时间段内数据库对象的调用次数为零,即没有被调度系统(内部系统)、数据输出系统、报表系统(外部系统)、数据查询系统(外部系统)等任意一个系统调用过的,这类数据仓库对象就是不再使用,可以添加到预 置的备选清单中,然后进行离线对应的ETL任务,和/或清理对应的数据的操作。由于没有被调度系统调用,因此该数据库对象没有对应的ETL任务,可以直接将其对应数据清理。
在本申请的一种优选的实施例中,所述数据库对象的SQL语句的信息可以包括调用次数、调用对象和调用程序,所述步骤102可以包括:
子步骤S41、若所述数据库对象的调用对象包括目标对象和非目标对象,且目标对象在预设时间段内对数据库库对象的调用次数小于预设阈值,且非目标对象对应的调用程序为目标程序,则将所述数据库对象添加到预置的备选清单。
子步骤S42、对预置的备选清单数据库对象,进行离线对应的ETL任务,和/或清理对应的数据的操作。
在具体的实现中,所述目标对象可以为外部系统,所述外部系统可以包括数据仓库外部数据输出系统、报表系统和数据查询系统。在本优选实施例中,若数据库对象的调用对象包括了外部系统,并且,外部系统在预设时间段内对该数据库对象的调用次数小于预设阈值,并且,调度系统对应的调用的程序为对应的生成程序,则可以添加到备选清单中。
例如,预设时间段为2011年1月1日至2011年6月30日,预设阈值为5次,原SQL语句为:
insert into bdl.ast_cn_p4p_plan_offer
(plan_offer_id,b2b_offer_id,b2b_offer_flag,plan_id,title,expire_time)
selecta.planofferid,b.b2bofferid,a.b2bofferflag,b.planid,a.title,a.expiretime
from odl.c05_q_planoffer a
left outer join tdl.ast_cn_p4p_plan_offer_tmp0 b
on a.planofferid=b.plan_offer_id
where b.plan_offer_id is null
selectplan_offer_id,b2b_offer_id,b2b_offer_flag,plan_id,title,expire_time frombdl.ast_cn_p4p_plan_offer
利用解析程序对其进行解析后,由bdl.ast_cn_p4p_plan_offer表对应的SQL语句的信息可知,在此时间段内,数据仓库内部的调度系统调用过该表,并且对应的调用程序为生成程序,即调用程序对该表的操作只有insert操作,没有from操作;同时,数据库外部报表系统对该表的调用次数为1次,小于预设阈值5次,由此可以判断该表满足以上条件,可以将其添加到备选清单中。在备选清单中可以对数据库对象按照调用次数的多少进行排序,如按照调用次数的升序排序。
在具体的实现中,所述对预置的备选清单数据库对象,进行离线对应的ETL任务,和/或清理对应的数据的操作的步骤可以通过以下步骤实现:
确定所述备选清单中需要清除的数据库对象;
将所述需要清除的数据库对象进行离线对应的ETL任务,和/或清理对应的数据的操作。
以上将备选的数据库对象加入清单后,需要再仔细分析下各个数据库对象的调用情况,同时与业务方进行沟通,从而确认需要下线的数据库对象,然后对该对象所对应的ETL任务和数据进行清理。
本申请的方案可以包括三个层次,提取数据仓库中的SQL语句处于整个方案框架里的基础数据层;从数据仓库的SQL语句中解析出数据库对象的信息以及提取访问所述数据库对象的SQL语句的信息处于整个方案框架的算法层;将符合条件的数据库对象添加到预置的备选清单,并对相应的ETL任务和数据进行清理处于整个方案框架的应用层。
综上所述,本申请提供了一种数据仓库中ETL任务离线和数据清理的方法,通过解析访问数据仓库中数据库对象的SQL语句,获知数据库 对象的调用信息,调用信息包括了数据库对象的调用次数和调用对象,以此为依据为庞大的数据仓库系统合理“瘦身”,去除掉没有使用价值的ETL任务和数据,从而节省了系统计算和存储资源,提高了系统性能,节约了数据仓库成本。
同时以数据库对象的调用情况为依据对相应的应用进行清理使得数据仓库ETL任务离线和数据清理工作变得有据可依,降低了人为因素,用数据说话,极大提高了数据仓库“瘦身”工作的准确性。此外,在对调用信息进行分析后,将备选的清理对象与业务方进行沟通,降低了需要与业务方沟通、确认的应用数量,提高了工作效率。
对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
参考图2,示出了本申请的一种数据仓库中ETL任务离线和数据清理的装置实施例的结构框图,具体可以包括以下模块:
调用信息获取模块201,用于获取数据仓库中各数据库对象的调用信息;
处理模块202,用于根据所述数据库对象的调用信息,进行离线对应的ETL任务,和/或,清理对应的数据的操作。
在本申请的一种优选的实施例中,所述数据库对象的调用信息可以为,数据仓库中访问所述数据库对象的SQL语句的信息。
在本申请的一种优选的实施例中,所述调用信息获取模块201可以包括:
SQL语句提取子模块,用于提取数据仓库中运行的SQL语句;
SQL语句解析子模块,用于从数据仓库的SQL语句中解析出数据库对 象的信息;
信息提取子模块,用于提取所述各数据库对象所对应的SQL语句的信息。
在本申请的一种优选的实施例中,所述SQL语句提取子模块可以包括:
调度系统提取子模块,用于提取调度系统中的ETL任务记录日志中记录的SQL语句;
和/或,数据查询系统提取子模块,用于提取数据查询系统中的query日志中记录的SQL语句;
和/或,SQL语句捕获子模块,用于利用数据库系统中的捕获SQL运行功能获取数据仓库中运行的SQL语句。
在本申请的一种优选的实施例中,所述SQL语句解析子模块可以包括:
解析结果获取子模块,用于解析数据仓库的SQL语句,获得数据库对象和数据库系统对象;
数据库对象获取子模块,用于去除所述数据库系统对象,和/或,保留所述数据库对象。
在本申请的一种优选的实施例中,所述数据库对象的SQL语句的信息可以包括调用对象和调用程序,所述处理模块202可以包括:
第一添加子模块,用于若所述数据库对象的调用对象为非目标对象,且对应的调用程序为目标程序,则将所述数据库对象添加到预置的备选清单;
第一处理子模块,用于对预置的备选清单中的数据库对象,进行离线对应的ETL任务,和/或清理对应的数据的操作。
在本申请的一种优选的实施例中,所述数据库对象的SQL语句的信息还可以包括调用次数,所述处理模块202还可以包括:
第二处理子模块,用于若数据库对象在预设时间段内的使用次数为零,则针对该数据库对象,进行离线对应的ETL任务,和/或清理对应的 数据的操作。
在本申请的一种优选的实施例中,所述数据库对象的SQL语句的信息可以包括调用次数、调用对象和调用程序,所述处理模块可以包括:
第二添加子模块,用于若所述数据库对象的调用对象包括目标对象和非目标对象,且目标对象在预设时间段内对数据库库对象的调用次数小于预设阈值,且非目标对象对应的调用程序为目标程序,则将所述数据库对象添加到预置的备选清单;
第三处理子模块,用于对预置的备选清单数据库对象,进行离线对应的ETL任务,和/或清理对应的数据的操作。
在具体的实现中,所述目标对象可以为外部系统,所述非目标对象可以为数据仓库内部的调度系统,所述目标程序可以为数据库对象的生成程序。
由于所述装置实施例基本相应于前述图1所示的方法实施例,故本实施例的描述中未详尽之处,可以参见前述实施例中的相关说明,在此就不赘述了。
本申请可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他 性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本申请所提供的一种数据仓库中ETL任务离线和数据清理的方法,以及,一种数据仓库中ETL任务离线和数据清理的装置进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (10)

1.一种数据仓库中ETL任务离线和数据清理的方法,其特征在于,包括:
获取数据仓库中各数据库对象的调用信息;所述数据库对象的调用信息为,数据仓库中访问所述数据库对象的SQL语句的信息;其中,所述数据库对象的SQL语句的信息包括调用次数、所述数据库对象的调用对象;
根据所述数据库对象的调用信息,进行离线对应的ETL任务,和/或,清理对应的数据的操作;其中所述数据库对象的调用对象包括数据仓库的内部调度系统。
2.根据权利要求1所述的方法,其特征在于,所述获取数据仓库中各数据库对象的调用信息,包括:
提取数据仓库中运行的SQL语句;
从数据仓库的SQL语句中解析出数据库对象的信息;
提取所述各数据库对象所对应的SQL语句的信息。
3.根据权利要求2所述的方法,其特征在于,所述提取数据仓库中运行的SQL语句的步骤包括:
提取调度系统中的ETL任务记录日志中记录的SQL语句;
和/或,提取数据查询系统中的query日志中记录的SQL语句;
和/或,利用数据库系统中的捕获SQL运行功能获取数据仓库中运行的SQL语句。
4.根据权利要求2所述的方法,其特征在于,所述从数据仓库的SQL语句中解析出数据库对象的信息的步骤包括:
解析数据仓库的SQL语句,获得数据库对象和数据库系统对象;
去除所述数据库系统对象,和/或,保留所述数据库对象。
5.根据权利要求4所述的方法,其特征在于,所述数据库对象的SQL语句的信息包括调用对象和调用程序,所述根据数据库对象的调用信息,进行离线对应的ETL任务,和/或,清理对应的数据的操作的步骤包括:
若所述数据库对象的调用对象为非目标对象,且对应的调用程序为目标程序,则将所述数据库对象添加到预置的备选清单;
对预置的备选清单中的数据库对象,进行离线对应的ETL任务,和/或清理对应的数据的操作。
6.根据权利要求4所述的方法,其特征在于,所述根据数据库对象的调用信息,进行离线对应的ETL任务,和/或,清理对应的数据的操作的步骤包括:
若数据库对象在预设时间段内的使用次数为零,则针对该数据库对象,进行离线对应的ETL任务,和/或清理对应的数据的操作。
7.根据权利要求4所述的方法,其特征在于,所述数据库对象的SQL语句的信息还包括调用对象和调用程序,所述根据数据库对象的调用信息,进行离线对应的ETL任务,和/或,清理对应的数据的操作的步骤包括:
若所述数据库对象的调用对象包括目标对象和非目标对象,且目标对象在预设时间段内对数据库库对象的调用次数小于预设阈值,且非目标对象对应的调用程序为目标程序,则将所述数据库对象添加到预置的备选清单;
对预置的备选清单数据库对象,进行离线对应的ETL任务,和/或清理对应的数据的操作。
8.根据权利要求5所述的方法,其特征在于,所述目标对象为外部系统,所述非目标对象为数据仓库内部的调度系统,所述目标程序为数据库对象的生成程序。
9.根据权利要求5或7所述的方法,其特征在于,所述对预置的备选清单数据库对象,进行离线对应的ETL任务,和/或清理对应的数据的操作的步骤包括:
确定所述备选清单中需要清除的数据库对象;
将所述需要清除的数据库对象进行离线对应的ETL任务,和/或清理对应的数据的操作。
10.一种数据仓库中ETL任务离线和数据清理的装置,其特征在于,包括:
调用信息获取模块,用于获取数据仓库中各数据库对象的调用信息;所述数据库对象的调用信息为,数据仓库中访问所述数据库对象的SQL语句的信息;其中,所述数据库对象的SQL语句的信息包括调用次数、所述数据库对象的调用对象;
处理模块,用于根据所述数据库对象的调用信息,进行离线对应的ETL任务,和/或,清理对应的数据的操作;其中所述数据库对象的调用对象包括数据仓库的内部调度系统。
CN201110276287.7A 2011-09-16 2011-09-16 一种数据仓库中etl任务离线和数据清理的方法及装置 Active CN102999528B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110276287.7A CN102999528B (zh) 2011-09-16 2011-09-16 一种数据仓库中etl任务离线和数据清理的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110276287.7A CN102999528B (zh) 2011-09-16 2011-09-16 一种数据仓库中etl任务离线和数据清理的方法及装置

Publications (2)

Publication Number Publication Date
CN102999528A CN102999528A (zh) 2013-03-27
CN102999528B true CN102999528B (zh) 2017-11-14

Family

ID=47928102

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110276287.7A Active CN102999528B (zh) 2011-09-16 2011-09-16 一种数据仓库中etl任务离线和数据清理的方法及装置

Country Status (1)

Country Link
CN (1) CN102999528B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104036001B (zh) * 2014-06-13 2017-05-10 上海新炬网络信息技术有限公司 基于热表动态优先调度的数据快速清理方法
CN105740069B (zh) * 2016-01-29 2021-09-21 中国电力科学研究院 一种多级数据转化任务的自动调度方法
CN107180053B (zh) * 2016-03-11 2020-10-20 中国移动通信集团河北有限公司 一种数据仓库优化方法和装置
CN107301186B (zh) * 2016-04-15 2020-10-09 中国移动通信集团重庆有限公司 一种无效数据的识别方法及装置
CN106126224A (zh) * 2016-06-21 2016-11-16 浪潮软件集团有限公司 一种生成程序对象的工具、系统和方法
CN108228708B (zh) * 2017-11-29 2020-08-11 贝壳找房(北京)科技有限公司 大数据etl系统及其调度方法
CN108897818B (zh) * 2018-06-20 2020-12-01 北京三快在线科技有限公司 确定数据处理过程老化状态的方法、装置及可读存储介质
CN111881134A (zh) * 2020-07-25 2020-11-03 深圳市维度统计咨询股份有限公司 一种数据仓库管理方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1373870A (zh) * 1999-07-14 2002-10-09 艾利森公司 软件数据对象的版本维护

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1373870A (zh) * 1999-07-14 2002-10-09 艾利森公司 软件数据对象的版本维护

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
《基于ETL的数据仓库ODS数据查询》;李宝林;《江西科学》;20101231;第28卷(第6期);第844-848页 *

Also Published As

Publication number Publication date
CN102999528A (zh) 2013-03-27

Similar Documents

Publication Publication Date Title
CN102999528B (zh) 一种数据仓库中etl任务离线和数据清理的方法及装置
CN107103064B (zh) 数据统计方法及装置
CN108280084A (zh) 一种数据仓库的构建方法、系统及服务器
CN102624865B (zh) 集群负载预测方法及分布式集群管理系统
CN106202566A (zh) 一种基于大数据的海量用电数据混合存储系统及方法
CN105657039A (zh) 一种基于大数据的电厂设备故障快速定位系统和方法
CN103942210A (zh) 海量日志信息的处理方法、装置与系统
CN108038239A (zh) 一种异构数据源规范化处理方法、装置及服务器
CN104376365A (zh) 一种基于关联规则挖掘的信息系统运行规则库的构造方法
CN109656963A (zh) 元数据获取方法、装置、设备及计算机可读存储介质
CN112527774A (zh) 数据中台搭建方法、系统及存储介质
US9569722B2 (en) Optimal persistence of a business process
Simitsis Modeling and managing ETL processes.
CN102663543A (zh) 一种用于企业数据统一平台的调度系统
CN102609789A (zh) 图书馆信息监控与异常预测系统
CN111489135A (zh) 一种稽核数据的分析管理系统及方法
CN103258047B (zh) 一种面向药企作业成本控制数据仓库的数据组织方法
CN104978405A (zh) 人误数据加工处理方法及系统
CN102622367B (zh) 流程数据的过滤和压缩方法
Talib et al. A multi-agent framework for data extraction, transformation and loading in data warehouse
CN111798311A (zh) 基于大数据的银行风险分析库平台、搭建方法及可读介质
CN107066366B (zh) 面向物联网的复杂事件处理引擎状态监控与灾难恢复方法
Almuammar et al. Pattern discovery from dynamic data streams using frequent pattern mining with multi-support thresholds
CN113743695A (zh) 基于大数据的国际工程项目投标报价风险管理方法
Dospinescu et al. Physical integration of heterogeneous web based data

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1178292

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1178292

Country of ref document: HK