CN111159265B - 一种etl数据迁移方法和系统 - Google Patents

一种etl数据迁移方法和系统 Download PDF

Info

Publication number
CN111159265B
CN111159265B CN201911221306.9A CN201911221306A CN111159265B CN 111159265 B CN111159265 B CN 111159265B CN 201911221306 A CN201911221306 A CN 201911221306A CN 111159265 B CN111159265 B CN 111159265B
Authority
CN
China
Prior art keywords
source
data
file
migrated
destination
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
CN201911221306.9A
Other languages
English (en)
Other versions
CN111159265A (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.)
Wuhan Dream Database Co ltd
Original Assignee
Wuhan Dream Database Co 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 Wuhan Dream Database Co ltd filed Critical Wuhan Dream Database Co ltd
Priority to CN201911221306.9A priority Critical patent/CN111159265B/zh
Publication of CN111159265A publication Critical patent/CN111159265A/zh
Application granted granted Critical
Publication of CN111159265B publication Critical patent/CN111159265B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/254Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/214Database migration support
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及数据管理领域,具体涉及一种ETL数据迁移方法和系统,其中ETL数据迁移方法包含以下步骤:建立抽象文件源层,抽象文件源层加载预设数据源类型列表中的抽取组件,并加载所有预设目的源类型列表中的装载组件;获取待迁移对象的数据源的类型,和待迁移对象目的源的类型;抽象文件源层调用相应的抽取组件建立与数据源的连接;抽象文件源层调用相应的装载组件建立与目的源的连接;抽取组件通过与数据源的连接从数据源处获取待迁移对象,装载组件通过与目的源的连接将待迁移对象装载至目的源。本发明提供了一种针对不同待抽取对象和待装载对象的ETL文件迁移方法和系统,简化了ETL文件迁移时的操作,提高了迁移效率。

Description

一种ETL数据迁移方法和系统
【技术领域】
本发明涉及数据管理领域,特别是涉及一种ETL数据迁移方法和系统。
【背景技术】
许多领域都需对于大量数据文件进行管理,这些数据可能存放在不同格式文件中,存储在不同类型的存储设备中。在使用数据时需要针对不同的数据文件格式及不同的存储设备进行数据抽取,转换为可使用的数据格式,装载入使用数据的系统。上述数据抽取-转换-装载(Extract-Transform-Load,简写为ETL)过程即为ETL数据迁移过程。
目前使用的ETL数据迁移软件,在迁移不同文件格式和访问类型的数据文件时,需单独加载不同的待抽取对象提取组件、不同的文件格式转换组件和不同的待装载对象装载组件。若需增加新的文件格式或文件访问类型,或新的数据转换需求,需要针对不同的文件格式和访问类型单独增加新的待抽取对象提取组件和待装载对象装载组件,或需对整个软件进行修改。
鉴于此,如何克服该现有技术所存在的缺陷,使不同格式、不同访问类型的待抽取对象和待装载对象不需单独的组件进行提取和装载,避免进行ETL数据迁移的复杂操作,同时避免增加新的应用场景时的复杂修改,是本技术领域亟待解决的问题。
【发明内容】
针对现有技术的以上缺陷或改进需求,本发明解决了进行ETL数据迁移时待抽取对象和待装载对象种类繁多,应用场景繁多,但目前没有通用处理机制的问题。
本发明实施例采用如下技术方案:
第一方面,本发明提供了一种ETL数据迁移方法,包括:建立抽象文件源层,抽象文件源层加载预设数据源类型列表中的抽取组件,并加载所有预设目的源类型列表中的装载组件;获取待迁移对象的数据源的类型,和待迁移对象目的源的类型;抽象文件源层根据待迁移对象的数据源的类型调用相应的抽取组件,抽取组件建立与数据源的连接;抽象文件源层根据待迁移对象的目的源的访问属性调用相应的装载组件,装载组件建立与目的源的连接;抽取组件通过与数据源的连接从数据源处获取待迁移对象,装载组件通过与目的源的连接将待迁移对象装载至目的源。
优选的,抽取组件通过与数据源的连接从数据源处获取待迁移对象,装载组件通过与目的源的连接将待迁移对象装载至目的源,具体为:获取待迁移对象的文件路径和待装载位置的文件路径;通过与数据源的连接及待迁移对象的文件路径获取待迁移对象的输入流对象,通过与目的源的连接及待装载位置的文件路径获取输出流对象;通过输入流对象逐次获取预设数据量的待抽取对象的数据,通过输出流对象将已获取的待抽取对象的数据装载至目的源,直至待抽取对象的数据全部被抽取并装载至目的源。
优选的,若数据源多于一个,还包括:抽取组件使用待迁移对象数据源的访问属性建立与每一个数据源的连接;抽取组件通过与每一个数据源的连接获取每一个数据源中的待迁移对象,装载组件通过与目的源的连接将待迁移对象装载至目的源。
优选的,若目的源多于一个,还包括:装载组件使用待装载对象的目的源的访问属性建立与每一个目的源的连接;抽取组件通过与数据源的连接从数据源处获取待迁移对象,装载组件通过与每一个目的源的连接将待迁移对象装载至每一个目的源。
优选的,还包括:判断抽取组件通过与数据源的连接从数据源处获取待迁移对象的格式与目的源的需要的格式是否一致;若否,抽象文件源层调用转换组件将待迁移对象转换为目的源的格式。
优选的,若数据源为结构化数据,具体为:根据目的源的文件类型调用相应的转换组件,转换组件将待抽取对象的数据转换为目的源的格式。
优选的,若目的源为结构化数据,具体为:根据数据源的文件类型调用相应的转换组件,转换组件根据目的源的数据结构将待抽取对象解析为结构化数据。
优选的,还包括:判断抽象文件源层中是否已存在待迁移对象的数据源相应类型的抽取组件,和/或目的源相应类型的装载组件;若否,抽象文件源层获取待迁移对象的数据源和/或目的源的类型,并保存,抽象文件源层根据数据源的类型加载相应的抽取组件,和/或根据目的源的类型加载相应的装载组件。
优选的,还包括:判断抽取组件中是否已存在待迁移对象的数据源的访问属性,和/或装载组件中是否已存在待迁移对象的目的源的访问属性;若否,获取数据源和/或目的源的访问属性,并保存。
另一方面,本发明提供了一种ETL数据迁移系统,包括服务器端和客户端都可部署文件系统,服务器和客户端间可通过输入流和输出流进行文件和数据交换;每个服务器包括至少一个第一处理器和第一存储器,至少一个第一处理器和第一存储器之间通过数据总线连接,第一存储器存储如权利要求1-9抽象文件源层、抽取组件和装载组件指令,第一处理器根据指令完成如权利要求1-9抽象文件源层、抽取组件和装载组件进行的操作;每个客户端包括至少一个第二处理器和第二存储器,至少一个第二处理器和第二存储器之间通过数据总线连接,客户端作为权利要求1-9中的目的源或数据源使用。
与现有技术相比,本发明实施例的有益效果在于:通过建立抽象文件源层,在进行数据迁移时,将所有的类型的数据源和目的源都视为抽象文件源,由抽象文件源层统一管理,隐藏不同类型的数据源和目的源的不同连接方式。通过此方法,可以在进行ETL数据迁移的各种应用场景中可对不同的文件类型和访问类型都视为抽象文件源,统一访问和处理,使ETL数据迁移工具的具有更高的易用性和可扩展性,同时也可提高数据迁移的效率。
进一步的,在本发明的优选方案中,提供了基于抽象文件源层的文件同步、发布、转换等功能,提供了针对不同场景的下的ETL数据迁移补充方案,进一步补充了本方案提供的ETL数据迁移方法在不同场景下的通用性和可扩展性。
【附图说明】
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍。显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种ETL数据迁移方法流程图;
图2为本发明实施例提供的一种ETL数据迁移方法模块示意图;
图3为本发明实施例提供的另一种ETL数据迁移方法模块示意图;
图4为本发明实施例提供的一种ETL数据迁移系统结构图。
【具体实施方式】
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本实施例中使用的部分术语具体含义如下:
(1)ETL数据迁移:迁移过程一般包括三个基本步骤:首先,从源端读取数据,即抽取(Extract,简写为E);第二,对读取数据做一系列的转换操作,这一步骤可省略,即转换(Transform,简写为T);第三,将数据写到目的端,即装载(Load,简写为L)。
(2)ETL工具:进行ETL数据迁移的平台,包括相应的软硬件系统,一般具有可视化的用户可配置的客户端界面。目前已有的ETL工具一般以组件的形式提供具体迁移功能。
(3)文件迁移任务:ETL软件对文件数据的处理任务,主要分为两类:一类是将文件作为一个整体进行迁移;第二类是解析特定格式的文件对象,生成预先定义的格式化输出,或将格式化数据写入到特定格式文件对象。
(4)文件源:对各种文件系统或文件服务的统一称呼,如FTP、SFTP、HDFS和本地文件系统等,英文术语:fileSource。文件源又分为源文件源(英文术语:fromFileSource)和目的文件源(英文术语:toFileSource),在一个文件处理任务中,源文件源和目的文件源可以是同一个文件源。本发明中,源文件源也称为数据源,为数据抽取的对象。目的文件源也称为目的源,为数据的装载对象。
(5)文件对象(英文术语:fileObject):对文件源里存放对象的统一称呼,一般以树状结构组织,存放在文件源内的文件系统中,每一个文件对象在其所在的文件源里具有唯一路径,可以用文件系统中的文件目录、数据地址等表示。在本发明实施例中,以文件形式存在或以数据块形式存在的,通过本发明实施例提供的方法由一个文件源转移至另一个文件源的文件对象,称为待迁移对象。
(6)文件路径:文件对象在文件源里唯一的寻址标识,英文术语:filePath。
本发明各实施方式的服务器或客户端的硬件部分可以多种形式存在,包括但不限于:
(1)服务器设备:提供计算服务的设备,服务器设备的构成包括处理器、硬盘、内存、系统总线等,服务器设备和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(2)个人计算机及超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,可具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
(3)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
(4)便携式娱乐设备:这类设备可以显示和播放视频内容,一般也具备移动上网特性。该类设备包括:视频播放器,掌上游戏机,以及智能玩具和便携式车载导航设备。
本实施例的一般应用场景中,服务器一般部属在服务器设备中,服务器设备和其它类型设备都可以部署客户端作为文件源使用。
此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。下面就参考附图和实施例结合来详细说明。
进行大批量数据存储,尤其是采用数据仓库技术进行数据管理时,通常需要使用大量不同类型的存储设备对数据文件进行存储。为了对数据进行提取使用,就需要在不同类型存储设备间进行ETL数据迁移。
进行ETL数据迁移时,除本地设备存储器内存取外,可能还需要使用远程的FTP、SFTP等协议进行文件传输,或对HDFS中的文件进行提取。针对不同存储设备和文件路径中的数据文件,需要调用不同的访问组件进行访问,造成了ETL数据迁移工具的文件源访问组件随访问类型的增加和变化而增加。同时,由于文件源访问组件的增加,ETL数据迁移工具中的每一项数据处理功能都需针对新增加类型的文件源访问组件进行重写,若需增加新的数据处理功能,也需要针对所有类型的文件源访问组件进行重写。这就导致了ETL数据迁移工具使用繁琐、升级更新困难。
实施例1:
本实施例提供了一种ETL数据迁移方法,将不同种类的文件源整合为抽象文件源,使用统一的模块进行处理和操作,如图1所示,具体步骤如下:
步骤101:建立抽象文件源层,抽象文件源层加载预设数据源类型列表中的抽取组件,并加载所有预设目的源类型列表中的装载组件。
为了将不同类型的数据源和目的源进行整合,因此在ETL工具中建立抽象文件源层,针对不同类型的抽取组件和装载组件进行统一管理和调用。包含抽象文件源层的ETL工具可以使用本实施例提供的ETL数据迁移方法进行数据迁移。抽象文件源层对用户隐藏了数据迁移过程中针对不同类型数据源和目的源的连接、抽取、装载等操作细节,使用户能够无差别的对不同类型的待抽取对象和待装载对象进行功能操作。用户使用包含抽象文件源层的ETL工具时,只需选择抽象的抽取组件和抽象的装载组件,不需要根据不同的数据源和目的源类型选择不同的抽取组件和装载组件。通常情况下,抽象文件源层包含在ETL工具的服务器端,只需要在部署ETL工具服务器端时建立一次,不需要每次使用时重复建立。
抽取组件和装载组件在使用前需进行加载,目前的ETL工具需用户手动进行加载。本实施例提供的ETL数据迁移方法中,由于ETL工具中存在抽象文件源层,因此不需要用户加载具体的抽取组件和装载组件,而是通过抽象文件源层获取所有的预设数据源类型和目的源类型,并加载相应的抽取组件和装载组件。预设数据源类型和预设目的源类型根据ETL工具提供的抽取组件和装置组件类型确定。通常情况下,加载抽取组件和装载组件仅在ETL工具启动时进行一次,不需要每次数据迁移时重复加载。
步骤102:获取待迁移对象的数据源的类型,和待迁移对象目的源的类型。
ETL数据迁移的过程,即将待迁移对象中的数据从数据源转移至目的源的过程,ETL工具需对数据源和目的源进行数据通信连接,以完成数据的抽取和装载。数据源和目的源的类型决定了需使用的抽取组件和装置组件类型,因此在进行数据抽取和装载前,需要先获取数据源和目的源的类型。
步骤103:抽象文件源层根据待迁移对象的数据源的类型调用相应的抽取组件,抽取组件建立与数据源的连接。
该步骤为抽取(Extract)操作的前置准备工作,ETL工具通过本步骤与数据源建立的连接,以便于后续进行抽取操作。ETL数据迁移工具需针对不同的数据源类型建立不同的连接,如针对FTP、SFTP、LOCAL等不同类型需使用不同的通信连接方式。目前的ETL工具中,用户需针对每一数据源类型在ETL工具中选择并加载不同抽取组件。抽取组件保存并管理该类型数据源的访问方式、存储服务器的用户名密码等。本实施例中由抽象文件源层对不同数据源类型的抽取组件统一管理,向用户屏蔽具体的抽取组件加载和选择操作,用户仅需选择抽象后的唯一的抽取组件并设置数据源类型,向抽象文件源层发出抽取指令即可。具体针对每一类型数据源的抽取由相应类型的抽取组件完成,将文件抽取的抽象操作和针对每一类型待抽取对象的具体抽取操作分离,用户进行文件抽取时不需考虑不同待抽取对象的抽取方式差别。
步骤104:抽象文件源层根据待迁移对象的目的源的访问属性调用相应的装载组件,装载组件建立与目的源的连接。
该步骤为装载(Load)操作的前置准备工作,ETL工具通过本步骤与目的源建立的连接,以便于后续进行装载操作。目前的ETL数据迁移工具需针对不同的文件访问类型进行不同的装载操作,如针对FTP、SFTP、LOCAL等不同类型需使用不同的通信连接方式。本实施例中抽象文件源层仅进行统一的抽取组件调用操作,具体针对每一类型的目的源由相应类型的装载组件完成,将文件装载的抽象操作和针对每一类型的具体装载操作分离。该步骤能够对用户屏蔽不同类型的目的源的不同具体装载操作,用户进行文件装载时不需考虑不同类型目的源的装载方式差别,仅需向装载组件发出装载指令即可。
步骤105:抽取组件通过与数据源的连接从数据源处获取待迁移对象,装载组件通过与目的源的连接将待迁移对象装载至目的源。
经过步骤103中抽取组件建立与数据源的连接,和步骤104中装载组件建立与目的源的连接后,即可通过这两个连接所建立的输入输出流进行待迁移对象的抽取和装载,将待抽取对象由数据源迁移至目的源。
在某一具体应用场景中,待抽取对象访问类型为FTP和SFTP,待装载对象访问类型为LOCAL和HDFS。
针对这一应用场景,目前使用的ETL数据迁移工具中,由于只有抽取-转换-装载三个步骤,因此针对不同类型的待抽取对象和待装载对象访问类型,需单独进行不同的ETL数据迁移操作,如图2A所示,在进行一份文件转换时,ETL数据迁移工具中需包括FTP-LOCAL,FTP-HDFS,SFTP-LOCAL、SFTP-HDFS四种抽取装载方式的迁移流程才可实现所有类型间文件的迁移过程。本实施例提供的ETL数据迁移方法中,如图2B,增加了抽取组件,通过抽取组件调用单独的FTP抽取模块、SFTP抽取模块和LOCAL装载模块、HDFS装载模块进行装载,用户无需根据待抽取对象和待装载对象的访问类型对抽取和装载组件进行选择和修改,仅需使用同一的待抽取对象抽取接口进行抽取,简化了ETL数据迁移时的用户配置操作,减少了因访问类型选择错误造成的访问错误。
在上述应用场景中,若待抽取对象访问类型增加MQ类型。目前使用的文件迁移工具需针对新增加的访问类型修改每一种迁移方式,如图3A所示,除增加MQ类型待抽取对象抽取组件外,还需针对LOCAL类型待装载对象和HDFS类型待装载对象分别增加MQ-LOCAL、MQ-HDFS两种数据转换方式,用户进行操作时也需对更多种类的数据访问类型进行选择。本实施例提供的ETL数据迁移方法,如图3B,由于抽取组件的存在,所有访问类型的文件都会统一为抽象文件源,并且仅对抽象文件源进行数据转换操作,因此不需修改数据转换方式,也不需要修改文件抽取方式,只需增加MQ读取组件并使其可被抽象文件源层调用即可。
同样原理,若待装载对象类型增加,目前使用的数据迁移工具不仅需要增加相应的文件装载组件,也需针对新增加的访问类型修改每一种数据转换方式,而本实施例提供的ETL数据迁移方式仅需增加新的文件装载组件即可。进一步的,若待抽取对象和待装载对象都增加的情况下,目前使用的数据迁移工具需增加的数据转换方式更多,本实施例提供的数据迁移方式操作复杂度相对目前的数据迁移工具简便性更强。
由上述应用场景中两种数据迁移方式对比可见,使用本实施例提供的文件迁移方法,可以简化文件访问时的选择和修改,提高ETL数据迁移工具的易用性和可扩展性。同时由于装载组件的存在,在进行同源文件的多次或多目标位置分发时,可通过同一条抽取组件和数据源的连接对文件进行抽取,再通过装载组件和不同的目的源的多条连接进行分发,而不需要针对不同的数据源和目的源组合建立多个不同的抽取-装载连接组合。
进一步的,由于待抽取对象、ETL服务器、待装载对象可能并不在同一设备上,需进行远程连接读写。目前的ETL数据迁移工具一般需将待抽取对象上的数据先下载至至ETL服务器所在设备的存储器中,再载入数据转换模块选择不同的数据类型转换组件进行转换,这样就需进行两次IO操作。本实施例提供的ETL数据迁移方法,由于抽取组件的存在,本地数据源和远程数据源被视为同类的抽象数据源,可通过待抽取对象读取组件直接连接远程数据源,并直接进行数据转换装载等后续操作,实现远程数据源和本地数据源的统一操作,无需下载文件后再载入,就减少了两次IO操作的时间消耗及系统资源消耗。
在本实施例的其它应用场景中,针对ETL数据迁移工具的文件同步、文件分发、格式化数据转换、远程读写等功能中的各种修改,如增加待装载对象类型、多种格式文件转换、增加文件迁移方式等,因存在抽象文件源层,也只需根据需求变化仅修改单独的组件或模块,不需对整个ETL数据迁移工具的使用方法及内部结构进行修改。并且可利用抽取组件和装载组件封装后的统一接口便捷的进行多设备内文件统一管理、多文件合并、文件备份、多副本文件分发等辅助功能,进一步扩展ETL数据迁移工具的应用场景,提高数据迁移的效率及可靠性。
实施例2:
基于实施例1提供的ETL数据迁移方法,在不同的具体应用场景中,还可以根据使用需求或实际场景的不同进行补充和调整。
在某些应用场景中,在进行数据抽取时,由于待抽取对象可能较大,为了避免文件过大导致占用过多内存,因此采用输入输出流的方式进行文件读取和装载,每次仅读取待抽取对象的一部分,逐次读取直至将待读取对象全部读取完成,通过数据流读写的方式减少内存占用。具体的,在读取前可以设定每次读取的预设数据量,预设数据量可根据内存大小、读取速度等进行设定。
在实际的数据存储场景中,尤其是对于数据仓库方式存储的数据文件,同一待抽取对象可能在多个存储设备上存在相同备份;或在分布式文件系统中将一个大文件分为多个数据块进行,每一部分作为一个文件块,每一个或多个文件块分布在不同存储设备中。目前ETL数据迁移工具中,需要针对每个文件源给出具体的待抽取对象路径,用户必须在操作前获知所有待抽取对象的准确存储位置,并自行选择及输入待抽取对象路径,操作较为繁琐,且无法充分利用多个备份或分布式文件系统的特性。
在某些具体使用场景中,待抽取对象可能包括多个相同或不同的数据源,需要将这些数据源合并后作为一个整体迁移到同一个目的源,进行文件合并。在现有的ETL工具中,需要针对每一个数据源建立一个数据源到目的源的迁移流程,分别将不同数据源抽取后,在目的源所在端进行整合。本实施例提供的ETL数据迁移方法中,由于抽取组件将不同的数据源同一封装为抽象的数据源,将不同的目的源封装为抽象的目的源,因此仅需通过抽取组件和迁移组件建立一个抽象的数据源到抽象的目的源的迁移流程,通过抽取组件建立和每一个数据源的连接,并通过装载组件建立与目的源的唯一连接,将所有与数据源的连接抽取到的待抽取对象通过统一的与目的源的连接进行装载。利用抽取组件对多个数据源进行整合,便于对不同待抽取对象进行管理,将原本分散或重复的待抽取对象整合为完整同一的抽象待抽取对象,便于后续的转换和装载操作,避免了因文件选取错误或文件重复等造成的抽取错误。
在某些具体使用场景中,需要进行文件分发,即将同一个数据源的待抽取对象装载入多个目的源。在现有的ETL工具中,需要针对每一个目的源建立一个数据源到目的源的迁移流程,对同一个数据源和不同的目的源重复抽取-装载的流程。本实施例提供的ETL数据迁移方法中,仅需建立一个抽象的数据源到抽象的目的源的迁移流程,通过抽取组件建立与数据源的唯一连接,通过装载组件建立和每一个目的源的连接,从数据源对待抽取对象抽取一次后,通过装载组件和每一个目的源的连接将待抽取对象装载至每一个目的源,完成待抽取对象的分发。利用装载组件对多个目的源进行整合,仅需进行一次抽取即可完成多个目的源的装载,提高了文件分发的效率。
在某些应用场景中,待抽取对象的存储类型、文件目录较为复杂,或用户无法或不易获取待抽取对象的具体文件路径,此时若需用户对每一个待抽取对象进行文件路径输入或选择,不仅繁琐且易出错。抽取组件和装载组件可以保存所有可能被访问或已访问过的数据源和目的源的访问属性,包括访问类型、通信类型、存储位置列表或目录树、存储服务器的用户名密码等,对待抽取对象进行统一管理,在进行文件抽取时根据文件名及文件格式等自动寻找需抽取的待抽取对象,并根据寻找到的待抽取对象存储位置自动获取访问类型,自动选取相应的待抽取对象组件进行访问,从而无需用户对文件具体存储位置进行选择,进一步简化了用户进行数据迁移时的配置操作,提高了数据迁移效率。
进一步的,对多个不同访问属性或文件位置的待抽取对象进行抽取时,由于抽取组件和装载组件已保存了所有待抽取对象的访问属性,因此可以根据不同访问位置的通信带宽、当前是否忙碌、文件目录是否可访问等属性进行综合判断,选择目前最易访问的待抽取对象进行抽取,以获得尽可能块的访问速度及数据传输效率,进一步提高数据抽取的效率。
上述ETL数据迁移中的数据抽取方法,在实施例1的基础上进一步简化了待抽取对象的抽取操作,提高了待抽取对象抽取的效率,提高了ETL数据迁移工具的易用性和迁移效率。
实施例3:
在实际的数据迁移过程中,可能存在多种数据转换方式,如进行文件分发时根据不同的待装载对象类型将待抽取对象转换为不同类型的待装载对象,或将待抽取对象解析为结构化数据。目前的ETL数据迁移工具对于一份待抽取对象一般仅转换为一份特定类型的待装载对象,如要进行多种不同类型待装载对象的转换,或相同待抽取对象进行多次转换,需要多次抽取待抽取对象。
本实施例提供的ETL数据迁移方法,可以在设计ETL数据迁移流程时,在抽取组件和装载组件之外增加转换组件,将数据源的格式转换为目的源的格式。由于抽取组件和装载组件将不同类型的数据源和目的源进行了访问接口的抽象,封装为统一的抽象数据源和抽象目的源,因此对于不同类型的数据源和目的源,仅需一套针对抽象数据源转换为抽象目的源的数据转换组件即可完成,而不需要针对每一种数据源和每一种目的源增加相应的数据转换组件。在增加新的待抽取对象和待装载对象类型时,方便的对ETL数据迁移工具进行修改和使用,不会增加大量类型转换的选项,便于用户进行配置操作,并减少数据转换所花费的时间。
在某些实际应用场景中,数据转换并非某一文件类型转换为另一种文件类型,而是将内存中的结构化数据转换为文件,或将文件中的数据解析为结构化数据写入内存,如从xml文件中读取数据,或将数据写入xml文件中。本实施例提供的数据转换方法,将结构化数据视与文件类型的数据同等看待,就可以利用本实施例和其它实施例中所提供的ETL数据迁移方法对结构化数据的操作进行各优化,不需用户进行额外的配置操作,进一步简化了ETL数据迁移工具的操作,提高数据迁移效率。
上述ETL数据迁移过程中的数据类型转换操作,通过抽取组件和装载组件的封装,使得不同类型的数据源和目的源可以使用相同的数据转换组件进行转换,而不需针对不同类型进行一对一的转换,使得数据转换流程更加清晰,减少用户配置操作,减少因配置失误出现的错误,提高数据转换效率。
实施例4:
在上述实施例1-3提供的ETL数据迁移方法的基础上,本发明还提供了一种可用于实现上述方法的ETL数据迁移系统,如图4所示,是本发明实施例的系统架构示意图。
如图4A所示,本实施例的ETL数据迁移系统包含至少一个服务器1,图中以服务器1-1至服务器1-N表示,和至少一个客户端2,图中以客户端2-1至客户端2-N,任一个服务器1和任一个客户端2中都可部署文件系统,任一个服务器1和任一个客户端2间可进行文件交换。任一个服务器1可通过本发明实施例提供的ETL数据迁移方法,实现不同客户端间的文件抽取-转换-装载操作。
服务器1包括一个或多个处理器21以及存储器22,图4B中以一个处理器21为例,处理器21和存储器22可以通过总线或者其他方式连接,图4B中以通过总线连接为例。
客户端2包括一个或多个处理器23以及存储器24,图4C中以一个处理器23为例,处理器23和存储器24可以通过总线或者其他方式连接,图4C中以通过总线连接为例。
存储器22和24可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器22可选包括相对于处理器21远程设置的存储器,这些远程存储器可以通过网络连接至处理器21。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
程序指令/模块存储在存储器22或24中,当被一个或者多个处理器21或23执行时,执行上述实施例1中的ETL数据迁移方法,例如,执行以上描述的图1中的各个步骤。
本领域普通技术人员可以理解实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,Random AccessMemory)、磁盘或光盘等。
以上仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种ETL数据迁移方法,其特征在于,包括:
建立抽象文件源层,所述抽象文件源层加载预设数据源类型列表中的抽取组件,并加载所有预设目的源类型列表中的装载组件;
获取待迁移对象的数据源的类型,和待迁移对象目的源的类型;
抽象文件源层根据待迁移对象的数据源的类型调用相应的抽取组件,所述抽取组件建立与所述数据源的连接;
抽象文件源层根据待迁移对象的目的源的访问属性调用相应的装载组件,所述装载组件建立与目的源的连接;
抽取组件通过与数据源的连接从数据源处获取待迁移对象,装载组件通过与目的源的连接将待迁移对象装载至目的源。
2.根据权利要求1所述ETL数据迁移方法,其特征在于,抽取组件通过与数据源的连接从数据源处获取待迁移对象,装载组件通过与目的源的连接将待迁移对象装载至目的源,具体为:
获取待迁移对象的文件路径和待装载位置的文件路径;
通过与数据源的连接及待迁移对象的文件路径获取待迁移对象的输入流对象,通过与目的源的连接及待装载位置的文件路径获取输出流对象;
通过所述输入流对象逐次获取预设数据量的待抽取对象的数据,通过所述输出流对象将已获取的待抽取对象的数据装载至目的源,直至待抽取对象的数据全部被抽取并装载至目的源。
3.根据权利要求1所述ETL数据迁移方法,其特征在于,若数据源多于一个,还包括:
所述抽取组件使用待迁移对象数据源的访问属性建立与每一个所述数据源的连接;
所述抽取组件通过与每一个所述数据源的连接获取每一个所述数据源中的待迁移对象,所述装载组件通过与目的源的连接将待迁移对象装载至目的源。
4.根据权利要求1所述ETL数据迁移方法,其特征在于,若目的源多于一个,还包括:
所述装载组件使用待装载对象的目的源的访问属性建立与每一个所述目的源的连接;
抽取组件通过与数据源的连接从数据源处获取待迁移对象,所述装载组件通过与每一个所述目的源的连接将待迁移对象装载至每一个目的源。
5.根据权利要求4所述ETL数据迁移方法,其特征在于,还包括:
判断抽取组件通过与数据源的连接从数据源处获取待迁移对象的格式与目的源的需要的格式是否一致;
若否,抽象文件源层调用转换组件将待迁移对象转换为目的源的格式。
6.根据权利要求5所述ETL数据迁移方法,其特征在于,若所述数据源为结构化数据,具体为:
根据目的源的文件类型调用相应的转换组件,转换组件将待抽取对象的数据转换为目的源的格式。
7.根据权利要求5所述ETL数据迁移方法,其特征在于,若所述目的源为结构化数据,具体为:
根据数据源的文件类型调用相应的转换组件,转换组件根据目的源的数据结构将待抽取对象解析为结构化数据。
8.根据权利要求1所述ETL数据迁移方法,其特征在于,还包括:
判断抽象文件源层中是否已存在待迁移对象的数据源相应类型的抽取组件,和/或目的源相应类型的装载组件;
若否,抽象文件源层获取待迁移对象的数据源和/或目的源的类型,并保存,抽象文件源层根据所述数据源的类型加载相应的抽取组件,和/或根据所述目的源的类型加载相应的装载组件。
9.根据权利要求1所述ETL数据迁移方法,其特征在于,还包括:
判断抽取组件中是否已存在待迁移对象的数据源的访问属性,和/或装载组件中是否已存在待迁移对象的目的源的访问属性;
若否,获取数据源和/或目的源的访问属性,并保存。
10.一种ETL数据迁移系统,包括至少一个服务器端和至少一个客户端,其特征在于:
所述服务器端和所述客户端都可部署文件系统,所述服务器和所述客户端间可通过输入流和输出流进行文件和数据交换;
所述每个服务器包括至少一个第一处理器和第一存储器,所述至少一个第一处理器和第一存储器之间通过数据总线连接,所述第一存储器存储如权利要求1-9所述抽象文件源层、抽取组件和装载组件指令,所述第一处理器根据指令完成如权利要求1-9所述抽象文件源层、抽取组件和装载组件进行的操作;
所述每个客户端包括至少一个第二处理器和第二存储器,所述至少一个第二处理器和第二存储器之间通过数据总线连接,所述客户端作为权利要求1-9中的目的源或数据源使用。
CN201911221306.9A 2019-12-03 2019-12-03 一种etl数据迁移方法和系统 Active CN111159265B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911221306.9A CN111159265B (zh) 2019-12-03 2019-12-03 一种etl数据迁移方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911221306.9A CN111159265B (zh) 2019-12-03 2019-12-03 一种etl数据迁移方法和系统

Publications (2)

Publication Number Publication Date
CN111159265A CN111159265A (zh) 2020-05-15
CN111159265B true CN111159265B (zh) 2023-04-14

Family

ID=70556346

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911221306.9A Active CN111159265B (zh) 2019-12-03 2019-12-03 一种etl数据迁移方法和系统

Country Status (1)

Country Link
CN (1) CN111159265B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111930814B (zh) * 2020-05-29 2024-02-27 武汉达梦数据库股份有限公司 一种基于etl系统的文件事件的调度方法和etl系统
CN113220757A (zh) * 2021-04-24 2021-08-06 上海钢银科技发展有限公司 实时数仓自动etl方法、系统、设备及计算机存储介质
CN113239015B (zh) * 2021-05-27 2022-12-13 广东好太太智能家居有限公司 一种数据迁移方法、系统及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101826100A (zh) * 2010-03-16 2010-09-08 中国测绘科学研究院 面向广域网的多源应急信息自动整合系统及方法
CN106446131A (zh) * 2016-09-19 2017-02-22 中国南方电网有限责任公司电网技术研究中心 配用电多源异构数据的混合存储方法和系统
CN109359146A (zh) * 2018-09-16 2019-02-19 安徽三实软件科技有限公司 一种自动化etl数据处理工具及其使用方法
CN109669976A (zh) * 2018-11-22 2019-04-23 武汉达梦数据库有限公司 基于etl的数据服务方法及设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2505938A (en) * 2012-09-17 2014-03-19 Ibm ETL debugging
US9582556B2 (en) * 2013-10-03 2017-02-28 International Business Machines Corporation Automatic generation of an extract, transform, load (ETL) job

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101826100A (zh) * 2010-03-16 2010-09-08 中国测绘科学研究院 面向广域网的多源应急信息自动整合系统及方法
CN106446131A (zh) * 2016-09-19 2017-02-22 中国南方电网有限责任公司电网技术研究中心 配用电多源异构数据的混合存储方法和系统
CN109359146A (zh) * 2018-09-16 2019-02-19 安徽三实软件科技有限公司 一种自动化etl数据处理工具及其使用方法
CN109669976A (zh) * 2018-11-22 2019-04-23 武汉达梦数据库有限公司 基于etl的数据服务方法及设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
孙安健.通用ETL工具的研究与实现.《计算机应用与软件》.2012,第29卷(第12期),全文. *

Also Published As

Publication number Publication date
CN111159265A (zh) 2020-05-15

Similar Documents

Publication Publication Date Title
CN111625452B (zh) 流量回放方法和系统
CN111159265B (zh) 一种etl数据迁移方法和系统
CN108037961A (zh) 一种应用程序配置方法、装置、服务器和存储介质
CN110209642A (zh) 信息处理的方法、装置、服务器及计算机可读介质
CN109857723B (zh) 基于可扩容数据库集群的动态数据迁移方法及相关设备
CN110990356B (zh) 一种用于逻辑镜像的实时自动扩容方法和系统
CN112394932A (zh) 浏览器网页自动换肤方法及装置
CN112860412B (zh) 业务数据处理方法、装置、电子设备及存储介质
CN110019444A (zh) 一种操作请求处理方法、装置、设备及系统
CN113014510A (zh) 惯导系统分布式测试中数据缓存方法及装置
CN115994085A (zh) 代码覆盖率的测试处理方法、装置、设备及存储介质
CN106570152B (zh) 一种手机号码的海量提取方法及系统
CN113326288A (zh) 数据处理方法、装置、电子设备
CN112905332A (zh) 一种基于LVS负载均衡Django架构实现英文PDF在线快速翻译方法
CN103220327B (zh) 用户信息存储方法及装置
CN110417860A (zh) 文件传输管理方法、装置、设备及存储介质
CN112783724B (zh) 一种日志抓取调试方法、系统、智能设备及存储介质
CN109542625A (zh) 一种存储资源控制方法、装置及电子设备
CN111400281B (zh) 一种面向oss对象存储的gis数据质检与入库方法
CN111001157B (zh) 引用信息的生成方法和装置、存储介质及电子装置
CN114116481A (zh) 基于Kubernetes系统的人工智能算法模型的测试方法和系统
CN112650710A (zh) 数据迁移的发送方法及装置、存储介质、电子装置
CN110960858A (zh) 一种游戏资源的处理方法、装置、设备及存储介质
WO2022057698A1 (en) Efficient bulk loading multiple rows or partitions for single target table
CN117573730B (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
CB02 Change of applicant information

Address after: 430000 16-19 / F, building C3, future technology building, 999 Gaoxin Avenue, Donghu New Technology Development Zone, Wuhan, Hubei Province

Applicant after: Wuhan dream database Co.,Ltd.

Address before: 430000 16-19 / F, building C3, future technology building, 999 Gaoxin Avenue, Donghu New Technology Development Zone, Wuhan, Hubei Province

Applicant before: WUHAN DAMENG DATABASE Co.,Ltd.

CB02 Change of applicant information
CB03 Change of inventor or designer information

Inventor after: Yuan Songbiao

Inventor after: Mei Gang

Inventor before: Fu Quan

Inventor before: Yuan Songbiao

Inventor before: Mei Gang

CB03 Change of inventor or designer information
GR01 Patent grant
GR01 Patent grant