CN113761055A - 数据写入方法、设备以及存储介质 - Google Patents

数据写入方法、设备以及存储介质 Download PDF

Info

Publication number
CN113761055A
CN113761055A CN202110142380.2A CN202110142380A CN113761055A CN 113761055 A CN113761055 A CN 113761055A CN 202110142380 A CN202110142380 A CN 202110142380A CN 113761055 A CN113761055 A CN 113761055A
Authority
CN
China
Prior art keywords
data
written
writing
mode
partition
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
CN202110142380.2A
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.)
Beijing Jingdong Century Trading Co Ltd
Beijing Wodong Tianjun Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Wodong Tianjun Information Technology 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 Beijing Jingdong Century Trading Co Ltd, Beijing Wodong Tianjun Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN202110142380.2A priority Critical patent/CN113761055A/zh
Publication of CN113761055A publication Critical patent/CN113761055A/zh
Pending legal-status Critical Current

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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/278Data partitioning, e.g. horizontal or vertical partitioning
    • 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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/283Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

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

Abstract

本申请实施例提供一种数据写入方法、设备以及存储介质,方法应用于数据库服务器,方法包括:获取待写入数据和数据分析系统内的数据分区参数,其中,数据分析系统运行于数据库服务器;根据待写入数据和数据分区参数确定数据写入模式;根据数据写入模式将待写入数据写入对应数据存储区域中。本方案根据待写入数据和数据分析系统内的数据分区参数确定数据写入模式,可以适应不同情况下数据写入,可以提高数据写入效率。

Description

数据写入方法、设备以及存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据写入方法、设备以及存储介质。
背景技术
Hive是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。
在基于Hive执行数据分析任务时,首先需要向Hive表中写入数据,再基于写入数据进行数据分析,进而得到数据分析结果。相较于数据分析过程,向Hive表写入数据过程是执行数据分析任务的瓶颈,向Hive表写入数据的速率会严重影响执行数据分析任务。
因此,如何优化Hive表写入数据的速率是一个亟待解决的问题。
发明内容
本申请实施例提供一种数据写入方法、设备以及存储介质,旨在提供一种优化数据写入速率的方案。
第一方面,本申请提供一种数据写入方法,方法应用于数据库服务器,方法包括:
获取待写入数据和待写入数据在数据分析系统内的数据分区参数,其中,数据分析系统运行于数据库服务器;
根据待写入数据和数据分区参数确定数据写入模式;
根据数据写入模式将待写入数据写入对应数据存储区域中。
可选地,根据待写入数据和数据分区参数确定数据写入模式,具体包括:
根据待写入数据和数据分区参数确定所有待写入数据对应的数据存储区域的总数量;
根据数据存储区域的总数量确定数据写入模式。
在上述技术方案中,所有待写入数据对应的数据存储区域的总数量可以反映数据写入过程复杂程度,根据总数量确定数据写入模式,可以适应不同复杂程度的数据写入需求,以提高数据写入速率。
可选地,根据数据存储区域的总数量确定数据写入模式,具体包括:
若数据存储区域的总数量为一个,数据写入模式为静态分区写入模式;
若数据存储区域的总数量为多个,根据所有待写入数据的总数据量和请求占用资源量确定数据写入模式。
在上述技术方案中,当总数量为一个,表示数据写入过程比较简单,则采用静态分区写入模式。若总数量为多个时,则根据总数据量和申请占用资源量进一步确定数据写入模式,以提高数据写入模式。
可选地,根据所有待写入数据的总数据量和请求占用资源量确定数据写入模式,具体包括:
若总数据量小于预设数据量阈值,数据写入模式为动态分区写入模式;
若总数据量达到预设数据量阈值,则继续根据请求占用资源量确定数据写入模式。
可选地,继续根据请求占用资源量确定数据写入模式,具体包括:
判断请求占用资源量和数据库服务器的资源总量的比值是否超过预设比例阈值;
若否,所述数据写入模式为先写入数据库后写入数据分析系统模式;
若是,所述数据写入模式为多线程写入模式。
可选地,数据分析系统为Hive,先写入数据库后装载至数据分析系统模式为先写入分布式文件系统后装载至Hive。
在上述技术方案中,在数据量小时,采用动态分区写入模式,在资源充足且数据量大时,采用多线程写入模式,在资源不充足且数据量大时,则采用先写入分布式文件系统后装载至Hive,根据不同情况确定不同数据写入模式,可以提高数据写入速率。
可选地,根据待写入数据和数据分区参数确定所有待写入数据对应的数据存储区域的总数量,具体包括:
根据数据分区参数统计所有待写入数据中分区数据的类型数量;
根据分区数据的类型数量确定数据存储区域的总数量。
可选地,根据数据写入模式将待写入数据写入对应数据存储区域中,具体包括:
根据数据写入模式从代码模板集合中确定写入代码模板;
根据待写入数据和写入代码模板生成数据写入代码;
运行数据写入代码,以将待写入数据写入对应数据存储区域中。
可选地,代码模板集合包括静态分区写入模式的写入代码模板、动态分区写入模式的写入代码模板、多线程写入模式的写入代码模板以及先写入数据库后写入数据分析系统模式的写入代码模板。
在上述技术方案中,预先编写各种写入模式下的代码模板,可以自适应各种数据写入模式下数据写入,提高数据写入效率。
第二方面,本申请提供一种数据写入装置,装置包括:
获取模块,用于获取待写入数据和待写入数据在数据分析系统内的数据分区参数,其中,数据分析系统运行于数据库服务器;
处理模块,用于根据待写入数据和数据分区参数确定数据写入模式;
处理模块还用于根据数据写入模式将待写入数据写入对应数据存储区域中。
第三方面,本申请提供一种数据库服务器,包括:存储器,处理器;
存储器;用于存储处理器可执行指令的存储器;
其中,处理器被配置为实现如第一方面及可选方案所涉及的数据写入方法。
第四方面,本申请提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现第一方面及可选方案所涉及的数据写入方法。
第五方面,本申请提供一种计算机程序产品,包括指令,指令被处理器执行时实现第一方面及可选方案所涉及的数据写入方法。
本申请实施例提供一种数据写入方法、设备以及存储介质,根据待写入数据和数据分析系统内的数据分区参数确定数据写入模式,再按照相应的数据写入模式将数据写入,数据分区参数和待写入数据不同,则数据写入模式也不同,适应不同情况下的数据写入,可以提高数据写入效率。
附图说明
图1为本申请一实施例提供的数据写入系统的结构示意图;
图2为本申请另一实施例提供的数据写入方法的流程示意图;
图3为本申请另一实施例提供的确定数据写入模式的流程示意图;
图4为本申请另一实施例提供的数据写入方法的原理示意图;
图5为本申请另一实施例提供的数据写入装置的结构示意图;
图6为本申请另一实施例提供的数据库服务器的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
将数据写入数据分析系统内存储区域是数据分析系统执行数据分析任务的首要步骤,本申请实施例提供一种数据写入方法、设备以及存储介质,旨在提供一种优化数据写入速率的方案。本申请的技术构思是:根据待写入数据和所设置的数据分析系统内的数据分区参数确定对应的数据写入模式,待写入数据和所设置的数据分析系统内的数据分区参数可以反映数据写入过程的复杂程度,可以根据不同复杂程度的数据写入需求调整数据写入模式,以提高数据写入速率,提高数据分析过程的速率。
如图1所示,本申请实施例提供一种数据写入系统,数据写入系统包括客户端101和数据库服务器集群,数据库服务器集群包括多个数据库服务器102,数据库服务器102又分为主数据库服务器和从数据库服务器。其中,主数据库服务器与从数据库服务器之间通信连接。客户端101和主数据库服务器之间通信连接。客户端101用于将待写入数据发送至主数据库服务器102,主数据库服务器102用于执行如下数据写入方法,以将待写入数据写入对应存储区域。
如图2所示,本申请一实施例提供一种数据写入方法,数据写入方法于数据库服务器,数据写入方法具体包括如下步骤:
S201、获取待写入数据和待写入数据在数据分析系统内的数据分区参数。
其中,数据库服务器接收客户端输入的写入数据请求,通过解析写入数据请求获得待写入数据。
数据库服务器内运行有数据分析系统和数据库系统。在向数据库系统中写入数据时,根据用户对数据存储的分区需求设置数据分析系统内的数据分区参数。在设置完数据分区参数后,将待写入数据写入数据分析系统所使用的存储区域中,再由数据分析系统将待写入数据写入数据库系统所使用的存储区域中,实现数据落盘。
以Hive为例,客户端在向数据库服务器发送写入数据请求时,在写入请求中也设置分区需求,例如:按照每天写入待写入数据,也就是将同一天的待写入数据写入同一个存储区域。
S202、根据待写入数据和数据分区参数确定数据写入模式。
其中,根据数据分区参数对所有待写入数据进行分析,确定待写入数据对应的数据分析系统的存储区域的数量。再根据存储区域的数量确定数据写入模式,若存储区域的数量比较少,则可以直接向数据分析系统的存储区域写入数据。若存储区域的总数量比较多,则需要使用多线程存储、动态分区存储或者其他方式存储,以加快写入速率。
S203、根据数据写入模式将待写入数据写入对应数据存储区域中。
其中,在将待写入数据写入数据分析系统的存储区域时,使用所获得的数据写入模式向存储区域中写入数据,以提高数据写入效率。
在本申请实施例提供的数据写入方法中,根据待写入数据和数据分析系统内的数据分区参数确定数据写入模式,再按照相应的数据写入模式将数据写入,数据分区参数和待写入数据不同,数据写入模式也不同,可以提高数据写入效率。
本申请实施例提供一种数据写入方法,数据写入方法于数据库服务器,数据写入方法具体包括如下步骤:
S301、获取待写入数据和待写入数据在数据分析系统内的数据分区参数。
其中,该步骤已经在上述实施例中详细说明,此处不再赘述。
S302、根据待写入数据和数据分区参数确定数据写入模式。
其中,对所有待写入数据和数据分区参数进行分析,以根据待写入数据和数据分区参数确定所有待写入数据对应的数据存储区域的总数量。再根据数据存储区域的总数量确定数据写入模式。若存储区域的数量比较少,则可以直接向数据分析系统的存储区域写入数据。若存储区域的总数量比较多,则需要使用多线程存储、动态分区存储或者其他方式存储,以加快写入速率。
在确定所有待写入数据对应的数据存储区域的总数量时,根据数据分区参数统计所有待写入数据中分区数据的类型数量,根据分区数据的类型数量确定数据存储区域的总数量。
例如:待写入数据为1月份的消费数据,数据分区参数为按天存储,可以确定1月份的消费数据中时间戳的日期为分区数据,统计所有消费数据中的日期类型数量,也就是统计消费数据中分区数据的类型数量,获得日期类型的总数量。日期类型分为1月1日、1月2日、……、1月31日。若1月份的消费数据包含15天的消费数据,则日期的总数量为15,也就是分区数据的类型数量为15,则可以确定1月份的消费数据对应15个数据存储区域。
优选地,如图3所示,在确定所有待写入数据对应的数据存储区域的总数量后,具体根据步骤S1001至S1003确定数据写入模式。
S1001、判断所有待写入数据对应的数据存储区域的总数量是否为一个,若是,则进入S1002,否则,进入S1003。
S1002、若数据存储区域的总数量为一个,数据写入模式为静态分区写入模式。
其中,若数据存储区域的总数量为一个,也就是待写入数据写入同一个数据存储区域中,存储过程相对简单,可以使用静态分区写入模式将待写入数据写入对应存储区域。
S1003、若数据存储区域的总数量为多个,根据所有待写入数据的总数据量和请求占用资源量确定数据写入模式。
其中,若数据存储区域的总数量为多个,也就是待写入数据写入多个数据存储区域中,存储过程相对复杂,需要待写入数据的总数据量和请求占用资源量确定数据写入模式。请求占用资源量可从客户端发送的数据写入请求中获取。
优选地,继续参考图3,在确定所有待写入数据对应的数据存储区域的总数量为多个时,具体根据步骤S2001至S2004确定数据写入模式:
S2001、所有待写入数据的总数据量是否小于预设数据量阈值,若是,进入S2002,否则,进入S2003。
S2002、若总数据量小于预设数据量阈值,数据写入模式为动态分区写入模式。
其中,在待写入数据需要写入多个存储区域,且待写入数据的总数据量比较小时,选择动态分区写入模式。也就是由操作系统自动分区写入。
S2003、若总数据量达到预设数据量阈值,则继续判断请求占用资源量和数据库服务器的剩余资源总量的比值是否超过预设比例阈值,若是,进入S2004,否则进入S2005。
其中,预设比例阈值可以为1,也就是判断请求占用资源量是否超过数据库服务器的剩余资源总量。
S2004、数据写入模式为先写入数据库后写入数据分析系统模式。
在待写入数据需要写入多个存储区域,且待写入数据的总数据量比较大时,并且数据库服务器的剩余资源不充足情况下,采用先写入数据库后写入数据分析系统模式,可以提高数据写入效率。
S2005、数据写入模式为多线程写入模式。
其中,在待写入数据需要写入多个存储区域,且待写入数据的总数据量比较大时,并且数据库服务器的剩余资源充足情况下,可以占用更多数据库服务器的资源,提高存储大数据量的效率。
S303、根据数据写入模式将待写入数据写入对应数据存储区域中。
其中,可以采用自适应不同数据写入模式的方式将待写入数据写入到数据存储区域中。具体采用步骤S3001至S3003。
S3001、根据数据写入模式从代码模板集合中确定写入代码模板。
其中,预先编写各个数据写入模式对应的写入代码模板,代码模板集合包括多个写入代码模板。在根据待写入数据和数据分区参数确定数据写入模式后,根据数据写入模式从代码模板集合中确定写入代码模板。
S3002、根据待写入数据和写入代码模板生成数据写入代码。
其中,在确定写入代码模板后,将待写入数据填写至写入代码模板,生成数据写入代码。
S3003、运行数据写入代码,以将待写入数据写入对应数据存储区域中。
其中,在获得数据写入代码,既可以待写入数据被写入数据分析系统所使用的存储区域中。
在本申请实施例提供的数据写入方法中,根据待写入数据和数据分析系统内的数据分区参数确定待写入数据对应的存储区域,并根据存储区域的类型数量确定数据写入模式,若类型数量为多个,则继续根据待写入数据的总数据量和所申请占用资源确定写入模式,针对不同情况采用不同数据写入模式,可以提高数据写入的效率。
下面结合Hive描述本申请实施例提供的数据写入方法。先描述Hive支持的数据写入模式,再描述本申请实施例提供的数据写入方法的具体步骤。
Hive的数据写入模式包括静态分区数据写入模式、动态分区数据写入模式、多线程数据写入模式以及先写入分布式文件系统(Hadoop Distributed File System,简称:HDFS)后装载至Hive模式。
静态分区数据写入模式应用于数据对应的存储区域单一的情况,具体是指定分区写入数据,例如写入某一天消费数据、写入某一天的订单数据等。
动态分区数据写入模式适应于数据对应的存储区域有多个的情况,但存在数据写入速率慢和易生成大量小文件的问题。若数据对应的存储区域的数目较多,比如以天为分区参数,重刷一年数据的情况,每个分区都需要执行一遍扫描、删除、写入文件操作,数据写入速率比较慢。若数据写入时并行的工作实例的数量M,分区数量为N,会生成M×N个小文件,小文件过多会严重影响NameNode的性能。
多线程数据写入模式适用于分区数较多,但每个分区数据量较小的情况。可以让每个线程来执行少量工作实例,避免生成较多小文件,同时又保证了并发度。多线程数据写入模式的缺点是需要计算引擎支持多线程编程,有些计算引擎,如MapReduce,不支持可控的多线程编程,无法精准控制每个线程的工作实例的数目。且消耗资源较大,如果资源不足,反而会影响任务执行速度。
先写入分布式文件系统后装载至Hive模式,该种模式速度非常快,然而,该种模式不支持Orc存储格式,而Orc格式是一种应用很广泛的Hive存储格式。且该种模式需要手动分区,写入HDFS的接口只支持指定单一HDFS目录,如果数据需要分区,需要手动维护分区代码。
下面结合图4描述本申请另一实施例提供的数据写入方法,该数据写入方法具体包括如下步骤:
S401、获取待写入数据和待写入数据在数据分析系统内的数据分区参数。
其中,客户端从接收到的数据分析任务中提取待写入数据,并对待写入数据和数据分区参数进行分析。主要从四个方面进行分析:
第一,对待写入数据的总数据量进行分析,统计待写入数据的总条数M,从待写入数据中抽样N条数据,计算出N条数据的总数据量为T,可根据如下公式估计出所有待写入数据的总数据量。
Figure BDA0002929318180000091
第二,获取请求申占资源量,根据数据分析任务中所调用数据库服务器集群接口,可获取所申请占用资源量,例如:内存大小、线程数量等。
第三,获取数据分区参数,通过脚本在Hive客户端用命令获取待写入Hive表结构,可获取其文件存储格式以及分区字段。
第四,获得Hive表的分区字段之后,再分析待写入数据中所有分区字段有多少种枚举组合,以获得所有待写入数据对应的存储区域的类型数量。
例如:Hive表中有3个分区字段,依次为“年”、“月”以及“日”,若所有待写入数据的时间戳均为2021年1月1日,则分区字段仅有一种枚举组合,也就是所有待写入数据写入同一存储区域。若所有待写入数据的时间戳为2021年1月1日和2021年1月2日,则分区字段有两种枚举组合,也就是待写入数据所写入的存储区域的数量为2个。
S402、根据待写入数据和数据分区参数确定数据写入模式。
其中,在S402中完成对待写入数据和数据分区参数的分析后,根据分析结果确定数据写入模式。
若分区字段只有一种枚举组合,也就是所有待写入数据写入同一存储区域,采用静态分区写Hive表模式。
若分区字段有多种枚举组合,且总数据量小于预设数据量阈值,采用动态分区写Hive表模式。
若分区字段有多种枚举组合,且总数据量达到预设数据量阈值,且申请占用资源量小于数据库服务器的剩余资源量,也就是分区较多,数据量较大,资源较富足,采用多线程写Hive表模式。
若分区字段有多种枚举组合,且总数据量达到预设数据量阈值,且申请占用资源量超过数据库服务器的剩余资源量,也就是分区较多,数据量较大,且资源紧张,采用先写HDFS后装载到Hive表模式。
S403、根据数据写入模式将待写入数据写入对应数据存储区域中。
其中,可以预先编写四种数据写入模式的写入代码模板,组成代码模板集合。代码模板集合包括静态分区写入模式的写入代码模板、动态分区写入模式的写入代码模板、多线程写入模式的写入代码模板以及先写入数据库后写入数据分析系统模式的写入代码模板。
编写一个lib库函数,入参为待写入数据以及数据写入模式的标识,lib库函数代码模板集合为基础,将S402确定的数据写入模式和待写入数据输入lib库函数,生成数据写入代码。运行数据写入代码,以将待写入数据写入对应数据存储区域中。
在本申请实施例提供的数据写入方法中,根据待写入数据和Hive表结构分析出与确定写Hive模式相关的参数,再根据相关参数确定写Hive模式,再通过预先编写的代码模板,根据分析出的写Hive模式进行匹配,生成对应代码,通过运行代码可实现以所确定的写Hive表模式写入数据,提高数据写入的效率,可以提高数据分析任务的效率。
如图5所示,本申请另一实施例提供数据写入装置500,该装置500具体包括:
获取模块501,用于获取待写入数据和待写入数据在数据分析系统内的数据分区参数,其中,数据分析系统运行于数据库服务器;
处理模块502,用于根据待写入数据和数据分区参数确定数据写入模式;
处理模块502还用于根据数据写入模式将待写入数据写入对应数据存储区域中。
可选地,处理模块502具体用于:
根据待写入数据和数据分区参数确定所有待写入数据对应的数据存储区域的总数量;
根据数据存储区域的总数量确定数据写入模式。
可选地,处理模块502具体用于:
若数据存储区域的总数量为一个,数据写入模式为静态分区写入模式;
若数据存储区域的总数量为多个,根据所有待写入数据的总数据量和请求占用资源量确定数据写入模式。
可选地,处理模块502具体用于:
若总数据量小于预设数据量阈值,数据写入模式为动态分区写入模式;
若总数据量达到预设数据量阈值,则继续根据请求占用资源量确定数据写入模式。
可选地,处理模块502具体用于:
判断请求占用资源量和数据库服务器的资源总量的比值是否超过预设比例阈值;
若否,所述数据写入模式为先写入数据库后写入数据分析系统模式;
若是,所述数据写入模式为多线程写入模式。
可选地,数据分析系统为Hive,先写入数据库后装载至数据分析系统模式为先写入分布式文件系统后装载至Hive。
可选地,处理模块502具体用于:
根据数据分区参数统计所有待写入数据中分区数据的类型数量;
根据分区数据的类型数量确定数据存储区域的总数量。
可选地,处理模块502具体用于:
根据数据写入模式从代码模板集合中确定写入代码模板;
根据待写入数据和写入代码模板生成数据写入代码;
运行数据写入代码,以将待写入数据写入对应数据存储区域中。
可选地,所述代码模板集合包括静态分区写入模式的写入代码模板、动态分区写入模式的写入代码模板、多线程写入模式的写入代码模板以及先写入数据库后写入数据分析系统模式的写入代码模板。
如图6所示,本申请另一实施例提供的测试服务器600包括:发送器601、接收器602、存储器603、及处理器604。
其中,发送器601用于发送指令和数据,接收器602用于接收指令和数据,存储器603用于存储计算机执行指令,处理器604,用于执行存储器存储的计算机执行指令,以实现上述实施例中数据写入方法所执行的各个步骤。具体可以参见前述数据写入方法实施例中的相关描述。
可选地,上述存储器603既可以是独立的,也可以跟处理器604集成在一起。当存储器603独立设置时,该处理设备还包括总线,用于连接存储器603和处理器604。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当处理器执行计算机执行指令时,实现如上处理设备所执行的数据写入方法。
本申请实施例还提供一种计算机程序产品,包括指令,指令被处理器执行时实现如上处理设备所执行的数据写入方法。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (13)

1.一种数据写入方法,其特征在于,所述方法应用于数据库服务器,所述方法包括:
获取待写入数据和所述待写入数据在数据分析系统内的数据分区参数,其中,所述数据分析系统运行于所述数据库服务器;
根据所述待写入数据和所述数据分区参数确定数据写入模式;
根据所述数据写入模式将所述待写入数据写入对应数据存储区域中。
2.根据权利要求1所述的方法,其特征在于,根据所述待写入数据和所述数据分区参数确定数据写入模式,具体包括:
根据所述待写入数据和所述数据分区参数确定所有待写入数据对应的数据存储区域的总数量;
根据所述数据存储区域的总数量确定所述数据写入模式。
3.根据权利要求2所述的方法,其特征在于,根据所述数据存储区域的总数量确定所述数据写入模式,具体包括:
若所述数据存储区域的总数量为一个,数据写入模式为静态分区写入模式;
若所述数据存储区域的总数量为多个,根据所有待写入数据的总数据量和请求占用资源量确定所述数据写入模式。
4.根据权利要求3所述的方法,其特征在于,根据所有待写入数据的总数据量和请求占用资源量确定所述数据写入模式,具体包括:
若所述总数据量小于预设数据量阈值,所述数据写入模式为动态分区写入模式;
若所述总数据量达到预设数据量阈值,则继续根据所述请求占用资源量确定所述数据写入模式。
5.根据权利要求4所述的方法,其特征在于,继续根据所述请求占用资源量确定所述数据写入模式,具体包括:
判断所述请求占用资源量和所述数据库服务器的空闲资源总量的比值是否超过预设比例阈值;
若否,所述数据写入模式为先写入数据库后写入数据分析系统模式;
若是,所述数据写入模式为多线程写入模式。
6.根据权利要求3至5中任意一项所述的方法,其特征在于,所述数据分析系统为Hive,先写入数据库后装载至数据分析系统模式为先写入分布式文件系统后装载至Hive。
7.根据权利要求2至5中任意一项所述的方法,其特征在于,根据所述待写入数据和所述数据分区参数确定所有待写入数据对应的数据存储区域的总数量,具体包括:
根据所述数据分区参数统计所有待写入数据中分区数据的类型数量;
根据所述分区数据的类型数量确定所述数据存储区域的总数量。
8.根据权利要求1至5中任意一项所述的方法,其特征在于,根据所述数据写入模式将所述待写入数据写入对应数据存储区域中,具体包括:
根据所述数据写入模式从代码模板集合中确定写入代码模板;
根据所述待写入数据和所述写入代码模板生成数据写入代码;
运行所述数据写入代码,以将所述待写入数据写入对应数据存储区域中。
9.根据权利要求8所述的方法,其特征在于,所述代码模板集合包括静态分区写入模式的写入代码模板、动态分区写入模式的写入代码模板、多线程写入模式的写入代码模板、以及先写入数据库后写入数据分析系统模式的写入代码模板。
10.一种数据写入装置,其特征在于,所述装置包括:
获取模块,用于获取待写入数据和数据分析系统内的数据分区参数,其中,所述数据分析系统运行于数据库服务器;
处理模块,用于根据所述待写入数据和所述数据分区参数确定数据写入模式;
处理模块还用于根据所述数据写入模式将所述待写入数据写入对应数据存储区域中。
11.一种数据库服务器,其特征在于,包括:存储器,处理器;
存储器;用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为实现如权利要求1至9中任一项所述的数据写入方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求1至9中任一项所述的数据写入方法。
13.一种计算机程序产品,包括指令,其特征在于,所述指令被处理器执行时实现权利要求1至9中任一项所述的数据写入方法。
CN202110142380.2A 2021-02-02 2021-02-02 数据写入方法、设备以及存储介质 Pending CN113761055A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110142380.2A CN113761055A (zh) 2021-02-02 2021-02-02 数据写入方法、设备以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110142380.2A CN113761055A (zh) 2021-02-02 2021-02-02 数据写入方法、设备以及存储介质

Publications (1)

Publication Number Publication Date
CN113761055A true CN113761055A (zh) 2021-12-07

Family

ID=78786579

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110142380.2A Pending CN113761055A (zh) 2021-02-02 2021-02-02 数据写入方法、设备以及存储介质

Country Status (1)

Country Link
CN (1) CN113761055A (zh)

Similar Documents

Publication Publication Date Title
US20130254196A1 (en) Cost-based optimization of configuration parameters and cluster sizing for hadoop
CN107748752B (zh) 一种数据处理方法及装置
EP2763055B1 (en) A telecommunication method and mobile telecommunication device for providing data to a mobile application
CN110209650A (zh) 数据规整迁移方法、装置、计算机设备和存储介质
US9135647B2 (en) Methods and systems for flexible and scalable databases
CN111324610A (zh) 一种数据同步的方法及装置
US9462037B2 (en) Dynamically sizing chunks in a partially loaded spreadsheet model
EP3776251A1 (en) Computation reuse in analytics job service
CN114036238A (zh) 数据同步方法、装置、设备及存储介质
CN112286934A (zh) 数据库表导入方法、装置、设备及介质
CN111581155B (zh) 数据入数据库的方法、装置和计算机设备
CN112699040A (zh) 压力测试方法、装置、设备及计算机可读存储介质
US20230401215A1 (en) Event Sequences Search
US10489416B2 (en) Optimizing and managing execution of hybrid flows
US8918410B2 (en) System and method for fast identification of variable roles during initial data exploration
CN113761055A (zh) 数据写入方法、设备以及存储介质
Bhosale et al. Big data processing using hadoop: survey on scheduling
CN115544172A (zh) 一种一主多从的集群间数据实时同步的方法和系统
CN113220530B (zh) 数据质量监控方法及平台
Ruan et al. Hymr: a hybrid mapreduce workflow system
US20220092194A1 (en) Smart Direct Access
CN113672556A (zh) 一种批量文件的迁移方法及装置
US8296336B2 (en) Techniques for efficient dataloads into partitioned tables using swap tables
CN108376104B (zh) 节点调度方法及装置、计算机可读存储介质
CN113297317A (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