CN116610381A - 数据卸载方法、装置、计算机设备、存储介质 - Google Patents

数据卸载方法、装置、计算机设备、存储介质 Download PDF

Info

Publication number
CN116610381A
CN116610381A CN202310568128.7A CN202310568128A CN116610381A CN 116610381 A CN116610381 A CN 116610381A CN 202310568128 A CN202310568128 A CN 202310568128A CN 116610381 A CN116610381 A CN 116610381A
Authority
CN
China
Prior art keywords
data
file
unloaded
configuration
local
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.)
Pending
Application number
CN202310568128.7A
Other languages
English (en)
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.)
Industrial Bank Co Ltd
CIB Fintech Services Shanghai Co Ltd
Original Assignee
Industrial Bank Co Ltd
CIB Fintech Services Shanghai 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 Industrial Bank Co Ltd, CIB Fintech Services Shanghai Co Ltd filed Critical Industrial Bank Co Ltd
Priority to CN202310568128.7A priority Critical patent/CN116610381A/zh
Publication of CN116610381A publication Critical patent/CN116610381A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • 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/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • 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)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开涉及一种数据卸载方法、装置、计算机设备、存储介质。所述方法包括:获取目标数据库中待卸载数据的数据参数;读取预先配置的配置文件并利用所述数据参数将所述待卸载数据输出至临时文件中;按照预先设置的存储策略以及所述配置文件中的配置信息,将所述临时文件中的待卸载数据加载至本地文件中,所述本地文件是利用所述配置文件中的配置信息创建的;根据所述配置文件和所述本地文件的数据信息生成与所述本地文件对应的属性文件,利用所述本地文件和所述属性文件得到数据卸载文件。采用本方法能够提高数据卸载的效率,保证数据卸载的准确性,并且保证数据卸载后能够使其他的数据库、数据仓库以及存储介质进行加载。

Description

数据卸载方法、装置、计算机设备、存储介质
技术领域
本公开涉及数据处理技术领域,特别是涉及一种数据卸载方法、装置、计算机设备、存储介质。
背景技术
随着信息技术的发展,越来越多的企业依赖于在云平台或者大数据平台中进行云计算对其产生的数据进行处理,进而得到所需要的数据。在云平台或者大数据平台中得到的数据通常情况下需要卸载到其本地的数据库中。另外,在企业内部或者不同的企业间,会将一个数据库或多个数据库中的数据卸载到目标数据库中。
然而,在数据卸载的过程中,由于数据源的不同,在卸载时需要考虑到每种数据源,针对每种数据源需要进行适配。降低数据卸载的效率,另外,当数据量较大时,在卸载过程中可能会出现错误,导致数据卸载后得到的数据不准确。除此之外,由于数据源的不同,卸载之后的数据的类型、格式、配置信息等也不相同,其他的数据库、数据仓库以及存储介质难以对多种类型的数据进行加载。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高数据卸载的效率,保证数据卸载的准确性,并且保证数据卸载后能够使其他的数据库、数据仓库以及存储介质进行加载的数据卸载方法、装置、计算机设备、存储介质。
第一方面,本公开提供了一种数据卸载方法。所述方法包括:
获取目标数据库中待卸载数据的数据参数;
读取预先配置的配置文件并利用所述数据参数将所述待卸载数据输出至临时文件中;
按照预先设置的存储策略以及所述配置文件中的配置信息,将所述临时文件中的待卸载数据加载至本地文件中,所述本地文件是利用所述配置文件中的配置信息创建的;
根据所述配置文件和所述本地文件的数据信息生成与所述本地文件对应的属性文件,利用所述本地文件和所述属性文件得到数据卸载文件。
在其中一个实施例中,所述按照预先设置的存储策略以及所述配置文件中的配置信息,将所述临时文件中的待卸载数据加载至本地文件中,包括:
获取所述配置文件的配置信息中的加载的数据的每行的总长度、加载数据时每次写入的行数;
按照预设的数据读取量、加载的数据的每行的总长度、加载数据时每次写入的行数将所述临时文件中的待卸载数据按行加载至所述本地文件中。
在其中一个实施例中,所述按照预设的数据读取量、加载的数据的每行的总长度、加载数据时每次写入的行数将所述临时文件中的待卸载数据按行加载至所述本地文件中,还包括:
响应于所述配置信息中包括:字段间隔信息、字段长度信息,按照字段间隔信息对按行加载的待卸载数据进行分割;
将进行分割后的按行加载的待卸载数据与所述字段长度信息进行比较,响应于所述进行分割后的按行加载的待卸载数据小于所述字段长度信息,则使用预设的占位符补充所述进行分割后的按行加载的待卸载数据,得到补充数据;
将所述补充数据以字节流的形式写入所述本地文件中。
在其中一个实施例中,所述方法还包括:
响应于所述进行分割后的按行加载的待卸载数据大于所述字段长度信息,和/或,响应于所述属性文件中的数据量与所述目标数据库中待卸载数据的数据量不相同的情况下,停止卸载所述待卸载数据,输出第一指示信息,所述第一指示信息用于提示所述待卸载数据出现错误。
在其中一个实施例中,所述本地文件是利用所述配置文件中的配置信息创建的,包括:
利用所述配置文件的配置信息中的目标文件格式、目标文件编码信息、文件名称、所述待卸载数据存储的本地目录,创建所述本地文件。
在其中一个实施例中,所述目标数据库包括:Hive数据仓库;所述读取预先配置的配置文件并利用所述数据参数将所述待卸载数据输出至临时文件中,包括:
通过Spark读取所述配置文件;
利用所述Spark将所述数据参数转换为数据查询语句;
利用所述Spark中的SparkSQL执行所述数据查询语句,将所述待卸载数据输出至临时文件中;
响应于所述待卸载数据的数据量大于所述配置信息中的目标卸载数据量,按照所述目标卸载数据量,将所述待卸载数据输出至多个临时文件中。
在其中一个实施例中,所述按照预先设置的存储策略以及所述配置文件中的配置信息,将所述临时文件中的待卸载数据加载至本地文件中之前,所述方法还包括:
创建与配置信息对应的供所述Spark调用的对象;
将所述配置文件中的配置信息放入所述对象中,得到对象列表;
相应的,所述按照预先设置的存储策略以及所述配置文件中的配置信息,将所述临时文件中的待卸载数据加载至本地文件中,包括:
调用所述对象列表,读取所述对象列表中的配置信息,按照预先设置的存储策略以及所述对象列表中的配置信息,将所述临时文件中的待卸载数据加载至本地文件中。
第二方面,本公开还提供了一种数据卸载装置。所述装置包括:
数据参数获取模块,用于获取目标数据库中待卸载数据的数据参数;
数据输出模块,用于读取预先配置的配置文件并利用所述数据参数将所述待卸载数据输出至临时文件中;
数据加载模块,用于按照预先设置的存储策略以及所述配置文件中的配置信息,将所述临时文件中的待卸载数据加载至本地文件中,所述本地文件是利用所述配置文件中的配置信息创建的;
数据卸载文件确定模块,用于根据所述配置文件和所述本地文件的数据信息生成与所述本地文件对应的属性文件,利用所述本地文件和所述属性文件得到数据卸载文件。
第三方面,本公开还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一方法实施例中的步骤。
第四方面,本公开还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一方法实施例中的步骤。
第五方面,本公开还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述任一方法实施例中的步骤。
上述各实施例中,获取目标数据库中待卸载数据的数据参数;读取预先配置的配置文件并利用所述数据参数将所述待卸载数据输出至临时文件中。能够将待卸载数据输入至临时文件,而不是直接输入至本地文件中,在需要卸载的数据量较大的情况下,能够减少本地磁盘的读写压力,提高数据卸载的效率。另外,利用所述配置文件中的配置信息创建本地文件,能够不同目标数据库卸载后得到的数据利用统一的本地文件进行存储,生成统一标准的文件。保证数据卸载后能够其他的数据库、数据仓库以及存储介质能够进行加载该本地文件。按照预先设置的存储策略以及所述配置文件中的配置信息,将所述临时文件中的待卸载数据加载至本地文件中。因为临时文件中的数据量存在过大的情况,直接将文件临时文件中的数据加载至本地文件中可能会出现数据错误,进而无法检查到的情况,因此可以按照预先设置的存储策略以及所述配置文件中的配置信息,将临时文件中待卸载数据加载至本地文件中,保证卸载数据的准确性。另外,根据所述配置文件和所述本地文件的数据信息生成与所述本地文件对应的属性文件,后续能够读取属性文件中的各种信息,来确定当前的本地文件是否为需要读取的数据的文件,保证能够快速的找到所需的本地文件。
附图说明
为了更清楚地说明本公开具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一个实施例中数据卸载方法的应用环境示意图;
图2为一个实施例中数据卸载方法的流程示意图;
图3为一个实施例中S204步骤的流程示意图;
图4为一个实施例中S206步骤的流程示意图;
图5为一个实施例中S404步骤的流程示意图;
图6为一个实施例中S206步骤之前的流程示意图;
图7为另一个实施例中数据卸载方法的流程示意图;
图8为一个实施例中数据卸载装置的结构示意框图;
图9为一个实施例中计算机设备的内部结构示意图。
具体实施方式
为了使本公开的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本公开进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本公开,并不用于限定本公开。
需要说明的是,本文的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本文的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、装置、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
本公开实施例提供了一种数据卸载方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与数据库服务器104和本地服务器106进行通信。终端102可以获取数据库服务器104中目标数据库中待卸载数据的数据参数。终端102可以读取预先配置的配置文件并利用数据参数将待卸载数据输出至临时文件中。终端102按照预先设置的存储策略以及所述配置文件中的配置信息,将所述临时文件中的待卸载数据加载至本地服务器106的本地文件中,所述本地文件是本地服务器106利用所述配置文件中的配置信息创建的。终端102根据所述配置文件和所述本地文件的数据信息在本地服务器106中生成与所述本地文件对应的属性文件。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑等。数据服务器104和本地服务器106均可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种数据卸载方法,以该方法应用于图1中的终端102为例进行说明,包括以下步骤:
S202,获取目标数据库中待卸载数据的数据参数。
其中,目标数据库通常可以是需要写在数据的数据库、数据仓库或者数据平台。待卸载数据通常情况下可以是需要转移的数据,在本案中不对待卸载数据的具体类型和数据量进行限制。数据参数通常情况下可以包括:数据仓库的名称、数据表的名称、分区名等等。
具体地,当需要将目标数据库中的数据卸载时,可以获取目标数据库中与待卸载数据相关的数据参数。例如待卸载数据存储在哪个目标数据库中,存储在哪个数据表中,以及存储在哪个分区中。
S204,读取预先配置的配置文件并利用所述数据参数将所述待卸载数据输出至临时文件中。
其中,配置文件中通常可以包括卸载数据后存储的文件的文件名称、卸载数据后存储的本地目录、最大卸载的数据量、卸载数据后输出的编码格式、导出数据的属性等等信息。其中最大卸载的数据量的设置是防止数据量过大,将所有数据都放置于一个文件上。导出数据的属性则包括了行字符长度、列数目、以及每列的字符长度和类型等。临时文件通常可以是分布式文件系统中的文件。
具体地,根据不同的数据仓库,可以选择不同的数据库处理工具。另外,为了防止待卸载数据的数据量过大,直接写入本地会造成本地磁盘处理数据过多,造成卡顿,影响数据卸载速度。由于分布式文件系统并不使用本地的磁盘进行存储,不会造成本地磁盘卡顿的问题。因此,可以利用数据库处理工具读取配置文件中的信息,以及读取数据参数,进而匹配到目标数据库中的待卸载数据,将待卸载数据输出至分布式文件系统的临时文件中。
S206,按照预先设置的存储策略以及所述配置文件中的配置信息,将所述临时文件中的待卸载数据加载至本地文件中,所述本地文件是利用所述配置文件中的配置信息创建的。
其中,因为上述临时文件通常可以是分布式文件系统中的临时文件,因此存储策略通常情况下可以是分布式文件系统的存储策略。存储策略例如可以按行将数据写入本地文件中,也可以是按照预设的数据量将临时文件中的数据写入本地文件中,也可以是对临时文件中写入的数据进行检查处理后,在未存在问题后写入本地文件中。
具体地,为了保证数据卸载后文件的类型是标准类型,即从不同的目标数据库中卸载数据后得到的本地文件为相同的类型。可以在本地根据配置文件中的配置信息,例如卸载数据后存储的文件的文件名称、卸载数据后存储的本地目录、卸载数据后输出的编码格式等来创建相对应的本地文件。因为在上述步骤已经将待卸载数据输出至临时文件中了。因此可以是用预先设置的存储策略,以及配置文件中的配置信息(如导出数据的属性)来将临时文件中的待卸载数据加载至本地文件中,保证本地文件中数据的正确性,也能够保证本地文件的数据写入后,其中数据的行字符长度、列数目、以及每列的字符长度和类型等均是统一标准的,便于后续的数据读取。
S208,根据所述配置文件和所述本地文件的数据信息生成与所述本地文件对应的属性文件,利用所述本地文件和所述属性文件得到数据卸载文件。
其中,属性文件通常可以包括了:本地文件的名称、生成时间、大小、本地文件中数据的行数以及本地文件中数据的数据量的属性等信息。
具体地,当生成本地文件后,为了方便其他的数据库来加载本地文件,可以利用配置文件中的与本地文件相关的配置信息和本地文件的自身的数据信息,来生成与该本地文件相对应的属性文件。将本地文件和属性文件组合形成一个数据卸载文件。当其他的数据库需要加载本地文件中的数据时,可以直接读取属性文件中的各种信息,来确定当前的本地文件是否为需要读取的数据的文件。而无需将本地文件中所有信息进行读取判断。
上述数据卸载方法中,获取目标数据库中待卸载数据的数据参数;读取预先配置的配置文件并利用所述数据参数将所述待卸载数据输出至临时文件中。能够将待卸载数据输入至临时文件,而不是直接输入至本地文件中,在需要卸载的数据量较大的情况下,能够减少本地磁盘的读写压力,提高数据卸载的效率。另外,利用所述配置文件中的配置信息创建本地文件,能够不同目标数据库卸载后得到的数据利用统一的本地文件进行存储,生成统一标准的文件。保证数据卸载后能够其他的数据库、数据仓库以及存储介质能够进行加载该本地文件。按照预先设置的存储策略以及所述配置文件中的配置信息,将所述临时文件中的待卸载数据加载至本地文件中。因为临时文件中的数据量存在过大的情况,直接将文件临时文件中的数据加载至本地文件中可能会出现数据错误,进而无法检查到的情况,因此可以按照预先设置的存储策略以及所述配置文件中的配置信息,将临时文件中待卸载数据加载至本地文件中,保证卸载数据的准确性。另外,根据所述配置文件和所述本地文件的数据信息生成与所述本地文件对应的属性文件,后续能够读取属性文件中的各种信息,来确定当前的本地文件是否为需要读取的数据的文件,保证能够快速的找到所需的本地文件。
在一个实施例中,如图3所示,所述目标数据库包括:Hive数据仓库。所述读取预先配置的配置文件并利用所述数据参数将所述待卸载数据输出至临时文件中,包括:
S302,通过Spark读取所述配置文件。
S304,利用所述Spark将所述数据参数转换为数据查询语句。
S306,利用所述Spark中的SparkSQL执行所述数据查询语句,将所述待卸载数据输出至临时文件中。
S308,响应于所述待卸载数据的数据量大于所述配置信息中的目标卸载数据量,按照所述目标卸载数据量,将所述待卸载数据输出至多个临时文件中。
其中,Spark是专为大规模数据处理而设计的快速通用的计算引擎。另外,在内存计算下,Spark比Hadoop快100倍。SparkSQL通常是Spark中提供的一个库。目标卸载数据量通常情况下是防止数据量过大,将所有数据都放置于一个文件上,进而设置的数据量,能够提高后续将临时文件中的数据写入本地文件的速度。
具体地,因为本案使用的目标数据库为Hive数据仓库。而Spark生态系统中的Shark能够提供和Hive一样的HiveQL命令接口,为了最大程度的保持和Hive的兼容性,因此为了保证数据卸载的效率和兼容性,可以使用Spark读取配置文件中的各种配置信息。然后利用Spark将上述的数据参数转换为DQL(Data Query Language)数据查询语句。可以利用Spark中的库,如SparkSQL执行上述转换得到的数据查询语句,进而来查询到Hive数据仓库中的待卸载数据。可以再次利用Spark将待卸载数据输出至临时文件中。而当待卸载数据的数据量,大于配置信息中目标卸载数据量时,为了保证后续数据卸载的速度,可以按照目标卸载数据量,将待卸载数据进行分区,进而将分区后的待卸载数据写入多个临时文件中,写入的方式可以是并行写入,也可以是串行写入,在此不对写入的方式进行具体限定。
在本实施例中,由于使用的是Hive数据库,因此为了提高数据卸载的速度,可以使用与Hive相兼容适配的Spark进行数据查询,以及将待卸载数据写入临时文件。另外,当待卸载数据的数据量过大时,超过了目标卸载数据量的情况下,可以将待卸载数据写入多个临时文件中,进一步提高数据卸载的速度。
在一个实施例中,如图4所示,所述按照预设的数据读取量、加载的数据的每行的总长度、加载数据时每次写入的行数将所述临时文件中的待卸载数据按行加载至所述本地文件中,还包括:
S402,获取所述配置文件的配置信息中的加载的数据的每行的总长度、加载数据时每次写入的行数。
S404,按照预设的数据读取量、加载的数据的每行的总长度、加载数据时每次写入的行数将所述临时文件中的待卸载数据按行加载至所述本地文件中。
其中,加载的数据的每行的总长度可以是将待卸载数据加载至本地文件中每行数据的总长度,例如每行数据的总长度可以是20字符、25字符等等。加载数据时每次写入的行数可以是将待卸载数据加载至本地文件中时,每次加载多少行的数据至本地文件中。数据读取量通常可以是读取临时文件中待卸载数据的数据量,通常情况下,设置数据读取量的目的是为了一次性不要读取太多的待卸载数据,保证读写的速度,进而保证数据卸载的速度。
具体地,为了保证数据卸载的速度,可以获取配置文件中的配置信息中的加载数据的每行的总长度、加载数据时每次写入本地文件的行数。可以按照预设的数据读取量,来读取临时文件中的待卸载数据,将待卸载数据按照加载的数据的每行的总长度、加载数据时每次写入的行数写入本地文件中。另外,通常情况下,为了保证待卸载数据写入本地文件的效率,可以将按行将待卸载数据写入本地文件中。
在一些示例性的实施例中,例如每行数据的总长度可以是20字符,加载数据时每次写入的行数为两行。可以按照预设的数据读取量获取临时文件中的数据,每次写入两行数据,每行写入20字符,将待卸载数据依次写入本地文件中。
在本实施例中,按照预设的数据读取量、加载的数据的每行的总长度、加载数据时每次写入的行数将所述临时文件中的待卸载数据按行加载至所述本地文件中,限制每次读取的数据量能够防止内存溢出,能够保证将待卸载数据加载至本地文件的速度,提高数据卸载的效率。
在一个实施例中,如图5所示,所述按照预设的数据读取量、加载的数据的每行的总长度、加载数据时写入行数将所述临时文件中的待卸载数据按行加载至所述本地文件中,包括:
S502,响应于所述配置信息中包括:字段间隔信息、字段长度信息,按照字段间隔信息对按行加载的待卸载数据进行分割。
其中,字段间隔信息通常情况下可以是每行数据中,字段之间的间隔。字段长度信息通常可以是每行中,所能存储的最长的字段长度。
具体地,当上述配置文件的配置信息中还包括:字段间隔信息、字段长度信息时,可以按照字段间隔信息对按行加载的每行中的待卸载数据进行分割。
在一些示例性的实施例中,例如字段间隔信息为2字符,每行加载至本地文件中的数据为1,3,4,7,则可以将1,3,4,7中每个数据之间设置两个字符的间隔,可以使用占位符或者其他符号来对每行待卸载数据进行分割。例如可以使用^对每行的待卸载数据进行分割,得到1^^3^^4^^7。
S504,将进行分割后的按行加载的待卸载数据与所述字段长度信息进行比较,响应于所述进行分割后的按行加载的待卸载数据小于所述字段长度信息,则使用预设的占位符补充所述进行分割后的按行加载的待卸载数据,得到补充数据;
S506,将所述补充数据以字节流的形式写入所述本地文件中。
具体地,可以将分割后的每行加载的待卸载数据与字段信息长度进行比较。当长度小于字段长度信息时,可以利用占位符将进行分割后的按行加载的待卸载数据的字段长度补充为字段长度信息,得到补充数据。并将补充数据按行以字节流的形式写入本地文件中。占位符的具体形式在本案中不进行限制,可以为空格也可以为其他类型,只要能够补充字节即可。
在一些示例性的实施例中,例如分割后的每行加载的待卸载数据为1^^3^^4^^7,其字段长度为10个字段,若字段信息长度为12个字段,则该长度小于字段长度信息,可以利用占位符,例如*进行补充两个字段,得到1^^3^^4^^7**,将补充后的1^^3^^4^^7**按行以字节流的形式写入本地文件中。可以理解的是,上述仅用于举例说明。
在本实施例中,利用字段间隔信息、字段长度信息对按行加载的待卸载数据进行处理,保证数据的准确性,另外在读取本地文件中的数据时,因为是按照字段间隔信息、字段长度信息进行处理的,因此能够保证本地文件中每行数据格式相同。
在一个实施例中,所述方法还包括:
响应于所述进行分割后的按行加载的待卸载数据大于所述字段长度信息,和/或,响应于所述属性文件中的数据量与所述目标数据库中待卸载数据的数据量不相同的情况下,停止卸载所述待卸载数据,输出第一指示信息,所述第一指示信息用于提示所述待卸载数据出现错误。
具体地,当进行分割后按行加载的待卸载数据的字段长度大于字段长度信息时,确定待卸载数据出现异常,停止将待卸载数据写入本地文件中,并输入第一指示信息,来提示待卸载数据出现问题。
另外,当属性文件中的数据量与目标数据库中待卸载数据的数据量不相同的情况下,通常情况下是属性文件中的数据量小于待卸载数据的数据量。此时可以确定存在某些待卸载数据卸载失败的情况,待卸载数据也可能出现问题了。此时输出第一指示信息,所述第一指示信息用于提示所述待卸载数据出现错误。
另外,所述本地文件是利用所述配置文件中的配置信息创建的,包括:
利用所述配置文件的配置信息中的目标文件格式、目标文件编码信息、文件名称、所述待卸载数据存储的本地目录,创建所述本地文件。
其中,目标文件格式可以包括:CSV格式、txt格式等等,目标文件的编码信息可以为utf-8编码信息,uft-16编码信息或者uft-32编码信息等等。
具体地,由于将待卸载数据卸载至本地后,不同类型的数据仓库或者存储介质需要使用该本地文件,因此本地文件通常情况下需要为统一的标准的形式,因此,可以在待卸载数据存储的本地目录中,利用目标文件格式、目标文件编码信息、文件名称来创建本地文件。
在本实施例中,可以利用字段长度信息来确定待卸载数据是否出现问题,还可以使用属性文件中的数据量和目标数据库中待卸载数据,来确定待卸载数据是否出现问题,能够保证待卸载数据进行卸载后的准确性。另外,使用配置文件信息创建本地文件,能够在不同的目标数据库的情况下,本地文件的形式为标准形式,数据卸载后得到的本地文件能够使其他的数据库、数据仓库以及存储介质进行加载。
在一个实施例中,如图6所示,所述按照预先设置的存储策略以及所述配置文件中的配置信息,将所述临时文件中的待卸载数据加载至本地文件中之前,所述方法还包括:
S602,创建与配置信息对应的供所述Spark调用的对象。
S604,将所述配置文件中的配置信息放入所述对象中,得到对象列表。
具体地,可以创建与配置信息对应的能够供Spark调用的对象。通常情况下,由于配置信息中包含了各种类型的信息,可以仅仅选取配置信息中与本地文件相关的信息来创建对象,例如与本地文件相关的信息可以包括:字段名称、字段序号、字段长度、字段起始字节位置、字段终止位置等等信息。然后将该信息一一放入对象中,得到对象列表。
相应的,所述按照预先设置的存储策略以及所述配置文件中的配置信息,将所述临时文件中的待卸载数据加载至本地文件中,包括:
调用所述对象列表,读取所述对象列表中的配置信息,按照预先设置的存储策略以及所述对象列表中的配置信息,将所述临时文件中的待卸载数据加载至本地文件中。
具体地,当创建对象列表后,由于对象列表在Spark中。因此,在利用Spark将临时文件中的待卸载数据加载至本地文件中时,可以直接调用对象列表,利用对象列表中与本地文件相关的信息,按照预先设置的存储策略将所述临时文件中的待卸载数据加载至本地文件中。关于此处的具体实施方式可以参见上述S206步骤,在此不进行重复赘述。
在本实施例中,由于使用配置文件中的信息,由于配置文件放在本地或者其他位置,在使用Spark进行处理的过程中,Spark会对配置文件中的信息进行读取并进行加载,会额外的占用处理空间。而将配置文件中的配置信息生成对象列表中,可以使Spark直接调用,处理速度更快。
在一个实施例中,如图7所示,本公开还提供了另一种数据卸载方法,所述方法包括:
S702,获取目标数据库中待卸载数据的数据参数。
S704,通过Spark读取配置文件。
S706,利用所述Spark将所述数据参数转换为数据查询语句。
S708,利用所述Spark中的SparkSQL执行所述数据查询语句,将所述待卸载数据输出至临时文件中。
S710,响应于所述待卸载数据的数据量大于所述配置信息中的目标卸载数据量,按照所述目标卸载数据量,将所述待卸载数据输出至多个临时文件中。
S712,创建与配置信息对应的供所述Spark调用的对象。
S714,将所述配置文件中的配置信息放入所述对象中,得到对象列表。
S716,调用所述对象列表,读取所述对象列表中的配置信息。
S718,获取所述配置信息中的加载的数据的每行的总长度、加载数据时每次写入的行数。
S720,按照预设的数据读取量、加载的数据的每行的总长度、加载数据时每次写入的行数将所述临时文件中的待卸载数据按行加载至本地文件中。
S722,响应于所述配置信息中包括:字段间隔信息、字段长度信息,按照字段间隔信息对按行加载的待卸载数据进行分割。
S724,响应于所述进行分割后的按行加载的待卸载数据小于所述字段长度信息,则使用预设的占位符补充所述进行分割后的按行加载的待卸载数据,得到补充数据。
S726,将所述补充数据以字节流的形式写入本地文件中。
关于本实施例中的具体实施方式和限定可参见上述实施例,在此不进行重复赘述。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本公开实施例还提供了一种用于实现上述所涉及的数据卸载方法的数据卸载装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个数据卸载装置实施例中的具体限定可以参见上文中对于数据卸载方法的限定,在此不再赘述。
在一个实施例中,如图8所示,提供了一种数据卸载装置800,包括:数据参数获取模块802、数据输出模块804、数据加载模块806和数据卸载文件确定模块808,其中:
数据参数获取模块802,用于获取目标数据库中待卸载数据的数据参数。
数据输出模块804,用于读取预先配置的配置文件并利用所述数据参数将所述待卸载数据输出至临时文件中。
数据加载模块806,用于按照预先设置的存储策略以及所述配置文件中的配置信息,将所述临时文件中的待卸载数据加载至本地文件中,所述本地文件是利用所述配置文件中的配置信息创建的。
数据卸载文件确定模块808,用于根据所述配置文件和所述本地文件的数据信息生成与所述本地文件对应的属性文件,利用所述本地文件和所述属性文件得到数据卸载文件。
在所述装置的一个实施例中,所述数据加载模块806,包括:
配置信息获取模块,用于获取所述配置文件的配置信息中的加载的数据的每行的总长度、加载数据时每次写入的行数。
数据加载子模块,用于按照预设的数据读取量、加载的数据的每行的总长度、加载数据时每次写入的行数将所述临时文件中的待卸载数据按行加载至所述本地文件中。
在所述装置的一个实施例中,所述数据加载子模块,还用于响应于所述配置信息中包括:字段间隔信息、字段长度信息,按照字段间隔信息对按行加载的待卸载数据进行分割;将进行分割后的按行加载的待卸载数据与所述字段长度信息进行比较,响应于所述进行分割后的按行加载的待卸载数据小于所述字段长度信息,则使用预设的占位符补充所述进行分割后的按行加载的待卸载数据,得到补充数据;将所述补充数据以字节流的形式写入所述本地文件中。
在所述装置的一个实施例中,所述数据加载子模块,还用于响应于所述进行分割后的按行加载的待卸载数据大于所述字段长度信息,和/或,响应于所述属性文件中的数据量与所述目标数据库中待卸载数据的数据量不相同的情况下,停止卸载所述待卸载数据,输出第一指示信息,所述第一指示信息用于提示所述待卸载数据出现错误。
在所述装置的一个实施例中,所述数据加载模块806,包括:
本地文件创建模块,用于利用所述配置文件的配置信息中的目标文件格式、目标文件编码信息、文件名称、所述待卸载数据存储的本地目录,创建所述本地文件。
在所述装置的一个实施例中,所述目标数据库包括:Hive数据仓库。所述数据输出模块804,包括:
配置文件读取模块,用于通过Spark读取所述配置文件。
参数转换模块,用于利用所述Spark将所述数据参数转换为数据查询语句。
输出子模块,用于利用所述Spark中的SparkSQL执行所述数据查询语句,将所述待卸载数据输出至临时文件中,响应于所述待卸载数据的数据量大于所述配置信息中的目标卸载数据量,按照所述目标卸载数据量,将所述待卸载数据输出至多个临时文件中。
在所述装置的一个实施例中,所述装置还包括:对象创建模块,用于创建与配置信息对应的供所述Spark调用的对象。
信息放入模块,用于将所述配置文件中的配置信息放入所述对象中,得到对象列表。
相应的,所述数据加载模块806,用于调用所述对象列表,读取所述对象列表中的配置信息,按照预先设置的存储策略以及所述对象列表中的配置信息,将所述临时文件中的待卸载数据加载至本地文件中。
上述数据卸载装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储配置文件。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据卸载方法。
本领域技术人员可以理解,图9中示出的结构,仅仅是与本公开方案相关的部分结构的框图,并不构成对本公开方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述任一方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任一方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述任一方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本公开所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本公开所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本公开所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本公开的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本公开专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本公开构思的前提下,还可以做出若干变形和改进,这些都属于本公开的保护范围。因此,本公开的保护范围应以所附权利要求为准。

Claims (11)

1.一种数据卸载方法,其特征在于,所述方法包括:
获取目标数据库中待卸载数据的数据参数;
读取预先配置的配置文件并利用所述数据参数将所述待卸载数据输出至临时文件中;
按照预先设置的存储策略以及所述配置文件中的配置信息,将所述临时文件中的待卸载数据加载至本地文件中,所述本地文件是利用所述配置文件中的配置信息创建的;
根据所述配置文件和所述本地文件的数据信息生成与所述本地文件对应的属性文件,利用所述本地文件和所述属性文件得到数据卸载文件。
2.根据权利要求1所述的方法,其特征在于,所述按照预先设置的存储策略以及所述配置文件中的配置信息,将所述临时文件中的待卸载数据加载至本地文件中,包括:
获取所述配置文件的配置信息中的加载的数据的每行的总长度、加载数据时每次写入的行数;
按照预设的数据读取量、加载的数据的每行的总长度、加载数据时每次写入的行数将所述临时文件中的待卸载数据按行加载至所述本地文件中。
3.根据权利要求2所述的方法,其特征在于,所述按照预设的数据读取量、加载的数据的每行的总长度、加载数据时每次写入的行数将所述临时文件中的待卸载数据按行加载至所述本地文件中,还包括:
响应于所述配置信息中包括:字段间隔信息、字段长度信息,按照字段间隔信息对按行加载的待卸载数据进行分割;
将进行分割后的按行加载的待卸载数据与所述字段长度信息进行比较,响应于所述进行分割后的按行加载的待卸载数据小于所述字段长度信息,则使用预设的占位符补充所述进行分割后的按行加载的待卸载数据,得到补充数据;
将所述补充数据以字节流的形式写入所述本地文件中。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
响应于所述进行分割后的按行加载的待卸载数据大于所述字段长度信息,和/或,响应于所述属性文件中的数据量与所述目标数据库中待卸载数据的数据量不相同的情况下,停止卸载所述待卸载数据,输出第一指示信息,所述第一指示信息用于提示所述待卸载数据出现错误。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述本地文件是利用所述配置文件中的配置信息创建的,包括:
利用所述配置文件的配置信息中的目标文件格式、目标文件编码信息、文件名称、所述待卸载数据存储的本地目录,创建所述本地文件。
6.根据权利要求1所述的方法,其特征在于,所述目标数据库包括:Hive数据仓库;所述读取预先配置的配置文件并利用所述数据参数将所述待卸载数据输出至临时文件中,包括:
通过Spark读取所述配置文件;
利用所述Spark将所述数据参数转换为数据查询语句;
利用所述Spark中的SparkSQL执行所述数据查询语句,将所述待卸载数据输出至临时文件中;
响应于所述待卸载数据的数据量大于所述配置信息中的目标卸载数据量,按照所述目标卸载数据量,将所述待卸载数据输出至多个临时文件中。
7.根据权利要求6所述的方法,其特征在于,所述按照预先设置的存储策略以及所述配置文件中的配置信息,将所述临时文件中的待卸载数据加载至本地文件中之前,所述方法还包括:
创建与配置信息对应的供所述Spark调用的对象;
将所述配置文件中的配置信息放入所述对象中,得到对象列表;
相应的,所述按照预先设置的存储策略以及所述配置文件中的配置信息,将所述临时文件中的待卸载数据加载至本地文件中,包括:
调用所述对象列表,读取所述对象列表中的配置信息,按照预先设置的存储策略以及所述对象列表中的配置信息,将所述临时文件中的待卸载数据加载至本地文件中。
8.一种数据卸载装置,其特征在于,所述装置包括:
数据参数获取模块,用于获取目标数据库中待卸载数据的数据参数;
数据输出模块,用于读取预先配置的配置文件并利用所述数据参数将所述待卸载数据输出至临时文件中;
数据加载模块,用于按照预先设置的存储策略以及所述配置文件中的配置信息,将所述临时文件中的待卸载数据加载至本地文件中,所述本地文件是利用所述配置文件中的配置信息创建的;
数据卸载文件确定模块,用于根据所述配置文件和所述本地文件的数据信息生成与所述本地文件对应的属性文件,利用所述本地文件和所述属性文件得到数据卸载文件。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
11.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
CN202310568128.7A 2023-05-19 2023-05-19 数据卸载方法、装置、计算机设备、存储介质 Pending CN116610381A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310568128.7A CN116610381A (zh) 2023-05-19 2023-05-19 数据卸载方法、装置、计算机设备、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310568128.7A CN116610381A (zh) 2023-05-19 2023-05-19 数据卸载方法、装置、计算机设备、存储介质

Publications (1)

Publication Number Publication Date
CN116610381A true CN116610381A (zh) 2023-08-18

Family

ID=87681212

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310568128.7A Pending CN116610381A (zh) 2023-05-19 2023-05-19 数据卸载方法、装置、计算机设备、存储介质

Country Status (1)

Country Link
CN (1) CN116610381A (zh)

Similar Documents

Publication Publication Date Title
CN111444196B (zh) 块链式账本中全局状态的哈希的生成方法、装置及设备
CN111400246B (zh) 异步导入文件方法、装置、计算机设备和存储介质
CN111444192A (zh) 块链式账本中全局状态的哈希的生成方法、装置及设备
CN112463026A (zh) 分布式对象存储系统中追加数据的重复删除的方法和设备
CN112860412B (zh) 业务数据处理方法、装置、电子设备及存储介质
CN116610381A (zh) 数据卸载方法、装置、计算机设备、存储介质
CN110928941A (zh) 一种数据分片抽取方法及装置
CN111444194B (zh) 一种块链式账本中索引的清除方法、装置及设备
CN114443629A (zh) 一种集群布隆过滤器数据去重方法、终端设备及存储介质
CN114489481A (zh) 硬盘存储数据并访问的方法及系统
CN117743299A (zh) 数据库迁移方法、装置、设备、介质和产品
CN116257524A (zh) 利用位图索引存储数据的方法、装置、计算机设备
CN117539690B (zh) 多磁盘数据的合并恢复方法、装置、设备、介质和产品
CN112181297B (zh) 一种分布式文件切片生成与存储系统及其控制方法
CN117215839B (zh) 基于Web的系统还原方法、装置、设备、介质和程序产品
CN114238258B (zh) 数据库数据处理方法、装置、计算机设备、存储介质
CN117852818A (zh) 项目编码生成方法、装置、计算机设备和存储介质
CN117827244A (zh) 显示文本更新方法、装置、计算机设备和存储介质
CN117435576A (zh) 数据迁移方法、装置、计算机设备、存储介质和产品
CN116204529A (zh) 信息存储方法、装置、计算机设备、存储介质
CN117331984A (zh) 数据对比方法、装置、计算机设备、存储介质
CN117076476A (zh) 对象信息处理方法、装置、计算机设备和存储介质
CN117555487A (zh) 数据拆分方法、装置、计算机设备、存储介质
CN116841639A (zh) 配置文件的修改方法、装置、计算机设备及存储介质
CN116880927A (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