CN111241203A - Hive数据仓库同步方法、***、设备及存储介质 - Google Patents
Hive数据仓库同步方法、***、设备及存储介质 Download PDFInfo
- Publication number
- CN111241203A CN111241203A CN202010084651.9A CN202010084651A CN111241203A CN 111241203 A CN111241203 A CN 111241203A CN 202010084651 A CN202010084651 A CN 202010084651A CN 111241203 A CN111241203 A CN 111241203A
- Authority
- CN
- China
- Prior art keywords
- metadata
- data
- task
- synchronization
- data warehouse
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种Hive数据仓库同步方法、***、设备及存储介质,所述方法包括步骤:获取源Hive数据仓库的存储路径信息,判断源文件***中是否存在与存储路径信息对应的文件存储目录;若存在则生成元数据扫描任务;接收元数据扫描任务,基于元数据扫描任务判断目标Hive数据仓库中是否存在与源Hive数据仓库中元数据记录的表ID匹配的第二元数据;若存在则判断源Hive数据仓库的元数据和所述第二元数据是否相同;若不同则生成同步任务数据;基于数据文件同步任务数据执行数据文件同步任务;基于元数据同步任务数据执行元数据同步任务;本申请保证了数据同步之后元数据和数据文件的完整性;实现了Hive数据仓库稳定可靠地进行同步。
Description
技术领域
本发明涉及计算机技术领域,具体地说,涉及一种Hive数据仓库同步方法、***、设备及存储介质。
背景技术
Hive是基于Hadoop(由Apache基金会所开发的分布式***基础架构)开发的一个数据仓库工具,用来进行数据提取、转化或者加载。Hive是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。Hive数据仓库工具能将结构化的数据文件映射为一张数据库表,并提供SQL(结构化查询语言)查询功能,能将SQL语句转换为Map-Reduce(一种分布式计算***)任务来执行。Map-Reduce***中包含有Map(映射)单元和Reduce(归约)单元,Map单元用于进行数据映射,实现分拣和分堆,Reduce单元进行数据合并。
由于Hive是基于Hadoop来构建的,所以Hive需要和Hadoop相配合实现对数据库和数据表的包含存储在内的各种操作。Hive中通常用来存储元数据,即数据表的配置、属性信息;Hadoop中通常用来存储数据文件。元数据和数据文件是对应的。
Hive数据仓库中的数据量通常非常大,比如达到PB(Peta Byte,一种计算机储存单位)级。当需要对Hive数据仓库中的大数据量进行迁移时,如何快速高效且稳定可靠的实现数据迁移,是目前面临的一个问题。
现有技术中,基于Hadoop组件的distcp(分布式拷贝)命令可以实现底层Hadoop文件的数据迁移,但是不能与Hive库表进行对应,达到数据仓库的整体迁移的目的。另外distcp也存在部分版本不兼容问题。基于Hive元数据的MySQL(一种关系型数据库管理***)库表整体迁移可以实现元数据的迁移,却不能实现数据文件的迁移。
发明内容
针对现有技术中的问题,本发明的目的在于提供一种Hive数据仓库同步方法、***、设备及存储介质,实现了对Hive数据仓库中的元数据和Hadoop***中的数据文件进行稳定可靠地数据迁移。
为实现上述目的,本发明提供了一种Hive数据仓库同步方法,用于将源Hive数据仓库中的元数据同步至目标Hive数据仓库,且将源文件***中的数据文件同步至目标文件***,所述方法包括以下步骤:
S10,获取所述源Hive数据仓库的存储路径信息,判断所述源文件***中是否存在与所述存储路径信息对应的文件存储目录;
S20,若所述源文件***存在所述文件存储目录,则生成元数据扫描任务;
S30,接收所述元数据扫描任务,基于所述元数据扫描任务判断所述目标Hive数据仓库中是否存在与所述源Hive数据仓库中元数据记录的表ID匹配的第二元数据;
S40,若所述目标Hive数据仓库中存在所述第二元数据,判断所述源Hive数据仓库的元数据和所述目标Hive数据仓库中的第二元数据是否相同;若不同或者所述目标Hive数据仓库中不存在所述第二元数据,则生成同步任务数据,并将所述同步任务数据序列化为同步任务序列;所述同步任务数据包含有数据文件同步任务数据和元数据同步任务数据;
S50,接收所述同步任务序列,对所述同步任务序列进行反序列化,得到所述同步任务数据;
S70,基于所述同步任务数据中的所述数据文件同步任务数据执行数据文件同步任务,将源文件***中的数据文件同步至目标文件***;
S80,判断所述数据文件同步任务是否执行完成,若是则基于所述同步任务数据中的所述元数据同步任务数据执行元数据同步任务,将源Hive数据仓库中的元数据同步至目标Hive数据仓库,直至所有待同步的元数据同步完成。
优选地,所述源Hive数据仓库的元数据和所述目标Hive数据仓库中的第二元数据均记录有表类型信息,所述表类型信息为分区表或非分区表;所述分区表记录有分区信息,所述分区信息包含有分区ID、分区名、分区文件地址以及分区数据行数;
所述步骤S40包括:
S401,若所述目标Hive数据仓库中存在所述第二元数据,判断所述元数据的表类型信息是否为分区表;
S402,若所述元数据的表类型信息为分区表,判断所述源Hive数据仓库的元数据和所述目标Hive数据仓库中的第二元数据是否相同;若不同则生成元数据同步任务数据;
S403,判断所述元数据的分区表记录的分区文件地址在所述第二元数据的分区表中是否存在,若存在则判断所述元数据的分区表记录的分区信息与所述第二元数据的分区表记录的分区信息是否相同;若不同则生成数据文件同步任务数据。
优选地,所述步骤S40还包括:
S404,若所述元数据的表类型信息不是分区表,则判断所述源Hive数据仓库的元数据和所述目标Hive数据仓库中的第二元数据是否相同;若不同,则生成所述同步任务数据。
优选地,所述步骤S10包括:基于Map-Reduce***中的Map单元获取所述源Hive数据仓库的存储路径信息,并且判断所述源文件***中是否存在与所述存储路径信息对应的文件存储目录;
所述步骤S20包括:若所述源文件***存在所述文件存储目录,则基于所述Map单元生成元数据扫描任务;
所述步骤S30包括:接收所述元数据扫描任务,基于所述Map单元和所述元数据扫描任务判断所述目标Hive数据仓库中是否存在所述第二元数据;
所述步骤S40包括:若所述目标Hive数据仓库中存在所述第二元数据,则基于Map-Reduce***中的Reduce单元判断所述源Hive数据仓库的元数据和所述第二元数据是否相同;若不同,则基于所述Reduce单元生成同步任务数据,并将所述同步任务数据序列化为同步任务序列;
所述步骤S50包括:基于所述Map单元对所述同步任务序列进行反序列化,得到所述同步任务数据;
所述步骤S70包括:基于所述Reduce单元以及所述同步任务数据中的所述数据文件同步任务数据执行数据文件同步任务;
所述步骤S80包括:判断所述数据文件同步任务是否执行完成,若是则基于所述Map单元以及所述同步任务数据中的所述元数据同步任务数据执行元数据同步任务。
优选地,所述步骤S50和步骤S70之间还包括步骤:
S60,监听网络实时带宽,基于所述网络实时带宽和预设带宽-并发模型,确定Map单元和Reduce单元中设置的并发数;所述预设带宽-并发模型Y=100+0.75X,其中,Y表示Map单元和Reduce单元需要设置的并发数,X表示所述网络实时带宽,X的物理单位为兆。
优选地,所述步骤S403中生成的所述数据文件同步任务数据以及所述步骤S404中生成的所述同步任务数据均记录有任务类型,所述任务类型为同步非分区表或同步分区表,所述步骤S403中生成的所述数据文件同步任务数据记录的所述任务类型为同步分区表;所述步骤S404中生成的所述同步任务数据记录的所述任务类型为同步非分区表。
优选地,所述源文件***和所述目标文件***均为Hadoop文件***。
优选地,所述同步任务数据中记录有表名、源文件***路径以及目标文件***路径;所述元数据扫描任务记录有表名、表文件目录以及表类型信息,所述表类型信息为分区表或非分区表。
本发明还提供了一种Hive数据仓库同步***,用于实现上述任意一项Hive数据仓库同步方法,所述***包括:
文件存储目录获取模块,用于获取所述源Hive数据仓库的存储路径信息,判断所述源文件***中是否存在与所述存储路径信息对应的文件存储目录;
元数据扫描任务模块,用于在所述源文件***存在所述文件存储目录时,则生成元数据扫描任务;
第二元数据存在判定模块,用于接收所述元数据扫描任务,基于所述元数据扫描任务判断所述目标Hive数据仓库中是否存在与所述源Hive数据仓库中元数据记录的表ID匹配的第二元数据;
同步任务数据生成模块,用于在所述目标Hive数据仓库中存在所述第二元数据时,判断所述源Hive数据仓库的元数据和所述目标Hive数据仓库中的第二元数据是否相同;若不同,则生成同步任务数据,并将所述同步任务数据序列化为同步任务序列;所述同步任务数据包含有数据文件同步任务数据和元数据同步任务数据;
同步任务数据获取模块,用于接收所述同步任务序列,对所述同步任务序列进行反序列化,得到所述同步任务数据;
数据文件同步模块,用于基于所述同步任务数据中的所述数据文件同步任务数据执行数据文件同步任务,将源文件***中的数据文件同步至目标文件***;
元数据同步模块,用于判断所述数据文件同步任务是否执行完成,若是则基于所述同步任务数据中的所述元数据同步任务数据执行元数据同步任务,将源Hive数据仓库中的元数据同步至目标Hive数据仓库,直至所有待同步的元数据同步完成。
本发明还提供了一种Hive数据仓库同步设备,包括:
处理器;
存储器,其中存储有所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项Hive数据仓库同步方法的步骤。
本发明还提供了一种计算机可读存储介质,用于存储程序,所述程序被执行时实现上述任意一项Hive数据仓库同步方法的步骤。
本发明与现有技术相比,具有以下优点及突出性效果:
本发明提供的Hive数据仓库同步方法、***、设备及存储介质通过先确定源文件***存在待同步的文件存储目录,然后根据文件存储目录判断源Hive数据仓库和目标Hive数据仓库中的元数据是否一致,从而确定是否进行同步任务;本申请将数据文件同步任务和元数据同步任务分开执行,且数据文件同步任务先于元数据同步任务执行,保证了数据同步成功之后数据的完整性;实现了将数据仓库和数据文件整体稳定可靠地进行数据迁移。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显。
图1为本发明实施例公开的Hive数据仓库同步方法的架构原理图;
图2为本发明实施例公开的Hive数据仓库同步方法的流程示意图;
图3为图2中步骤S40的具体流程示意图;
图4为本发明实施例公开的Hive数据仓库同步***的结构示意图;
图5为本发明实施例公开的Hive数据仓库同步设备的结构示意图;
图6为本发明实施例公开的计算机可读存储介质的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的实施方式。相反,提供这些实施方式使得本发明将全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的结构,因而将省略对它们的重复描述。
本发明实施例公开了一种Hive数据仓库同步方法,如图1所示,该方法用于将源集群100中的源Hive数据仓库101中的元数据同步至目标集群300的目标Hive数据仓库301,且将源集群100中的源文件***102中的数据文件同步至目标集群300的目标文件***302。由于Map-Reduce***200作业的高并发性和稳定性,所以本实施例基于Map-Reduce***200中的Map单元以及Reduce单元实现Hive数据仓库的元数据同步以及该数据仓库底层的Hadoop文件***的数据文件同步。
如图2所示,该Hive数据仓库同步方法包括以下步骤:
步骤S10:基于Map-Reduce***200中的Map单元获取上述源Hive数据仓库101的存储路径信息,并且判断上述源文件***102中是否存在与上述存储路径信息对应的文件存储目录。上述源文件***102和上述目标文件***302均为Hadoop文件***。具体来说,一个Hive数据仓库中包含有多个数据库,一个数据库包含有多个表。表包含有多个字段信息。用于表示元数据的表的个数与上述字段的个数相同,且一个字段对应一个表示元数据的表。即该Map单元首先链接需要同步的源Hive数据仓库101,获取该Hive数据仓库下所有的表的信息。表的信息包括但不限于表名、表所述库名、表的注释、表的属性信息、表的字段信息以及表的存储路径信息。进而获取到所有表的存储路径信息。然后链接需要同步的源文件***102中是否存在上述存储路径信息对应的文件存储目录。
步骤S20:若上述源文件***102存在上述文件存储目录,则基于上述Map单元生成元数据扫描任务。元数据存储有包括但不限于表的配置以及属性信息。上述元数据扫描任务记录有待扫描的表名、表文件目录以及上述表类型信息,上述表类型信息为分区表或非分区表。若上述源文件***102不存在上述文件存储目录,则执行步骤S90。
步骤S30:接收上述元数据扫描任务,基于上述Map单元和上述元数据扫描任务判断上述目标Hive数据仓库301中是否存在与上述源Hive数据仓库101中元数据记录的表ID匹配的第二元数据。
上述源Hive数据仓库101的元数据和上述目标Hive数据仓库301中的第二元数据均记录有表类型信息。上述表类型信息为分区表或非分区表;上述分区表记录有分区信息,上述分区信息包含但不限于分区ID、分区名、分区文件地址以及分区数据行数。
步骤S40:若上述目标Hive数据仓库301中存在上述第二元数据,则基于Map-Reduce***200中的Reduce单元判断上述源Hive数据仓库101的元数据和上述第二元数据是否相同。若源Hive数据仓库101的元数据和上述第二元数据不相同,或者上述目标Hive数据仓库301中不存在上述第二元数据;则基于上述Reduce单元生成同步任务数据,并将上述同步任务数据序列化为同步任务序列。若源Hive数据仓库101的元数据和上述第二元数据相同,则表示该元数据的表不需要同步,判断下一个元数据,也即表示元数据的表;直至所有的元数据判断完成。上述同步任务数据包含有数据文件同步任务数据和元数据同步任务数据。
由于表类型信息区分为分区表以及非分区表,非分区表只有一个目录,即一个ID;分区表具有多个目录,即多个分区ID。每一个分区ID都对应有各自的分区信息。所以如图3所示,步骤S40包括:
S401,若上述目标Hive数据仓库301中存在上述第二元数据,判断上述元数据的表类型信息是否为分区表。
S402,若上述元数据的表类型信息为分区表,判断上述源Hive数据仓库101的元数据和上述目标Hive数据仓库301中的第二元数据是否相同。若相同则继续判断下一个元数据,即循环执行步骤S402。若不同则生成元数据同步任务数据。
S403,判断上述元数据的分区表记录的分区文件地址在上述第二元数据的分区表中是否存在,若存在则判断上述元数据的分区表记录的分区信息与上述第二元数据的分区表记录的分区信息是否相同。若上述元数据的分区表记录的分区文件地址在第二元数据的分区表中不存在,或者元数据的分区表记录的分区信息与第二元数据的分区表记录的分区信息不相同,则生成数据文件同步任务数据。
S404,若上述元数据的表类型信息不是分区表,则判断上述源Hive数据仓库101的元数据和上述目标Hive数据仓库301中的第二元数据是否相同;若不同,则生成上述同步任务数据。若相同则继续判断下一个元数据,即循环执行步骤S404。对同步任务数据的序列化可以方便数据传输,并且传输速度快,还很安全。
上述步骤S403中生成的上述数据文件同步任务数据以及上述步骤S404中生成的上述同步任务数据均记录有任务类型,上述任务类型为同步非分区表或同步分区表,上述步骤S403中生成的上述数据文件同步任务数据记录的上述任务类型为同步分区表;上述步骤S404中生成的上述同步任务数据记录的上述任务类型为同步非分区表。
上述同步任务数据中记录有表名、源文件***102路径以及目标文件***302路径;上述元数据扫描任务记录有表名、表文件目录以及上述表类型信息,上述表类型信息为分区表或非分区表。
步骤S50:接收上述同步任务序列,基于上述Map单元对上述同步任务序列进行反序列化,得到上述同步任务数据。
步骤S60:监听网络实时带宽,基于上述网络实时带宽和预设带宽-并发模型,确定Map单元和Reduce单元中设置的并发数;上述预设带宽-并发模型Y=100+0.75X,其中,Y表示Map单元和Reduce单元需要设置的并发数,X表示上述网络实时带宽,X的物理单位为兆。
在本申请的另一个实施例中,当网络带宽小于或者等于第一预设阈值,可以将并发数设为100;当网络带宽大于第一预设阈值且小于第二预设阈值,并发数设为500;网络带宽大于或者等于第二预设阈值时,并发数设为1000。第一预设阈值小于第二预设阈值。比如,第一预设阈值为300兆,第二预设阈值为500兆。
步骤S70:基于上述Reduce单元以及上述同步任务数据中的上述数据文件同步任务数据执行数据文件同步任务,将源文件***102中的数据文件同步至目标文件***302。由于数据文件的数据量远远大于元数据的数据量,所以本申请通过先进行数据文件同步,再进行元数据同步,可以确保数据仓库同步的完全成功。
步骤S80:判断上述数据文件同步任务是否执行完成,若是则基于上述Map单元以及上述同步任务数据中的上述元数据同步任务数据执行元数据同步任务。将源Hive数据仓库101中的元数据同步至目标Hive数据仓库301,直至所有待同步的元数据同步完成。
步骤S90:该方法执行结束。
如图4所示,本发明实施例还公开了一种Hive数据仓库同步***4,该***用于实现上述任一实施例所述的Hive数据仓库同步方法,该***包括:
文件存储目录获取模块41,用于获取上述源Hive数据仓库的存储路径信息,判断上述源文件***中是否存在与上述存储路径信息对应的文件存储目录;
元数据扫描任务模块42,用于在上述源文件***存在上述文件存储目录时,则生成元数据扫描任务。
第二元数据存在判定模块43,用于接收上述元数据扫描任务,基于上述元数据扫描任务判断上述目标Hive数据仓库中是否存在与上述源Hive数据仓库中元数据记录的表ID匹配的第二元数据。
同步任务数据生成模块44,用于在上述目标Hive数据仓库中存在上述第二元数据时,判断上述源Hive数据仓库的元数据和上述目标Hive数据仓库中的第二元数据是否相同;若不同,则生成同步任务数据,并将上述同步任务数据序列化为同步任务序列;上述同步任务数据包含有数据文件同步任务数据和元数据同步任务数据。
同步任务数据获取模块45,用于接收上述同步任务序列,对上述同步任务序列进行反序列化,得到上述同步任务数据。
Map-Reduce***并发设置模块46,用于监听网络实时带宽,基于上述网络实时带宽和预设带宽-并发模型,确定Map单元和Reduce单元中设置的并发数;上述预设带宽-并发模型Y=100+0.75X,其中,Y表示Map单元和Reduce单元需要设置的并发数,X表示上述网络实时带宽,X的物理单位为兆。
数据文件同步模块47,用于基于上述同步任务数据中的上述数据文件同步任务数据执行数据文件同步任务,将源文件***中的数据文件同步至目标文件***。
元数据同步模块48,用于判断上述数据文件同步任务是否执行完成,若是则基于上述同步任务数据中的上述元数据同步任务数据执行元数据同步任务,将源Hive数据仓库中的元数据同步至目标Hive数据仓库,直至所有待同步的元数据同步完成。
本实施例中,上述同步任务数据生成模块44包括:
表类型信息判断单元,用于在上述目标Hive数据仓库中存在上述第二元数据时,判断上述元数据的表类型信息是否为分区表。
分区表元数据同步单元,用于在上述元数据的表类型信息为分区表时,判断上述源Hive数据仓库的元数据和上述目标Hive数据仓库中的第二元数据是否相同。若相同则继续判断下一个元数据,即循环执行分区表元数据同步单元。若不同则生成元数据同步任务数据。
分区表数据文件同步单元,用于判断上述元数据的分区表记录的分区文件地址在上述第二元数据的分区表中是否存在,若存在则判断上述元数据的分区表记录的分区信息与上述第二元数据的分区表记录的分区信息是否相同。若上述元数据的分区表记录的分区文件地址在第二元数据的分区表中不存在,或者元数据的分区表记录的分区信息与第二元数据的分区表记录的分区信息不相同,则生成数据文件同步任务数据。
非分区表同步单元,用于在上述元数据的表类型信息不是分区表时,则判断上述源Hive数据仓库的元数据和上述目标Hive数据仓库中的第二元数据是否相同;若不同,则生成上述同步任务数据。若相同则继续判断下一个元数据,即循环执行非分区表同步单元。
可以理解的是,本发明的Hive数据仓库同步***还包括其他支持Hive数据仓库同步***运行的现有功能模块。图4显示的Hive数据仓库同步***仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
本实施例中的Hive数据仓库同步***用于实现上述的Hive数据仓库同步的方法,因此对于Hive数据仓库同步***的具体实施步骤可以参照上述对Hive数据仓库同步的方法的描述,此处不再赘述。
本发明实施例还公开了一种Hive数据仓库同步设备,包括处理器和存储器,其中存储器存储有所述处理器的可执行指令;处理器配置为经由执行可执行指令来执行上述Hive数据仓库同步方法中的步骤。图5是本发明公开的Hive数据仓库同步设备的结构示意图。下面参照图5来描述根据本发明的这种实施方式的电子设备600。图5显示的电子设备600仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图5所示,电子设备600以通用计算设备的形式表现。电子设备600的组件可以包括但不限于:至少一个处理单元610、至少一个存储单元620、连接不同平台组件(包括存储单元620和处理单元610)的总线630、显示单元640等。
其中,存储单元存储有程序代码,程序代码可以被处理单元610执行,使得处理单元610执行本说明书上述Hive数据仓库同步方法部分中描述的根据本发明各种示例性实施方式的步骤。例如,处理单元610可以执行如图1中所示的步骤。
存储单元620可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)6201和/或高速缓存存储单元6202,还可以进一步包括只读存储单元(ROM)6203。
存储单元620还可以包括具有一组(至少一个)程序模块6205的程序/实用工具6204,这样的程序模块6205包括但不限于:操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线630可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、***总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备600也可以与一个或多个外部设备700(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备600交互的设备通信,和/或与使得该电子设备600能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口650进行。并且,电子设备600还可以通过网络适配器660与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器660可以通过总线630与电子设备600的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备600使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储平台等。
本发明还公开了一种计算机可读存储介质,用于存储程序,所述程序被执行时实现上述Hive数据仓库同步方法中的步骤。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在终端设备上运行时,程序代码用于使终端设备执行本说明书上述Hive数据仓库同步方法中描述的根据本发明各种示例性实施方式的步骤。
如上所示,该实施例的计算机可读存储介质的程序在执行时,通过先确定源文件***存在待同步的文件存储目录,然后根据文件存储目录判断源Hive数据仓库和目标Hive数据仓库中的元数据是否一致,从而确定是否进行同步任务;本申请将数据文件同步任务和元数据同步任务分开执行,且数据文件同步任务先于元数据同步任务执行,保证了数据同步成功之后数据的完整性;实现了将数据仓库和数据文件整体稳定可靠地进行数据迁移。
图6是本发明的计算机可读存储介质的结构示意图。参考图6所示,描述了根据本发明的实施方式的用于实现上述方法的程序产品800,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
本发明实施例提供的Hive数据仓库同步方法、***、设备及存储介质基于Map-Reduce***中的Map单元先确定源文件***存在待同步的文件存储目录,然后根据文件存储目录判断源Hive数据仓库和目标Hive数据仓库中的元数据是否一致,从而确定是否需要进行同步;本申请基于Map-Reduce***中的Reduce单元将数据文件同步任务和元数据同步任务分开执行,且数据文件同步任务先于元数据同步任务执行,保证了数据同步成功之后数据的完整性;本申请基于Map-Reduce***作业的高并发性和稳定性,实现了将数据仓库和数据文件整体稳定可靠地进行数据迁移。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (11)
1.一种Hive数据仓库同步方法,用于将源Hive数据仓库中的元数据同步至目标Hive数据仓库,且将源文件***中的数据文件同步至目标文件***,其特征在于,所述方法包括以下步骤:
S10,获取所述源Hive数据仓库的存储路径信息,判断所述源文件***中是否存在与所述存储路径信息对应的文件存储目录;
S20,若所述源文件***存在所述文件存储目录,则生成元数据扫描任务;
S30,接收所述元数据扫描任务,基于所述元数据扫描任务判断所述目标Hive数据仓库中是否存在与所述源Hive数据仓库中元数据记录的表ID匹配的第二元数据;
S40,若所述目标Hive数据仓库中存在所述第二元数据,判断所述源Hive数据仓库的元数据和所述目标Hive数据仓库中的第二元数据是否相同;若不同或者所述目标Hive数据仓库中不存在所述第二元数据,则生成同步任务数据,并将所述同步任务数据序列化为同步任务序列;所述同步任务数据包含有数据文件同步任务数据和元数据同步任务数据;
S50,接收所述同步任务序列,对所述同步任务序列进行反序列化,得到所述同步任务数据;
S70,基于所述同步任务数据中的所述数据文件同步任务数据执行数据文件同步任务,将源文件***中的数据文件同步至目标文件***;
S80,判断所述数据文件同步任务是否执行完成,若是则基于所述同步任务数据中的所述元数据同步任务数据执行元数据同步任务,将源Hive数据仓库中的元数据同步至目标Hive数据仓库,直至所有待同步的元数据同步完成。
2.如权利要求1所述的Hive数据仓库同步方法,其特征在于,所述源Hive数据仓库的元数据和所述目标Hive数据仓库中的第二元数据均记录有表类型信息,所述表类型信息为分区表或非分区表;所述分区表记录有分区信息,所述分区信息包含有分区ID、分区名、分区文件地址以及分区数据行数;
所述步骤S40包括:
S401,若所述目标Hive数据仓库中存在所述第二元数据,判断所述元数据的表类型信息是否为分区表;
S402,若所述元数据的表类型信息为分区表,判断所述源Hive数据仓库的元数据和所述目标Hive数据仓库中的第二元数据是否相同;若不同则生成元数据同步任务数据;
S403,判断所述元数据的分区表记录的分区文件地址在所述第二元数据的分区表中是否存在,若存在则判断所述元数据的分区表记录的分区信息与所述第二元数据的分区表记录的分区信息是否相同;若不同则生成数据文件同步任务数据。
3.如权利要求2所述的Hive数据仓库同步方法,其特征在于,所述步骤S40还包括:
S404,若所述元数据的表类型信息不是分区表,则判断所述源Hive数据仓库的元数据和所述目标Hive数据仓库中的第二元数据是否相同;若不同,则生成所述同步任务数据。
4.如权利要求1所述的Hive数据仓库同步方法,其特征在于,所述步骤S10包括:基于Map-Reduce***中的Map单元获取所述源Hive数据仓库的存储路径信息,并且判断所述源文件***中是否存在与所述存储路径信息对应的文件存储目录;
所述步骤S20包括:若所述源文件***存在所述文件存储目录,则基于所述Map单元生成元数据扫描任务;
所述步骤S30包括:接收所述元数据扫描任务,基于所述Map单元和所述元数据扫描任务判断所述目标Hive数据仓库中是否存在所述第二元数据;
所述步骤S40包括:若所述目标Hive数据仓库中存在所述第二元数据,则基于Map-Reduce***中的Reduce单元判断所述源Hive数据仓库的元数据和所述第二元数据是否相同;若不同,则基于所述Reduce单元生成同步任务数据,并将所述同步任务数据序列化为同步任务序列;
所述步骤S50包括:基于所述Map单元对所述同步任务序列进行反序列化,得到所述同步任务数据;
所述步骤S70包括:基于所述Reduce单元以及所述同步任务数据中的所述数据文件同步任务数据执行数据文件同步任务;
所述步骤S80包括:判断所述数据文件同步任务是否执行完成,若是则基于所述Map单元以及所述同步任务数据中的所述元数据同步任务数据执行元数据同步任务。
5.如权利要求4所述的Hive数据仓库同步方法,其特征在于,所述步骤S50和步骤S70之间还包括步骤:
S60,监听网络实时带宽,基于所述网络实时带宽和预设带宽-并发模型,确定Map单元和Reduce单元中设置的并发数;所述预设带宽-并发模型Y=100+0.75X,其中,Y表示Map单元和Reduce单元需要设置的并发数,X表示所述网络实时带宽,X的物理单位为兆。
6.如权利要求3所述的Hive数据仓库同步方法,其特征在于,所述步骤S403中生成的所述数据文件同步任务数据以及所述步骤S404中生成的所述同步任务数据均记录有任务类型,所述任务类型为同步非分区表或同步分区表,所述步骤S403中生成的所述数据文件同步任务数据记录的所述任务类型为同步分区表;所述步骤S404中生成的所述同步任务数据记录的所述任务类型为同步非分区表。
7.如权利要求1所述的Hive数据仓库同步方法,其特征在于,所述源文件***和所述目标文件***均为Hadoop文件***。
8.如权利要求1所述的Hive数据仓库同步方法,其特征在于,所述同步任务数据中记录有表名、源文件***路径以及目标文件***路径;所述元数据扫描任务记录有表名、表文件目录以及表类型信息,所述表类型信息为分区表或非分区表。
9.一种Hive数据仓库同步***,其特征在于,用于实现如权利要求1-8任一项所述的Hive数据仓库同步方法,所述***包括:
文件存储目录获取模块,用于获取所述源Hive数据仓库的存储路径信息,判断所述源文件***中是否存在与所述存储路径信息对应的文件存储目录;
元数据扫描任务模块,用于在所述源文件***存在所述文件存储目录时,则生成元数据扫描任务;
第二元数据存在判定模块,用于接收所述元数据扫描任务,基于所述元数据扫描任务判断所述目标Hive数据仓库中是否存在与所述源Hive数据仓库中元数据记录的表ID匹配的第二元数据;
同步任务数据生成模块,用于在所述目标Hive数据仓库中存在所述第二元数据时,判断所述源Hive数据仓库的元数据和所述目标Hive数据仓库中的第二元数据是否相同;若不同,则生成同步任务数据,并将所述同步任务数据序列化为同步任务序列;所述同步任务数据包含有数据文件同步任务数据和元数据同步任务数据;
同步任务数据获取模块,用于接收所述同步任务序列,对所述同步任务序列进行反序列化,得到所述同步任务数据;
数据文件同步模块,用于基于所述同步任务数据中的所述数据文件同步任务数据执行数据文件同步任务,将源文件***中的数据文件同步至目标文件***;
元数据同步模块,用于判断所述数据文件同步任务是否执行完成,若是则基于所述同步任务数据中的所述元数据同步任务数据执行元数据同步任务,将源Hive数据仓库中的元数据同步至目标Hive数据仓库,直至所有待同步的元数据同步完成。
10.一种Hive数据仓库同步设备,其特征在于,包括:
处理器;
存储器,其中存储有所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1至8中任意一项所述Hive数据仓库同步方法的步骤。
11.一种计算机可读存储介质,用于存储程序,其特征在于,所述程序被执行时实现权利要求1至8中任意一项所述Hive数据仓库同步方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010084651.9A CN111241203B (zh) | 2020-02-10 | 2020-02-10 | Hive数据仓库同步方法、***、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010084651.9A CN111241203B (zh) | 2020-02-10 | 2020-02-10 | Hive数据仓库同步方法、***、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111241203A true CN111241203A (zh) | 2020-06-05 |
CN111241203B CN111241203B (zh) | 2022-10-04 |
Family
ID=70872989
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010084651.9A Active CN111241203B (zh) | 2020-02-10 | 2020-02-10 | Hive数据仓库同步方法、***、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111241203B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111563123A (zh) * | 2020-05-07 | 2020-08-21 | 北京首汽智行科技有限公司 | 一种hive仓库元数据实时同步方法 |
CN112233727A (zh) * | 2020-10-29 | 2021-01-15 | 北京诺禾致源科技股份有限公司 | 数据分区存储方法及装置 |
CN112306965A (zh) * | 2020-10-02 | 2021-02-02 | 中盈优创资讯科技有限公司 | 数据写入存储方法、装置、设备和计算机可读存储介质 |
CN112527756A (zh) * | 2020-12-17 | 2021-03-19 | 厦门市美亚柏科信息股份有限公司 | 一种文件同步操作方法、终端设备及存储介质 |
CN112699118A (zh) * | 2020-12-25 | 2021-04-23 | 京东方科技集团股份有限公司 | 数据同步方法及相应的装置、***、存储介质 |
CN113032472A (zh) * | 2021-03-23 | 2021-06-25 | 彭泳 | 一种非实时数据传递方法 |
CN113434462A (zh) * | 2021-06-21 | 2021-09-24 | 北京金山云网络技术有限公司 | Hdfs数据的转移方法及装置、存储介质、电子设备 |
CN113742376A (zh) * | 2020-10-28 | 2021-12-03 | 北京沃东天骏信息技术有限公司 | 一种同步数据的方法、第一服务器以及同步数据的*** |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106599106A (zh) * | 2016-11-28 | 2017-04-26 | 深圳中兴网信科技有限公司 | 基于分布式文件***的数据同步方法及装置 |
CN110162517A (zh) * | 2019-05-30 | 2019-08-23 | 深圳前海微众银行股份有限公司 | 数据迁移方法、装置、设备及计算机可读存储介质 |
CN110209680A (zh) * | 2019-04-25 | 2019-09-06 | 深圳壹账通智能科技有限公司 | 基于Hive外部表的数据更新方法、装置、及电子装置 |
CN110222017A (zh) * | 2019-05-13 | 2019-09-10 | 北京百度网讯科技有限公司 | 实时数据的处理方法、装置、设备及计算机可读存储介质 |
-
2020
- 2020-02-10 CN CN202010084651.9A patent/CN111241203B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106599106A (zh) * | 2016-11-28 | 2017-04-26 | 深圳中兴网信科技有限公司 | 基于分布式文件***的数据同步方法及装置 |
CN110209680A (zh) * | 2019-04-25 | 2019-09-06 | 深圳壹账通智能科技有限公司 | 基于Hive外部表的数据更新方法、装置、及电子装置 |
CN110222017A (zh) * | 2019-05-13 | 2019-09-10 | 北京百度网讯科技有限公司 | 实时数据的处理方法、装置、设备及计算机可读存储介质 |
CN110162517A (zh) * | 2019-05-30 | 2019-08-23 | 深圳前海微众银行股份有限公司 | 数据迁移方法、装置、设备及计算机可读存储介质 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111563123A (zh) * | 2020-05-07 | 2020-08-21 | 北京首汽智行科技有限公司 | 一种hive仓库元数据实时同步方法 |
CN112306965A (zh) * | 2020-10-02 | 2021-02-02 | 中盈优创资讯科技有限公司 | 数据写入存储方法、装置、设备和计算机可读存储介质 |
CN113742376A (zh) * | 2020-10-28 | 2021-12-03 | 北京沃东天骏信息技术有限公司 | 一种同步数据的方法、第一服务器以及同步数据的*** |
CN112233727A (zh) * | 2020-10-29 | 2021-01-15 | 北京诺禾致源科技股份有限公司 | 数据分区存储方法及装置 |
CN112233727B (zh) * | 2020-10-29 | 2024-01-26 | 北京诺禾致源科技股份有限公司 | 数据分区存储方法及装置 |
CN112527756A (zh) * | 2020-12-17 | 2021-03-19 | 厦门市美亚柏科信息股份有限公司 | 一种文件同步操作方法、终端设备及存储介质 |
CN112699118A (zh) * | 2020-12-25 | 2021-04-23 | 京东方科技集团股份有限公司 | 数据同步方法及相应的装置、***、存储介质 |
CN113032472A (zh) * | 2021-03-23 | 2021-06-25 | 彭泳 | 一种非实时数据传递方法 |
WO2022198688A1 (zh) * | 2021-03-23 | 2022-09-29 | 彭泳 | 一种非实时数据传递方法 |
CN113434462A (zh) * | 2021-06-21 | 2021-09-24 | 北京金山云网络技术有限公司 | Hdfs数据的转移方法及装置、存储介质、电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111241203B (zh) | 2022-10-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111241203B (zh) | Hive数据仓库同步方法、***、设备及存储介质 | |
CN107506451B (zh) | 用于数据交互的异常信息监控方法及装置 | |
US9646030B2 (en) | Computer-readable medium storing program and version control method | |
US11403269B2 (en) | Versioning validation for data transfer between heterogeneous data stores | |
CN111324610A (zh) | 一种数据同步的方法及装置 | |
US20150347481A1 (en) | Storing and querying multidimensional data using first and second indicies | |
US8938430B2 (en) | Intelligent data archiving | |
CN111709527A (zh) | 运维知识图谱库的建立方法、装置、设备及存储介质 | |
CN111309760A (zh) | 数据检索方法、***、设备及存储介质 | |
CN108628885B (zh) | 一种数据同步方法、装置及存储设备 | |
US10855750B2 (en) | Centralized management of webservice resources in an enterprise | |
US20230012642A1 (en) | Method and device for snapshotting metadata, and storage medium | |
CA2702133A1 (en) | Redistribute native xml index key shipping | |
CN108108478B (zh) | 数据格式转换方法、***及电子设备 | |
CN111984745B (zh) | 数据库字段动态扩展方法、装置、设备及存储介质 | |
CN116501700B (zh) | 一种app格式化文件离线存储方法、装置、设备及存储介质 | |
CN111459882B (zh) | 分布式文件***的命名空间事务处理方法和装置 | |
CN111444148A (zh) | 基于MapReduce的数据传输方法和装置 | |
CN111522820A (zh) | 数据存储结构、存储检索方法、***、设备及存储介质 | |
CN113760600B (zh) | 一种数据库备份方法、数据库还原方法和相关装置 | |
US20140136471A1 (en) | Rapid Provisioning of Information for Business Analytics | |
CN115374078A (zh) | 一种数据存储与读取***及其工作方法 | |
CN110543520B (zh) | 一种数据迁移的方法和装置 | |
CN113127496B (zh) | 数据库中变更数据的确定方法及装置、介质和设备 | |
CN111291130B (zh) | Hive表一致性校验方法、***、设备及存储介质 |
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 |