CN108694195B - 一种分布式数据仓库的管理方法及系统 - Google Patents
一种分布式数据仓库的管理方法及系统 Download PDFInfo
- Publication number
- CN108694195B CN108694195B CN201710228031.6A CN201710228031A CN108694195B CN 108694195 B CN108694195 B CN 108694195B CN 201710228031 A CN201710228031 A CN 201710228031A CN 108694195 B CN108694195 B CN 108694195B
- Authority
- CN
- China
- Prior art keywords
- data
- relationship
- task
- information
- chain
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种分布式数据仓库的管理方法和系统。该方法包括:设置血缘关系数据库,用于存储数据处理任务与数据仓库中的数据之间的血缘关系;获得所述数据仓库在把数据处理任务的代码转换为数据处理作业时得到的任务与数据的访问关系;从所述访问关系中提取出符合预设规则的数据信息和任务信息,将所述数据信息和所述任务信息存储到所述血缘关系数据库中的关系链中;根据所述血缘关系数据库中的关系链对所述数据仓库中的数据进行管理。本申请的方案可以获得准确的分布式数据仓库中数据和任务的血缘关系,利用该血缘关系进行数据仓库的管理可以提高数据仓库的工作效率。
Description
技术领域
本申请涉及数据处理技术,特别涉及一种分布式数据仓库的管理方法及系统。
背景技术
分布式数据仓库一般包括一个或多个集群。集群中有大量的计算设备,计算设备主要完成数据存储和数据计算。使用集群可以解决单个设备的硬件瓶颈,分担运算负担,实现数据的快速运算。分布式数据仓库可以存储海量的数据,这些数据可能来自不同的业务、不同的地区,对应不同的客户,需要经过不同的数据处理。为了管理海量的数据,需要掌握各数据处理任务与数据、数据与数据、任务与任务之间的血缘关系,并据此进行数据的存储规划和任务的调度,提高数据处理效率。目前,一般通过对任务的源代码进行分析来获得任务和数据的血缘关系。
申请内容
本申请实施例提供了一种分布式数据仓库的管理方法和系统,可以准确地提取任务与数据的血缘关系,并据此对数据仓库中的数据进行管理。
本申请实施例的分布式数据仓库的管理方法可以包括:
设置血缘关系数据库,用于存储数据处理任务与数据仓库中的数据之间的血缘关系;
获得所述数据仓库在把数据处理任务的代码转换为数据处理作业时得到的任务与数据的访问关系;
从所述访问关系中提取出符合预设规则的数据信息和任务信息,将所述数据信息和所述任务信息存储到所述血缘关系数据库中的关系链中;
根据所述血缘关系数据库中的关系链对所述数据仓库中的数据进行管理。
本申请实施例的分布式数据仓库的管理系统可以包括:
血缘关系数据库,用于存储任务与数据仓库中的数据之间的血缘关系;
采集装置,用于获得数据仓库在把数据处理任务的代码转换为数据处理作业时得到的任务与数据的访问关系;从所述访问关系中提取出符合预设规则的数据信息与任务信息,将所述数据信息和所述任务信息存储到所述血缘关系数据库中的关系链中;
其中,所述血缘关系数据库中的关系链用于对所述数据仓库中的数据进行管理。
本申请实施例可以获得准确的分布式数据仓库中数据和任务的血缘关系,利用该血缘关系进行数据仓库的管理可以提高数据仓库的工作效率。
附图说明
图1为本申请实施例的一种分布式数据仓库的管理方法;
图2为本申请实施例的一种提供推送信息的系统的示意图;
图3a、3b分别为本申请实施例的数据仓库以及管理系统的示意图;
图4为本申请实施例的一种数据仓库管理方法的流程图;
图5a为描述一个关系链的无向图的示意图;
图5b为拆分关系链的示意图;
图5c为一个关系链的示意图;
图5d为图5c的关系链中任务之间依赖关系的示意图;
图5e为将图5c的关系链拆分得到的两条关系链的示意图;
图5f为图5e的关系链中任务之间依赖关系的示意图;
图6为本申请实施例的一种分布式数据仓库的管理系统的示意图;
图7为本申请实施例的一种分布式数据仓库的管理系统的示意图;
图8为本申请实施例的一种数据仓库的管理系统的示意图;
图9为利用元数据控制复写数据的示意图。
具体实施方式
为了描述上的简洁和直观,下文通过描述若干代表性的实施例来对本申请的方案进行阐述。实施例中大量的细节仅用于帮助理解本申请的方案,本申请的技术方案实现时可以不局限于这些细节。为了避免不必要地模糊了本申请的方案,一些实施方式没有进行细致地描述,而是仅给出了框架。下文中,“包括”是指“包括但不限于”,“根据……”是指“至少根据……,但不限于仅根据……”,应当解释为除了之后提到的特征外,其它特征也可以存在。
图1为本申请实施例的一种分布式数据仓库的管理方法。如图1所示,该方法10可以包括以下步骤。
步骤S11,设置血缘关系数据库,用于存储数据处理任务与数据仓库中的数据之间的血缘关系。
步骤S12,获得所述数据仓库在把数据处理任务的代码转换为数据处理作业时得到的任务与数据的访问关系。
步骤S13,从所述访问关系中提取出符合预设规则的数据信息和任务信息,将所述数据信息和所述任务信息存储到所述血缘关系数据库中的关系链中。
步骤S14,根据所述血缘关系数据库中的关系链对所述数据仓库中的数据进行管理。
本申请实施例可以获得准确的分布式数据仓库中数据和任务的血缘关系,利用该血缘关系进行数据仓库的管理可以提高数据仓库的工作效率。
本申请可适用于各种分布式数据仓库,例如基于Hadoop的数据仓库、基于Yarn的数据仓库,等。
数据处理任务(或简称任务)是指针对数据仓库中的数据执行的某种操作或行为,通常用于对原始数据进行加工并产生对用户有价值的结果数据。任务可以由计算机语言编写,例如SQL或者类SQL语言、Pig Latin、spark scala、java,等。数据仓库可以利用任务解析模块将任务的代码转换为数据处理作业。例如,当采用MapReduce计算框架时,可以使用Hive(是基于Hadoop的一个数据仓库工具)将SQL语句转换为MapReduce作业,并提交到数据仓库中的作业控制模块,作业控制模块控制多个节点来完成该作业。其它的计算框架如SPARK、PIG等也需要将各自的作业提交给作业控制模块。在将任务代码转换为数据处理作业的过程中可以得到该任务与数据的访问关系。该访问关系可以从任务解析模块(例如Hive,或Spark、Pig计算框架中相应的模块)获得,也可以从作业控制模块(例如Hadoop中的Job Tracker、Yarn中的Application Master或Application Manager,Spark的Master等)获得。
一些例子中,可以从预定的配置文件读取所述访问关系,其中,所述访问关系由所述数据仓库写入所述配置文件。例如,可以对数据仓库的任务解析模块进行修改,让它在把任务代码转换为作业时,把输入数据、任务、及输出数据的信息写入配置文件。任务代码可以是SQL或者类SQL语言、Pig Latin、spark scala、java等语言编写的脚本。任务解析模块可以是MapReduce计算框架中的Hive,或其它计算框架(如Spark、PIG、Hermes、GraphX、MLLib、Caffe、TensorFlow等)中相应的模块。又例如,可以对数据仓库的作业控制模块进行设置,让它在启动作业时,将把输入数据、任务、及输出数据的信息写入配置文件。作业控制模块可以是Hadoop的Job Tracker,Yarn的Application Master或Application Manager,Spark的Driver,等。
一些例子中,可以接收所述作业控制设备通过调用预定的接口传递来的所述访问关系。可以利用分布式的实时采集和实时计算的框架(如Spark stream或者kafka)来收集访问关系。例如,可以修改任务解析逻辑,增加调用实时采集功能的API,任务解析逻辑通过调用API把访问关系实时传递给实时采集功能。
血缘关系是指数据与数据之间、任务与任务之间,数据与任务之间的数据传递关系。例如,任务与其输入数据和输出数据之间具有数据调用关系,数据与数据之间可以具有父子关系(例如数据A经过计算得到数据B,数据A就是数据B的父数据),任务与任务之间可以具有依赖关系(例如任务A的输入数据是任务B的输出数据,则任务A就依赖于任务B)。
各种任务和各数据之间的血缘关系可以形成链条,称为关系链。简单的关系链可以只包括一个任务和一个数据的关系,可以是(数据信息、任务信息)的形式。复杂的关系链则可能由大量的较小的关系链连接而成。例如,某任务的输入数据和输出数据、以及与该输入数据和输出数据有关的任务及其输入/输出数据可以连接在一起形成一个关系链,并且还可以连接更多的血缘关系并不断扩张。血缘关系数据库可以存储一个或多个关系链。
关系链中包括从访问关系中提取出的数据信息和任务信息。访问关系可以包括任务和数据的详细信息,其中可能有一些不必要的信息。例如,访问关系中的任务可以由任务ID指示,如“161125110540944”,数据可以由该数据的存储路径来指示,例如“hdfs://some_cluster/hive_root_dir/some_db.db/some_table/yyyymmdd”。因此,在保存到关系链中时,需要对原始获得的访问关系进行预处理,以抽取其中感兴趣的部分,这个过程也叫作清洗。
一些例子中,可以从访问关系中提取所述数据在数据仓库的文件系统中所属的数据对象的标识作为所述数据信息。访问关系中的数据信息可以是前缀/库名/表名/分区表的形式。例如,预设的规则可以是提取数据表的标识,则可以提取出该数据所述的数据表的标识作为提取出的数据信息。在上面的例子中,可以从访问关系中提取数据所属的数据表的库名和表名作为数据信息,记录格式可以是“库名::表名”,如“some_db::some_table”。数据仓库中的元数据中记录有这个表存放的目录,即“hdfs://some_cluster/hive_root_dir/some_db.db/some_table/”。“hdfs://some_cluster”是集群的前缀,数据仓库中的元数据中记录有这个前缀对应的集群位于哪个互联网数据中心(Internet Data Center,IDC)中。关系链中只保存了“some_db::some_table”作为数据信息,以及“20161125110540944”作为任务信息。
另一些例子中,可以从访问关系中提取所述数据在所述数据仓库的文件系统中预定级别的存储路径作为所述数据信息。例如,访问关系中的数据信息可以是“前缀/目录1/目录2/yyyy-mm-dd”,其中“yyyy-mm-dd”表示日期。例如,预设的规则可以是提取日期信息所在级别的上一级目录的路径,则可以提取出“前缀/目录1/目录2”作为提取出的数据信息。关系链中可以保存“前缀/目录1/目录2”作为数据信息,以及任务ID作为任务信息。
本申请实施例还提供一种分布式数据仓库的管理系统。图2为本申请实施例的一种提供推送信息的系统的示意图。如图2所示,该系统20可以包括处理器21、通信接口24、存储装置26和互联机构29。存储装置26中包括操作系统27、血缘关系数据库22,和采集装置23。
系统20可以利用通信接口24通过某种网络与其它设备进行通信。
系统20内的各组件可以通过互联机构29进行通信。互联机构29可以是设备内的总线,也可以是有线或无线通信链路,还可以是某种网络,例如互联网或局域网,等。
处理器21可以有一个或者多个,可以在同一个物理设备中,或者分布在多个物理设备中。
存储装置26可以由一个或多个物理设备中的存储设备共同实现。
血缘关系数据库22中存储有数据仓库中数据与任务的血缘关系。
血缘关系数据库22可以是任何支持数据分析的数据库。例如,可以是运行MySQL的数据库,也可以是运行Postgres的数据库,等。血缘关系数据库22可以由独立的设备实现,也可以与采集装置23由同一设备实现。一些例子中,血缘关系数据库22可以有主、备两份,例如由主/备关系的2台服务器各存储一份。一些例子中,血缘关系数据库22可以由很多服务器组成的集群实现,集群中运行有Postgres的进程,或者MySQL服务器的进程。一个数据仓库可以对应一套血缘关系数据库22,即使数据仓库包括许多集群、许多IDC,也只需要一套血缘关系数据库22。
采集装置23可以获得数据仓库在把数据处理任务的代码转换为数据处理作业时得到的任务与数据的访问关系;从所述访问关系中提取出符合预设规则的数据信息与任务信息,将所述数据信息和所述任务信息存储到所述血缘关系数据库中的关系链中。血缘关系数据库中的关系链可以用于对所述数据仓库中的数据进行管理。采集装置23可以由一个或多个设备实现。
图3a为本申请实施例的数据仓库以及管理系统的示意图。
数据仓库31可以包括集群311、312,……31n。各集群包括大量计算设备和存储设备。各集群中有一个或多个主控设备和许多数据节点。例如,基于HADOOP架构的数据仓库的主控有Job Tracker和NameNode;基于Yarn架构的数据仓库的主控有ResourceManager和NameNode。一些例子中,数据节点可以采用带有存储空间的服务器。一台服务器有很多CPU,带有很多磁盘,不仅用于存数据,还执行计算。数据分布式地存储在各个服务器的磁盘中,主控下发的作业由各个服务器的CPU完成。
数据仓库管理系统32可以包括血缘关系数据库33和采集装置34。一些例子中,采集装置34可以定期访问数据仓库31的各集群311~31n,从各集群中的配置文件读取访问关系。一些例子中,采集装置34可以接收各集群311~31n中的设备通过调用预设的接口传递来的访问关系。采集装置34可以从访问关系中提取出血缘关系并存储到血缘关系数据库33中。
当血缘关系数据库33存储的血缘关系数据量很大的时候,数据仓库管理系统32本身也可以由数据仓库技术实现。图3b为本申请实施例的数据仓库以及管理系统的示意图。如图3b所示,数据仓库管理系统32可以包括主控设备35、血缘关系数据库33和采集设备341~34n。主控设备35可以将数据采集作业下发到各个采集设备341~34n上。各个采集设备341~34n分布式地从各自所在的IDC中的数据仓库31的集群311~31n获取血缘关系,并将采集到的血缘关系存储到血缘关系数据库33。
一个例子中,数据仓库管理系统32可以由位于多个IDC的设备实现。例如,在数据仓库31所在的各个IDC中可以设置一个主控设备35和采集设备。主控设备35可以由运行管理进程的设备实现。主控设备35中存储有采集任务的代码。主控设备35可以将采集程序推送到采集设备上,并且使采集设备运行一个采集程序的实例。采集程序可以长驻(即持续运行),也可以处理完就退出。采集程序处理完就退出时,主控设备可以定期启动采集程序。各个采集设备341~34n上运行的采集程序实例从自身所在的IDC中属于数据仓库31的设备中读取配置文件中的访问关系,提取出血缘关系,存储到血缘关系数据库33里。
现有技术中,血缘关系的提取和分析均停留于上下游的依赖关系。本申请实施例提供了一种对关系链进行重构的方案。图4为本申请实施例的一种数据仓库管理方法的流程图。如图4所示,该方法40可以包括以下步骤。
步骤S41,响应于关系链处理请求,利用所述血缘关系数据库中的至少一个第一关系链进行所述关系链处理请求指定的处理,生成至少一个第二关系链。
步骤S42,根据所述至少一个第二关系链对数据仓库中的数据进行管理。
本申请实施例提供对血缘关系链的处理,根据需要对关系链进行重构,基于重构的关系链进行数据管理,可以进一步提高管理效率。
血缘关系链描述了数据调用关系,这种关系可以用图(无向图或有向图)来描述。图5a为描述一个关系链的无向图的示意图。图5a中,椭圆表示数据信息,矩形表示任务信息。本申请中的示意图仅是为了说明方案而举的例子。实际中的关系链会比图中所示的复杂得多。
一些例子中,在步骤S41中可以将所述多个第一关系链进行聚合,得到所述至少一个第二关系链,所述至少一个第二关系链描述所述多个第一关系链之间的关系。可以根据数据与任务之间的关系将多个第一关系链聚合形成第二关系链,也可以根据其他的参数确定需要聚合的第一关系链,例如根据数据或任务的所属的业务、数据或任务的来源或负责人,等。
例如,关系链处理请求可以指示对第一关系链进行聚合处理,则可以根据多个第一关系链指示的数据与任务之间的关系将各个任务和数据的血缘关系连接起来,形成第二关系链。
又例如,关系链处理请求可以指示将某个库中所有表相关的关系链组合成一个关系链。可以查询得到该库中的各个表的标识或路径,在血缘关系数据库中确定包括这些标识或路径的关系链,将这些关系链聚合为第二关系链。通常一个库是由一个负责人申请创建,用来保存他需要的各种统计数据。将这些关系链聚合为一个整体,便于确定数据所属的负责人。当需要进行迁移的时候,可以将第二关系链的数据和任务整体迁移,只需知会对应的负责人一次,该负责人的数据和任务都存储在同一集群或IDC中,也方便了该负责人对该库的数据的管理。
又例如,关系链处理请求可以指示将某个业务下的所有任务相关的关系链组合成一个关系链。可以查询得到该业务下各个任务的标识,在血缘关系数据库中确定包括这些标识的关系链,将这些关系链聚合为第二关系链。比如某个游戏业务的分析可能由不同的分析任务实现,这些任务可能存在多个关系链中。但由于这些关系链都围绕这个游戏业务进行,把它们作为一个整体去对待,便于掌握这个业务的数据总量,以及与各任务的关系。同时,也方便将这个游戏业务的数据和任务一同迁移,保证不影响业务的运营。
从上面的例子可以看出,关系链的聚合不一定是利用数据与任务之间的数据传递关系,也可能根据其它参数,如业务情况、所属的库的情况等来进行。因此,关系链的聚合不一定是根据关系链之间的关系来实现关系链的接续、扩展,也可能是将多个没有数据传递关系的关系链聚合在一起。一些例子中,通过设置关系链标识来实现关系链的聚合。例如,血缘关系链的原始形式可以是(数据信息,任务ID),经过聚合,为属于同一个第二关系链的第一关系链设置相同的关系链ID,则关系链的形式变为(关系链ID、数据、任务ID)。这样,在血缘关系数据库中,具有相同关系链ID的关系链在逻辑上组成了一个关系链。
根据本申请实施例,血缘关系数据库中可以存储各血缘关系链的不同的组织形式,例如,可以分别存储多个第一关系链、各第一关系链根据数据传递关系聚合而成的第二关系链、各第一关系链根据库聚合而成的第三关系链、各第一关系链根据业务聚合而成的第四关系链,等。
一些例子中,在步骤S41中可以将第一关系链进行拆分,得到至少两个第二关系链。
在某些情况下,需要对关系链进行拆分,例如当某集群的数据变得庞大需要分拆、迁移到其它集群时。与上面的例子类似,对关系链的拆分可以通过为拆分得到的各第二关系链设置不同的关系链ID来实现。这里不再赘述。
本申请实施例还可以根据设定的阈值来进行关系链的聚合或拆分。例如,可以根据指定的数据量阈值生成所述至少一个第二关系链,其中,每个第二关系链包括的数据信息所指示的各数据的数据量总和不大于所述数据量阈值。又例如,可以根据指定的任务量阈值生成所述至少一个第二关系链,其中,每个第二关系链包括的任务信息所指示的任务的总数不大于所述任务量阈值。
一些实施例中,将第一关系链拆分时,可以在所述第一关系链中选择一个表示数据信息的节点作为拆分点,将所述第一关系链拆分为至少两个以所述拆分点为端点的第二关系链。选择拆分点时,可以根据数据节点具有的血缘关系的数量来确定拆分点。例如,可以选择第一关系量中具有最多血缘关系的表示数据的节点,或者选择血缘关系数量高于指定阈值的多个表示数据的节点作为拆分点,等。
将第一关系链拆分成第二关系链时,将表示数据信息的节点作为拆分的关键点,将该关键点包含在拆分后的多个第二关系链中。每个被拆分出来的关系链都是独立且完整的整体。当需要对第二关系链进行操作时(如跨IDC迁移),可以为关键点所指示的数据产生多个副本,对副本进行操作(如迁移到目标IDC)。
图5b为拆分关系链的示意图。图5b中,第一关系链51是待拆分的第一关系链。将表示数据信息的点52作为拆分关键点时,为点52生成多个副本,从而将第一关系链51拆分成第二关系链531、532、533、534,即图中的4个圆圈各加上一个关键点52。
当拆分后的关系链存储在不同的设备组(例如集群、IDC、机架,等)中时,需要在各集群之间同步该关键点的数据(也称为复写数据),从而该保证关键点数据的一致性。以该关键点数据为输入数据的任务则需要在关键点数据完成同步后再进行读取,以避免读取到脏数据(即不是最新的有效的数据)。因此,需要根据血缘关系确定任务与数据的数据传递关系,即数据是任务的输入数据还是输出数据。
根据本申请实施例,在获得访问关系时,还可以确定所述任务信息与所述数据信息的数据传递关系,并将所述数据传递关系也存储到所述关系链中。在进行数据迁移时,可以根据拆分后得到的至少两个第二关系链中的第三关系链的信息,生成数据迁移指令,指示将所述第三关系链指示的数据从所述数据仓库中的第一组设备迁移到第二组设备,在所述第二组设备中执行所述第三关系链指示的任务。可以在存储所述拆分点所指示的数据的各组设备中,为该数据增加同步任务,并根据所述至少两个第二关系链中的数据传递关系确定以所述数据为输入数据的各任务,将所述同步任务设置为所述各任务的父任务,以使所述各任务在所述同步任务完成所述数据在各组设备的同步之后再读取所述数据。
这里,一组设备表示根据空间关系或逻辑关系聚合起来的多个设备,例如同一集群的设备可以作为一组设备,同一IDC中的设备可以作为一组设备,同一机架中的设备可以作为一组设备,等。
任务之间的父子关系是一种依赖关系。依赖关系是在调度系统保证任务有序运行的机制。一个任务能运行的前提条件是它的父任务已经运行完成。这保证数据流的有序性和准确性,子任务通常需要对父任务产生的结果数据进行加工,只有父任务完成了,子任务才允许运行。
根据该例,关系链中存储的每个血缘关系可以是以下的形式:(数据、任务ID、方向),其中方向是指数据传递关系,可以是输入或输出,或者是读取或写入。该例中的血缘关系链可以利用有向图来描述。图5c为一个关系链的示意图,图5d为其任务之间依赖关系的示意图。图5e为图5c中的关系链拆分后得到的两条关系链的示意图,图5f为两条关系链的各任务之间依赖关系的示意图。图5c、5e中,带箭头的线描述数据传递关系。图5d、5f中,带箭头的线描述任务的依赖关系。图5c中,数据54作为拆分关键点,是任务55的输出数据,是任务56、57、58的输入数据,因此任务56、57、58依赖于任务55。如图5e所示,拆分后,数据54分别存在于两个关系链中,并且存储在不同的设备组中,由同步任务59实现数据54在两个设备组间的同步。数据54需要在任务55完成输出后才能开始同步,因此同步任务59依赖于任务55。而任务56、57、58需要等到数据54同步完成后才能开始读取,因此依赖于同步任务59。
通过关系链可以确定有多少任务需要读取某个数据。当这个数据需要升级为复写数据的时候,会生成同步任务,并将同步任务设置为所有读这个数据的任务的父任务,也就是说只有同步任务完成之后,读取这个数据的任务才允许运行。这样就保证了数据的一致性和准确性。
图6为本申请实施例的一种分布式数据仓库的管理系统的示意图。如图6所示,该系统60可以血缘关系数据库62、采集装置631~63n。以上各组件的功能与系统20中相应组件的功能类似。
系统60中还可以包括关系链处理装置65。关系链处理装置65可以响应于关系链处理请求,利用所述血缘关系数据库中的至少一个第一关系链进行所述关系链处理请求指定的处理,生成至少一个第二关系链。
关系链处理装置65可以是独立的设备或独立的程序(例如可以是SQL代码或python代码等编写的程序),用于执行处理关系链的各种操作。关系链处理装置65可以与血缘关系数据库62位于同一设备或同一设备组(例如同一集群、IDC、机架,等)。关系链处理装置65可以分析血缘关系的数据(例如Postgre、MySQL、数据仓库,等),进行各种逻辑的计算。
一些例子中,关系链处理装置65可以根据多个第一关系链指示的数据与任务之间的关系,将所述多个第一关系链进行聚合,得到所述至少一个第二关系链,所述至少一个第二关系链描述所述多个第一关系链之间的关系;或者,将第一关系链进行拆分,得到至少两个第二关系链。
一些例子中,关系链处理装置65可以在所述第一关系链中选择一个表示数据信息的节点作为拆分点,将所述第一关系链拆分为至少两个以所述拆分点为端点的第二关系链。采集装置631~63n可以确定所述任务信息与所述数据信息的数据传递关系,并将所述数据传递关系存储到所述关系链中。此时,该系统60还可以包括数据管理装置(未示出)。数据管理装置可以根据所述至少两个第二关系链中的第三关系链的信息,生成数据迁移指令,指示将所述第三关系链指示的数据从所述数据仓库中的第一组设备迁移到第二组设备,在所述第二组设备中执行所述第三关系链指示的任务;在存储所述拆分点所指示的数据的各组设备中,为该数据增加同步任务,并根据所述至少两个第二关系链中的数据传递关系确定以所述数据为输入数据的各任务,将所述同步任务设置为所述各任务的父任务,以使所述各任务在所述同步任务完成所述数据在各组设备间的同步之后再读取所述数据。
图7为本申请实施例的一种分布式数据仓库的管理系统的示意图。如图7所示,该系统70可以包括血缘关系数据库72和采集装置731~73n。以上各组件的功能与系统20中相应组件的功能类似。
系统70中还包括查询装置75。查询装置75根据指定的条件从所述关系链中确定一组关系链;提供所述一组关系链的信息用于对所述数据仓库中的数据进行管理。
查询装置75提供了在血缘关系数据库72中查找关系链的功能。例如,可以查找给定的数据有关的关系链,或者查找给定的任务有关的关系链。
一些例子中,查询装置75可以响应于带有任务相关信息的查询请求,根据所述任务相关信息确定一个或多个任务,在所述血缘关系数据库中查找与确定的所述一个或多个任务有关的关系链,根据找到的关系链确定与所述一个或多个任务有访问关系的数据信息,提供所述数据信息。
例如,可以根据业务的各分析任务的信息来查询确定该业务的分析任务涉及的数据,从而确定该业务的分析任务所涉及的数据总量,可以帮助决策是否需要将该业务的数据进行整体迁移。
一些例子中,查询装置75可以响应于带有数据相关信息的查询请求,根据所述数据相关信息确定一条或多条数据信息,在所述血缘关系数据库中查找与确定的所述一条或多条数据信息有关的关系链,根据找到的关系链确定与所述一条或多条数据信息有关的任务信息,提供所述任务信息。
例如,在准备对数据进行迁移或者删除前,可以根据数据信息来查询确定该数据操作会影响到的任务,从而知会相应的负责人,或者重新决策是否需要执行该操作,从而保障数据和业务的可靠性。
一些例子中,系统70中还包括数据管理装置78。数据管理装置78可以根据所述一组关系链的信息,生成数据迁移指令,指示将所述一组关系链指示的数据从所述数据仓库中的第一组设备迁移到第二组设备、并在所述第二组设备中执行所述一组关系链指示的任务。
第一组设备和第二组设备可以指不同的集群,或者不同的IDC、或者不同的机架中的设备。同个集群或IDC内,可以利用关系链减少数据在不同机架间的穿越。利用关系链进行数据迁移,可以有效的降低数据迁移量,特别是跨城数据迁移时的数据迁移量。
以下以Yarn架构的数据仓库的管理方案为例,说明本申请实施例的数据仓库的管理方法。图8为本申请实施例的一种数据仓库的管理系统的示意图。其中,管理系统80包括主控设备81、中转数据库82、和血缘关系数据库83、处理设备841~84n。
在Yarn上运行的所有应用(Application)的ApplicationMaster,将任务ID、输入数据和输出数据的路径写入配置文件。
主控设备81可以控制处理设备841~84n运行采集程序,解析Yarn各集群中配置文件的信息,将信息写入中转数据库82。例如,每隔预设时间(例如5分钟),处理设备841~84n并行登录Yarn的所有NodeManager机器,解析配置文件,将解析好的数据写入到中转数据库82。
主控设备81可以控制处理设备841~84n运行数据清洗程序。数据清洗程序可以按预设时间间隔(例如,每天、每N个小时等)对中转数据库82中的数据进行处理,并将得到的血缘关系写入血缘关系数据库83。例如,数据清洗程序对输入数据和输出数据路径进行归约(例如,将到文件级别的绝对路径归约到表级),并将数据调用关系清洗为关系对:任务ID、数据、方向(输入/输出),形成血缘关系。数据清洗程序还可以对关系对进行去重处理。如果存在多路输入输出的情况,将数据调用关系拆分为多条血缘关系。比如,任务1的输入数据为表1、表2和表3,并输出数据到表4和表5,则清洗后的结果为:
任务1、表1、输入;
任务1、表2、输入;
任务1、表3、输入;
任务1、表4、输出;
任务1、表5、输出。
主控设备81可以控制处理设备841~84n运行聚合程序,对清洗好的数据进行聚合。每隔一段时间,处理设备841~84n将该时间段内取得的血缘关系信息用查并集算法,生成多个关系链,并对每个关系链进行编号,实现对关系链的聚合。
主控设备81可以控制处理设备841~84n运行拆分程序,对数据总量或任务总数超过预设阈值的关系链进行拆分,生成包括复写数据的多个关系链。对拆分后的关系链编号并记录是否为复写数据的标志,并写入血缘关系数据库83。
可以将满足下面条件的关系链节点作为拆分点:该节点表示数据,且存在多个任务以该数据作为输入数据。
血缘关系数据库83中的关系链可直接用于管理数据仓库中数据的迁移。迁移后,复写数据和同步任务保证数据无论在哪个集群中都是有效的。图9为利用元数据控制复写数据的示意图。经过迁移,数据仓库的集群1和集群2中分别存储同一复写数据,数据仓库的元数据中,数据的主存储位置指向复写数据在集群2中的HDFS路径,数据的备存储位置指向复写数据在集群1中的HDFS路径。集群2的写入任务将数据写入元数据中该复写数据的主存储位置,集群1的写入任务将数据写入元数据中该复写数据的备存储位置。为集群1和集群2的该复写数据添加同步任务,保持该复写数据在集群1和集群2中一致。这样,当集群1和集群2位于不同的IDC中时,集群1和集群2均可就近访问到复写数据。
按上面拆分算法拆分后的关系链较小,但都是可独立操作的。可对小关系链进行随意组合。比如某个库下面所有表相关的关系链可组合为一个同库的关系链;某个业务下所有的任务可组合为一个同业务的关系链。
组合多个关系链的算法如下:取其中一个关系链的编号,并将其他关系链的编号更新为该编号。对合并后的关系链,编历所有复写数据,如果复写数据不存在于其他关系链,则记录为非复写数据。
需要说明的是,上述各流程和各结构图中不是所有的步骤和模块都是必须的,可以根据实际的需要忽略某些步骤或模块。各步骤的执行顺序不是固定的,可以根据需要进行调整。各模块的划分仅仅是为了便于描述采用的功能上的划分,实际实现时,一个模块可以分由多个模块实现,多个模块的功能也可以由同一个模块实现,这些模块可以位于同一个设备中,也可以位于不同的设备中。另外,上面描述中采用“第一”、“第二”仅仅为了方便区分具有同一含义的两个对象,并不表示其有实质的区别。
各例中,各模块可以由专门的硬件或执行机器可读指令的硬件实现。例如,硬件可以为专门设计的永久性电路或逻辑器件(如专用处理器,如FPGA或ASIC)用于完成特定的操作。硬件也可以包括由软件临时配置的可编程逻辑器件或电路(如包括通用处理器或其它可编程处理器)用于执行特定操作。
各模块对应的机器可读指令可以存储在非易失性计算机可读存储介质中,使计算机上操作的操作系统等来完成这里描述的部分或者全部操作。非易失性计算机可读存储介质包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD+RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上下载程序代码。
综上所述,权利要求的范围不应局限于以上描述的例子中的实施方式,而应当将说明书作为一个整体并给予最宽泛的解释。
Claims (17)
1.一种分布式数据仓库的管理方法,其特征在于,包括:
设置血缘关系数据库,用于存储数据处理任务与数据仓库中的数据之间的血缘关系;
获得所述数据仓库在把数据处理任务的代码转换为数据处理作业时得到的任务与数据的访问关系;
从所述访问关系中提取出符合预设规则的数据信息和任务信息,将所述数据信息和所述任务信息存储到所述血缘关系数据库中的关系链中;
响应于关系链处理请求,在所述血缘关系数据库中的第一关系链中,选择一个表示数据信息的节点作为拆分点,将所述第一关系链拆分为至少两个以所述拆分点为端点的第二关系链;
当对所述第二关系链进行跨设备组迁移时,执行以下处理:
为所述拆分点所指示的复写数据产生多个副本,将副本迁移到目标设备组中;
在存储所述复写数据的各组设备中,为所述复写数据增加同步任务,并根据所述第二关系链中任务信息与数据信息的数据传递关系,确定以所述复写数据为输入数据的各任务,将所述同步任务设置为所述各任务的父任务,以使所述各任务在所述同步任务完成所述复写数据在各组设备的同步之后,再读取所述复写数据。
2.根据权利要求1所述的方法,其特征在于,所述获得所述数据仓库在把数据处理任务的代码转换为数据处理作业时得到的任务与数据的访问关系包括:
从预定的配置文件读取所述访问关系,其中,所述访问关系由所述数据仓库写入所述配置文件;或者
接收所述数据仓库通过调用预定的接口传递来的所述访问关系。
3.根据权利要求1所述的方法,其特征在于,所述从所述访问关系中提取出符合预设规则的数据信息和任务信息包括:
从所述访问关系中,提取数据在所述数据仓库的文件系统中所属的数据对象的标识,作为所述数据信息;或者
从所述访问关系中,提取数据在所述数据仓库的文件系统中预定级别的存储路径,作为所述数据信息。
4.根据权利要求2所述的方法,其特征在于,进一步包括:
对所述数据仓库的任务解析模块进行修改,使其在把数据处理任务的代码转换为数据处理作业时,把输入数据、任务及输出数据的信息写入所述配置文件。
5.根据权利要求2所述的方法,其特征在于,所述预定的接口为具备实时采集功能的应用程序接口API。
6.根据权利要求1所述的方法,其特征在于,所述在所述血缘关系数据库中的第一关系链中,选择一个表示数据信息的节点作为拆分点包括:
选择所述第一关系链中具有最多血缘关系的表示数据的节点,作为所述拆分点。
7.根据权利要求1所述的方法,其特征在于,所述在所述血缘关系数据库中的第一关系链中,选择一个表示数据信息的节点作为拆分点包括:
选择所述第一关系链中血缘关系数量高于指定阈值的表示数据的节点,作为所述拆分点。
8.根据权利要求1所述的方法,其特征在于,所述数据仓库的元数据中,主存储位置指向所述复写数据在第一设备组中的路径,备存储位置指向所述复写数据在第二设备组中的路径;
所述第一设备组的写入任务将数据写入所述主存储位置,所述第二设备组的写入任务将数据写入所述备存储位置。
9.根据权利要求1所述的方法,其特征在于,进一步包括:
确定任务信息与数据信息的数据传递关系,并将数据传递关系存储到关系链中。
10.一种分布式数据仓库的管理系统,其特征在于,包括:
血缘关系数据库,用于存储数据仓库中的数据与任务之间的血缘关系;
采集装置,用于获得所述数据仓库在把数据处理任务的代码转换为数据处理作业时得到的任务与数据的访问关系;从所述访问关系中提取出符合预设规则的数据信息与任务信息,将所述数据信息和所述任务信息存储到所述血缘关系数据库中的关系链中;
关系链处理装置,用于响应于关系链处理请求,在所述血缘关系数据库中的第一关系链中,选择一个表示数据信息的节点作为拆分点,将所述第一关系链拆分为至少两个以所述拆分点为端点的第二关系链;
数据管理装置,用于当对所述第二关系链进行跨设备组迁移时,执行以下处理:为所述拆分点所指示的复写数据产生多个副本,将副本迁移到目标设备组中;在存储所述复写数据的各组设备中,为所述复写数据增加同步任务,并根据所述第二关系链中任务信息与数据信息的数据传递关系,确定以所述复写数据为输入数据的各任务,将所述同步任务设置为所述各任务的父任务,以使所述各任务在所述同步任务完成所述复写数据在各组设备的同步之后,再读取所述复写数据。
11.根据权利要求10所述的系统,其特征在于,所述采集装置用于:
从预定的配置文件读取所述访问关系,其中,所述访问关系由所述数据仓库写入所述配置文件;或者
接收所述数据仓库通过调用预定的接口传递来的所述访问关系。
12.根据权利要求11所述的系统,其特征在于,对所述数据仓库的任务解析模块进行修改,使其在把数据处理任务的代码转换为数据处理作业时,把输入数据、任务及输出数据的信息写入所述配置文件。
13.根据权利要求11所述的系统,其特征在于,所述预定的接口为具备实时采集功能的应用程序接口API。
14.根据权利要求10所述的系统,其特征在于,所述数据仓库的元数据中,主存储位置指向所述复写数据在第一设备组中的路径,备存储位置指向所述复写数据在第二设备组中的路径;
所述第一设备组的写入任务将数据写入所述主存储位置,所述第二设备组的写入任务将数据写入所述备存储位置。
15.根据权利要求10所述的系统,其特征在于,所述采集装置进一步用于,确定任务信息与数据信息的数据传递关系,并将数据传递关系存储到关系链中。
16.一种分布式数据仓库的管理系统,其特征在于,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,实现如权利要求1至9中任一项所述的方法。
17.一种计算机可读存储介质,其特征在于,存储有计算机可读指令,所述计算机可读指令被至少一个处理器执行时,实现如权利要求1至9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710228031.6A CN108694195B (zh) | 2017-04-10 | 2017-04-10 | 一种分布式数据仓库的管理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710228031.6A CN108694195B (zh) | 2017-04-10 | 2017-04-10 | 一种分布式数据仓库的管理方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108694195A CN108694195A (zh) | 2018-10-23 |
CN108694195B true CN108694195B (zh) | 2022-04-12 |
Family
ID=63842382
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710228031.6A Active CN108694195B (zh) | 2017-04-10 | 2017-04-10 | 一种分布式数据仓库的管理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108694195B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109614432B (zh) * | 2018-12-05 | 2021-01-05 | 北京百分点信息科技有限公司 | 一种基于语法分析的获取数据血缘关系的系统及方法 |
CN109739887A (zh) * | 2018-12-21 | 2019-05-10 | 平安科技(深圳)有限公司 | 同步任务搜索方法、系统、装置及可读存储介质 |
CN111488269B (zh) * | 2019-01-29 | 2023-11-14 | 阿里巴巴集团控股有限公司 | 数据仓库的指标检测方法、装置和系统 |
CN110442604B (zh) * | 2019-07-11 | 2022-03-11 | 新华三大数据技术有限公司 | 数据流向查询方法、抽取方法、处理方法及相关装置 |
CN110532084B (zh) * | 2019-09-04 | 2024-05-31 | 深圳前海微众银行股份有限公司 | 平台任务的调度方法、装置、设备及存储介质 |
CN110795509B (zh) * | 2019-09-29 | 2024-02-09 | 北京淇瑀信息科技有限公司 | 一种数据仓库的指标血缘关系图的构建方法、装置和电子设备 |
US11275755B2 (en) | 2019-10-07 | 2022-03-15 | International Business Machines Corporation | Automatically capturing lineage data in distributed systems |
CN110764968A (zh) * | 2019-10-21 | 2020-02-07 | 北京明略软件系统有限公司 | 一种信息处理方法及装置 |
CN111125229B (zh) * | 2019-12-24 | 2024-06-28 | 杭州数梦工场科技有限公司 | 数据血缘生成方法、装置、电子设备 |
CN111666186B (zh) * | 2020-04-26 | 2023-09-15 | 杭州数梦工场科技有限公司 | 数据访问异常的检测方法、装置、存储介质及计算机设备 |
CN111597255A (zh) * | 2020-04-29 | 2020-08-28 | 北京金山云网络技术有限公司 | 数据灾备处理方法、装置、电子设备及存储介质 |
CN111736891A (zh) * | 2020-06-16 | 2020-10-02 | 北京嘀嘀无限科技发展有限公司 | 基于Git的版本控制方法、系统和可读存储介质 |
CN114428822B (zh) * | 2022-01-27 | 2022-07-29 | 云启智慧科技有限公司 | 一种数据处理的方法、装置、电子设备及存储介质 |
CN115408478B (zh) * | 2022-09-02 | 2023-03-21 | 西湖大学 | 一种共享实验仪器的数据存储和管理系统、方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101142818A (zh) * | 2005-03-16 | 2008-03-12 | 富士胶片株式会社 | 图像拍摄设备,图像拍摄方法,影集创建设备,影集创建方法,影集创建系统及程序 |
CN104915390A (zh) * | 2015-05-25 | 2015-09-16 | 广州精点计算机科技有限公司 | 一种etl数据血统查询系统及查询方法 |
CN105844390A (zh) * | 2016-03-21 | 2016-08-10 | 乐视网信息技术(北京)股份有限公司 | 一种数据质量追溯的方法及其装置以及硬件处理器 |
CN105868521A (zh) * | 2015-12-14 | 2016-08-17 | 乐视网信息技术(北京)股份有限公司 | 数据信息处理方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090055368A1 (en) * | 2007-08-24 | 2009-02-26 | Gaurav Rewari | Content classification and extraction apparatus, systems, and methods |
-
2017
- 2017-04-10 CN CN201710228031.6A patent/CN108694195B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101142818A (zh) * | 2005-03-16 | 2008-03-12 | 富士胶片株式会社 | 图像拍摄设备,图像拍摄方法,影集创建设备,影集创建方法,影集创建系统及程序 |
CN104915390A (zh) * | 2015-05-25 | 2015-09-16 | 广州精点计算机科技有限公司 | 一种etl数据血统查询系统及查询方法 |
CN105868521A (zh) * | 2015-12-14 | 2016-08-17 | 乐视网信息技术(北京)股份有限公司 | 数据信息处理方法及装置 |
CN105844390A (zh) * | 2016-03-21 | 2016-08-10 | 乐视网信息技术(北京)股份有限公司 | 一种数据质量追溯的方法及其装置以及硬件处理器 |
Also Published As
Publication number | Publication date |
---|---|
CN108694195A (zh) | 2018-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108694195B (zh) | 一种分布式数据仓库的管理方法及系统 | |
US11455217B2 (en) | Transaction consistency query support for replicated data from recovery log to external data stores | |
JP6697392B2 (ja) | 半構造データスキーマのトランスペアレントディスカバリ | |
CN106897322B (zh) | 一种数据库和文件系统的访问方法和装置 | |
US10552413B2 (en) | Database workload capture and replay | |
Vora | Hadoop-HBase for large-scale data | |
US9720992B2 (en) | DML replication with logical log shipping | |
CN111324610A (zh) | 一种数据同步的方法及装置 | |
US20210303537A1 (en) | Log record identification using aggregated log indexes | |
US20120166620A1 (en) | System and method for integrated real time reporting and analytics across networked applications | |
US20140101167A1 (en) | Creation of Inverted Index System, and Data Processing Method and Apparatus | |
Humbetov | Data-intensive computing with map-reduce and hadoop | |
CN107665219B (zh) | 一种日志管理方法及装置 | |
CN105630934A (zh) | 一种数据统计方法及系统 | |
CN111680017A (zh) | 一种数据同步的方法及装置 | |
CN116010452A (zh) | 基于流式计算引擎的工业数据处理系统和方法、介质 | |
CN103530369A (zh) | 一种去重方法及系统 | |
US20180267831A1 (en) | Information processing apparatus, stage-out processing method and recording medium recording job management program | |
CN110309206B (zh) | 订单信息采集方法及系统 | |
CN115794763A (zh) | 一种日志清理方法、装置、设备及存储介质 | |
KR20160145250A (ko) | 가상 머지를 지원하는 셔플 내장형 분산 스토리지 시스템 및 그 방법 | |
US8484171B2 (en) | Duplicate filtering in a data processing environment | |
CN104317820A (zh) | 报表的统计方法和装置 | |
CN113553320B (zh) | 数据质量监控方法及装置 | |
CN117390040B (zh) | 基于实时宽表的业务请求处理方法、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230919 Address after: 518057 Tencent Building, No. 1 High-tech Zone, Nanshan District, Shenzhen City, Guangdong Province, 35 floors Patentee after: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd. Patentee after: TENCENT CLOUD COMPUTING (BEIJING) Co.,Ltd. Address before: 518057 Tencent Building, No. 1 High-tech Zone, Nanshan District, Shenzhen City, Guangdong Province, 35 floors Patentee before: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd. |
|
TR01 | Transfer of patent right |