CN105930354B - 存储模型转换方法和装置 - Google Patents
存储模型转换方法和装置 Download PDFInfo
- Publication number
- CN105930354B CN105930354B CN201610217480.6A CN201610217480A CN105930354B CN 105930354 B CN105930354 B CN 105930354B CN 201610217480 A CN201610217480 A CN 201610217480A CN 105930354 B CN105930354 B CN 105930354B
- Authority
- CN
- China
- Prior art keywords
- storage
- database
- row
- data
- column
- 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.)
- Expired - Fee Related
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/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
-
- 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
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)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供存储模型转换方法和装置,应用于服务器,所述服务器包括原始数据库和临时数据库,所述原始数据库的存储模型包括嵌套存储模型,所述临时数据库的存储模型包括二维表存储模型。可以将非关系型数据库中存储的数据转换成用户可直接使用的关系型存储模型下的数据,还可以将用户需要存储的关系型数据库存储模型下的数据转换成非关系型存储模型下的数据存储,在利用非关系型存储优势的同时实现方便访问和存储。
Description
技术领域
本发明涉及数据库领域,具体而言,涉及一种存储模型转换方法和装置。
背景技术
随着云计算、社交网络等互联网技术的快速发展,网络数据量正在以极快的速度增长,数据灵活多变,数据类型呈多样化。为了分析和利用这些庞大的数据资源,必须依赖有效的数据管理技术。传统的关系型数据库技术在数据处理、系统扩展性等方面遇到了巨大的障碍,无法胜任大规模数据存储的任务。与此同时,非关系型数据库NoSQL(Not OnlySQL)技术迅速发展,因其具有非关系型、分布式、开源及水平扩展等特性,是有效解决大数据存储和分析的有效途径。
大数据的出现给信息技术领域带来了新的挑战,非关系型数据库相比传统的关系型数据库更适合大数据量的信息的存储。但是不同的非关系型数据的数据存储模型不同,数据访问方式不一致,构建多元异构的大数据存储系统变得十分复杂。因此,如何解决非关系型数据库存储模型到关系数据库存储模型的转换问题是目前面临的一大课题。
发明内容
有鉴于此,本发明实施例的目的在于提供一种存储模型转换方法和装置。
本发明实施例提供的一种非关系型数据库存储模型到关系型数据库存储模型的转换方法,应用于服务器,所述服务器包括原始数据库和临时数据库,所述原始数据库包含嵌套存储模型的非关系型数据库,所述临时数据库包含二维表存储模型的关系型数据库,所述方法包括:在所述原始数据库中查找待转换数据,所述待转换数据为需要进行存储模型由嵌套存储模型到二维表存储模型转换的数据;将所述待转换数据划分成多个行片段,所述行片段为包括至少一个行键的数据片段;获取每个所述行片段的原始参数,所述原始参数包括行键、列组、列标识符和数值;将每个行片段的所述行键存储在所述临时数据库的行存储空间,将每个所述行片段的所述列组和所述列标识符存储在所述临时数据库的列存储空间,将每个所述行片段的所述数值存储在所述临时数据库的数值存储空间。
优选地,所述临时数据库的所述行存储空间包括行存储表,所述列存储空间包括列存储表,所述数值存储空间包括数值存储表,所述将每个行片段的所述行键存储在所述临时数据库的行存储空间,将每个所述行片段的所述列组和所述列标识符存储在所述临时数据库的列存储空间,将每个所述行片段的所述数值存储在所述临时数据库的数值存储空间,具体包括:将每个行片段的所述列组和所述行键的外键插入所述临时数据库的所述行存储表;将每个行片段的所述列标识符和所述列组的外键插入所述临时数据库的所述列存储表;将每个行片段的所述数值和所述列标识符的外键插入所述临时数据库的所述数值存储表。
优选地,所述的将每个所述行片段的所述行键、列组、列标识符和数值存储在临时数据库之前,所述方法还包括:在所述临时数据库中检验需要插入的所述列组和所述列标识符是否存在,若不存在,则执行插入操作。
优选地,所述服务器并行获取多个所述行片段的所述原始参数,所述服务器并行将多个行片段的所述行键存储在所述临时数据库的行存储空间,并行将多个所述行片段的所述列组和所述列标识符存储在所述临时数据库的所述列存储空间,并行将多个所述行片段的所述数值存储在所述临时数据库的所述数值存储空间。
本发明实施例提供的一种关系型数据库存储模型到非关系型数据库存储模型的转换方法,应用于服务器,所述服务器包括原始数据库和临时数据库,所述原始数据库包含嵌套存储模型的非关系型数据库,所述临时数据库包含二维表存储模型的关系型数据库,所述方法包括:接收本地终端发送的待转换数据,所述待转换数据为需要进行存储模型由二维表存储模型到嵌套存储模型转换的数据;将所述待转换数据划分成多个数据段,所述数据段包括至少一套完整的存储结构,所述存储结构的临时属性包括行存储表、列存储表和数值存储表;获取每个所述数据段的所述临时属性;将每个所述数据段的所述行存储表存储为所述原始数据库的行键,将每个所述数据段的所述列存储表存储为所述原始数据库的列组和列标识符,将每个所述数据段的所述数值存储表存储为所述原始数据库的实体值。
优选地,所述服务器并行获取多个数据段的所述临时属性,并行将多个所述数据段的所述行存储表存储为所述原始数据库的列组和列标识符,并行将多个所述数据段的所述数值存储表存储为所述原始数据库的实体值。
本发明实施例提供的一种应用于服务器,所述服务器包括原始数据库和临时数据库,所述原始数据库包含嵌套存储模型的非关系型数据库,所述临时数据库包含二维表存储模型的关系型数据库,所述装置包括:待转换数据查找单元,用于在所述原始数据库中查找待转换数据,所述待转换数据为需要进行存储模型由嵌套存储模型到二维表存储模型转换的数据;行片段划分单元,用于将所述待转换数据划分成多个行片段,所述行片段为包括至少一个行键的数据片段;行片段处理单元,用于获取每个所述行片段的原始参数,所述原始参数包括行键、列组、列标识符和数值;存储单元,用于将每个行片段的所述行键存储在所述临时数据库的行存储空间,将每个所述行片段的所述列组和所述列标识符存储在所述临时数据库的列存储空间,将每个所述行片段的所述数值存储在所述临时数据库的数值存储空间。
优选地,所述临时数据库的所述行存储空间包括行存储表,所述列存储空间包括列存储表,所述数值存储空间包括数值存储表,所述存储单元具体包括:列组插入子单元,用于将每个行片段的所述列组和所述行键的外键插入所述临时数据库的所述行存储表;列标识符插入子单元,用于将每个行片段的所述列标识符和所述列组的外键插入所述临时数据库的所述列存储表;数值插入子单元,用于将每个行片段的所述数值和所述列标识符的外键插入所述临时数据库的所述数值存储表。
优选地,所述装置还包括:验证单元,在所述临时数据库中检验需要插入的所述列组和所述列标识符是否存在,若不存在,则执行插入操作。
本发明实施例提供的一种关系型数据库存储模型到非关系型数据库存储模型的转换装置,应用于服务器,所述服务器包括原始数据库和临时数据库,所述原始数据库包含嵌套存储模型的非关系型数据库,所述临时数据库包含二维表存储模型的关系型数据库,所述装置包括:待转换数据接收单元,用于接收本地终端发送的待转换数据,所述待转换数据为需要进行存储模型由二维表存储模型到嵌套存储模型转换的数据;数据段划分单元,用于将所述待转换数据划分成多个数据段,所述数据段包括至少一套完整的存储结构,所述存储结构的临时属性包括行存储表、列存储表和数值存储表;临时属性获取单元,用于获取每个所述数据段的所述临时属性;存储单元,用于将每个所述数据段的所述行存储表存储为所述原始数据库的行键,将每个所述数据段的所述列存储表存储为所述原始数据库的列组和列标识符,将每个所述数据段的所述数值存储表存储为所述原始数据库的实体值。
与现有技术相比,本发明的存储模型转换方法和装置,应用于服务器,所述服务器包括原始数据库和临时数据库,所述原始数据库的存储模型包括嵌套存储模型,所述临时数据库的存储模型包括二维表存储模型。将欲转换数据划分成多个行片段,获取每个所述行片段的行键、列组、列标识符和数值等,将每个所述行片段的所述行键、列组、列标识符和数值等按照关系型存储模型存储到二维表存储模型下的临时数据库中,即可实现非关系型数据库的存储模型到关系型数据库存储模型的转换。
相应地,将欲实现关系型存储模型到非关系型存储模型转换的待转换数据划分成多个数据段,获取每个所述数据段的行键、列组、列标识符和数值,将每个所述数据段的所述行键、列组、列标识符和数值按照非关系型数据库存储模型存储在原始数据库,即可实现了关系型数据库到非关系型数据库的转换。本发明实施例提供的存储模型转换方法和装置,可以将非关系型数据库中存储的数据转换成用户可直接使用的关系型存储模型下的数据,还可以将用户需要存储的关系型数据库存储模型下的数据转换成非关系型存储模型下的数据存储,在利用非关系型存储优势的同时实现方便访问和存储。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明较佳实施例提供的服务器与本地终端进行交互的示意图。
图2为本发明较佳实施例提供的服务器的方框示意图。
图3本发明较佳实施例提供的非关系型数据库存储模型到关系型数据库存储模型的转换方法的流程图。
图4是本发明较佳实施例提供的非关系型数据库存储模型到关系型数据库存储模型的转换方法的示意图。
图5是本发明较佳实施例提供的非关系型数据库存储模型到关系型数据库存储模型的转换方法的流程图。
图6本发明较佳实施例提供的关系型数据库存储模型到非关系型数据库存储模型的转换方法的流程图。
图7本发明较佳实施例提供的关系型数据库存储模型到非关系型数据库存储模型的转换方法的示意图。
图8为本发明较佳实施例提供的非关系型数据库存储模型到关系型数据库存储模型的转换装置的模块示意图。
图9为本发明较佳实施例提供的非关系型数据库存储模型到关系型数据库存储模型的转换装置的存储单元的模块示意图。
图10为发明较佳实施例提供的关系型数据库存储模型到非关系型数据库存储模型的转换装置的模块示意图。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
如图1所示,是本发明较佳实施例提供的服务器101与本地终端102进行交互的示意图。所述本地终端102可以是个人电脑(personal computer,PC)、平板电脑、智能手机、个人数字助理(personal digital assistant,PDA)等。
所述服务器101通过网络与一个或多个本地终端102进行通信连接,以进行数据通信或交互。所述服务器101可以是网络服务器101、数据库服务器101等。本实施例所提供的服务器101可以优选为多个数据库服务器101集成系统,所述服务器101可以包括外设接口和内设数据库,所述外设接口可以为统一访问接口,所述内设数据库可以包括临时数据库和原始数据库,所述统一访问接口用于接收本地终端102发送的数据请求,并将接收的数据请求发送至所述数据库,并将所述数据库反馈的数据和信息显示反馈至本地终端102。
所述服务器101包括临时数据库和原始数据库,所述原始数据库包含多种非关系型数据库,多个所述非关系型数据库的种类可以包括多种,其数据模型(如键/值、列存储、文档性、图型等)多样且灵活,多种数据库的访问方式多为数据库本身提供的API或命令行,在数据模型和访问方式上标准不统一,根据其存储模型特征可以将所述非关系型数据库中存储的数据的存储模型定义为嵌套存储模型,嵌套存储模型下的数据一般不能直接提供给用户使用。
所述临时数据库可以优选为关系型数据库,临时数据库存储有与所述原始数据库中存储有资源表述,所述资源表述与原始数据库中存储的数据存在映射关系,所述资源表述可以包括资源内容和资源地址,所述资源内容可以为资源地址所指向的原始数据库中的非关系型数据库的存储空间存储的原始数据的提示信息等。所述临时数据库优选为关系型数据库,其存储模型可以为二维表存储模型,二维表存储模型下的数据可以直接提供给用户使用。
因此本发明实施例提供的存储模型转换方法和装置,用于实现非关系型数据库存储模型和关系型数据库存储模型之间的相互转换,既能将非关系型数据库存储模型下的数据转换成关系型数据库存储模型下的数据提供给用户直接使用,也能将用户提供的关系型数据库存储模型下的数据转换为非关系型存储模型下的数据存储在非关系型数据中。
如图2所示,是所述服务器200的方框示意图。所述服务器200包括存储模型转换装置201、存储器202、存储控制器203、处理器204、外设接口205、输入输出单元206、显示单元207。
所述存储器202、存储控制器203、处理器204、外设接口205、输入输出单元206、显示单元207各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。所述存储模型转换装置201包括至少一个可以软件或固件(firmware)的形式存储于所述存储器202中或固化在所述服务器200的操作系统(operating system,OS)中的软件功能模块。所述处理器204用于执行存储器202中存储的可执行模块,例如所述存储模型转换装置201包括的软件功能模块或计算机程序。
其中,存储器202可以是,但不限于,随机存取存储器202(Random Access Memory,RAM),只读存储器202(Read Only Memory,ROM),可编程只读存储器202(ProgrammableRead-Only Memory,PROM),可擦除只读存储器202(Erasable Programmable Read-OnlyMemory,EPROM),电可擦除只读存储器202(Electric Erasable Programmable Read-OnlyMemory,EEPROM)等。其中,存储器202用于存储程序,所述处理器204在接收到执行指令后,执行所述程序,前述本发明实施例任一实施例揭示的流过程定义的服务器200所执行的方法可以应用于处理器204中,或者由处理器204实现。
处理器204可能是一种集成电路芯片,具有信号的处理能力。上述的处理器204可以是通用处理器204,包括中央处理器204(Central Processing Unit,简称CPU)、网络处理器204(Network Processor,简称NP)等;还可以是数字信号处理器204(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器204可以是微处理器204或者该处理器204也可以是任何常规的处理器204等。
所述外设接口205将各种输入/输入装置耦合至处理器204以及存储器202。在一些实施例中,外设接口205,处理器204以及存储控制器203可以在单个芯片中实现。在其他一些实例中,他们可以分别由独立的芯片实现。
输入输出单元206用于提供给用户输入数据实现用户与所述服务器200(或本地终端)的交互。所述输入输出单元206可以是,但不限于,鼠标和键盘等。
显示单元207在所述服务器200(或本地终端)与用户之间提供一个交互界面(例如用户操作界面)或用于显示图像数据给用户参考。在本实施例中,所述显示单元207可以是液晶显示器或触控显示器。若为触控显示器,其可为支持单点和多点触控操作的电容式触控屏或电阻式触控屏等。支持单点和多点触控操作是指触控显示器能感应到来自该触控显示器上一个或多个位置处同时产生的触控操作,并将该感应到的触控操作交由处理器204进行计算和处理。
请参阅图3和图4,图3是本发明较佳实施例提供的应用于图2所示的存储模型转换装置的非关系型数据库存储模型到关系型数据库存储模型的转换方法的流程图,图4是本发明较佳实施例提供的存储模型转换方法的示意图。所述方法应用于上述服务器,所述服务器包括原始数据库和临时数据库,所述原始数据库包含嵌套存储模型的非关系型数据库,所述临时数据库包含二维表存储模型的关系型数据库。下面将对图3所示的具体流程进行详细阐述。
步骤S301,在原始数据库中查找待转换数据,所述待转换数据为需要进行存储模型由嵌套存储模型到二维表存储模型转换的数据。
本实施例所提供的存储模型转换方法应用于服务器,所述服务器连接有本地终端,所述本地终端设置有统一访问接口,用于接收用户输入的数据获取请求。所述数据获取请求可以包括欲获取数据的目录信息,所述欲获取数据可以为单个的数据,或者是一定存储单元的数据集合等。本地终端在接收到用户输入的数据请求后,将所述数据请求发送至所述服务器。
所述服务器的所述临时数据库中预设有与原始数据库中存储的每个所述原始数据对应的资源表述,所述资源表述可以包括资源内容和资源地址。所述资源内容包括原始数据的提示信息,可以为数据目录或者数据存储行列的主键等,也可以包括数据的表达格式,如XML、JSON等。所述资源地址为该资源内容所指向的数据在原始数据库中的原始数据的存储地址,可以使用统一资源标识符(Uniform Resource Identifier,或URI))来命名和描述资源的地址。
所述服务器在接收到本地终端发送的数据请求后,在临时数据库存储的资源表述库中,查找与所述数据获取请求对应的资源表述。所述服务器根据所述资源地址查找该资源地址所指向的存储区域,在查找的所述存储区域内查找所述资源内容所指向的数据,所述欲获取数据的存储模型为嵌套存储模型,需要将该数据的存储模型转换为二维表存储模型,所述欲获取数据即为欲转换数据,所述待转换数据的存储模型需要由嵌套存储模型转换为二维表存储模型
步骤S302,将所述待转换数据划分成多个行片段,所述行片段为包括至少一个行键的数据片段。
所述服务器在原始数据库中查找到欲转换数据后,通过处理器对于所述欲转换数据执行存储模型转换操作,所述转换操作可以优选使用Map Reduce执行。
Map Reduce是一种编程模型,一般用于大规模数据集(大于1TB)的并行运算。概念"Map(映射)"和"Reduce(归约)",当前的软件实现是指定一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce(归约)函数,用来保证所有映射的键值对中的每一个共享相同的键组。Map Reduce通过把对数据集的大规模操作分发给网络上的每个节点实现可靠性;每个节点会周期性的返回它所完成的工作和最新的状态。如果一个节点保持沉默超过一个预设的时间间隔,主节点(类同Google File System中的主服务器)记录下这个节点状态为死亡,并把分配给这个节点的数据发到别的节点。每个操作使用命名文件的原子操作以确保不会发生并行线程间的冲突;当文件被改名的时候,系统可能会把他们复制到任务名以外的另一个名字上去。user program的副本中有一个称为master,其余称为worker,master是负责调度的,为空闲worker分配作业(Map作业或者Reduce作业,本实施例主要涉及Map过程,主要为Map作业),worker的数量也是可以由用户指定的。
本实施例的所述服务器在获取所述欲转换数据时,先通过Map Reduce库把欲转换数据划分为M份(M可以为用户定义,可以根据文件的大小进行自定义设置),每一份通常有16MB到64MB,然后使用fork将用户进程拷贝到集群内其它机器上。每份任务包含一个行片段,由于行键为非关系型数据库的基本存储单元,因此每个所述行片段包括至少一个行键。
步骤S303,获取每个所述行片段的原始参数,所述原始参数包括行键、列组、列标识符和数值。
所述服务器的处理器在将所述欲转换数据划分成行片段之后,被分配了Map作业的worker,开始读取对应分片的输入数据,Map作业数量是由M决定的,和split一一对应;Map作业从输入数据中抽取出键值对,每一个键值对都作为参数传递给map函数,map函数产生的中间键值对被缓存在内存中。Map作业从输入数据中抽取出键值对时,将每一个键值对作为参数传递给Map函数,Map对于其所接收的行片段进行处理,获取该行片段的原始参数,所述的原始参数可以包括行键、列组、列标识符和数值,每个Map获取到其中的行片段的行键、列组、列标识符和数值。
步骤S304,将每个行片段的所述行键存储在所述临时数据库的行存储空间,将每个所述行片段的所述列组和所述列标识符存储在所述临时数据库的列存储空间,将每个所述行片段的所述数值存储在所述临时数据库的数值存储空间。
Map函数在对于所述行片段进行处理时,获取每个所述行片段的所述行键、列组、列标识符和数值,根据预设的映射规则,将所获取的所述行键、列组、列标识符和数值存储在临时数据库中相应的数据存储空间。映射存储规则具体包括:将每个行片段的所述行键存储在所述临时数据库的行存储空间,将每个所述行片段的所述列组和所述列标识符存储在所述临时数据库的列存储空间,将每个所述行片段的所述数值存储在所述临时数据库的数值存储空间。所述行存储空间、列存储空间和数值存储空间为设置在临时数据库中用于存储转换后数据的二维表,所述行存储空间可以为独立的行存储表,所述列存储空间可以为独立的列存储表,所述数值存储表可以为独立的数值存储表,当然,也可以设置多个独立存储表格,每个存储表格包括行存储空间、列存储空间和数值存储空间,每个存储表格可以用于存放一个完整的行片段的临时属性,例如行、列、单元格等。
上述的存储模型转换过程,所述服务器需要将欲转换数据划分成多个行片段,获取其中的每个所述行片段的行键、列组、列标识符和数值,所述的获取过程可以为并行获取过程,即是并行获取多个行片段的原始参数,包括行键、列组、列标识符和数值等,所述的将每个行片段的所述行键存储在所述临时数据库的行存储空间,将每个所述行片段的所述列组和所述列标识符存储在所述临时数据库的列存储空间,将每个所述行片段的所述数值存储在所述临时数据库的数值存储空间。的过程也可以为并行存储过程。对于多个行片段的相同的处理过程采用并行处理的方式,可以极大程度地节省处理时间、提高处理进度和准确率。
上述本发明实施例提供的非关系型数据库存储模型到关系型数据库存储模型的转换方法,应用于服务器,服务器包括非关系型数据库嵌套存储模型的原始数据库和关系型数据库二维表存储模型的临时数据库,使用Map函数将所查找的嵌套存储模型的欲转换数据划分成多个行片段,获取每个所述行片段的行键、列组、列标识符和数值,将每个所述行片段的所述行键、列组、列标识符和数值存储在二维表存储模型下的临时数据库中,即可实现了非关系型数据库存储模型到关系型数据库存储模型的转换,可以将用户需求的数据从非关系型数据库查找到之后自动转换存储模型,方便用户可以直接利用。
上述本发明实施例提供的存储模型转换方法中,所述临时数据库的所述行存储空间包括行存储表,所述列存储空间包括列存储表,所述数值存储空间包括数值存储表,上述步骤S304:将每个行片段的所述行键存储在所述临时数据库的行存储空间,将每个所述行片段的所述列组和所述列标识符存储在所述临时数据库的列存储空间,将每个所述行片段的所述数值存储在所述临时数据库的数值存储空间,可以具体包括如图5所述的步骤:
S501,将所述列组和所述行键的外键插入所述临时数据库的所述行存储表;
S502,将所述列标识符和所述列组的外键插入所述临时数据库的所述列存储表;
S503,将所述数值和所述列标识符的外键插入所述临时数据库的所述数值存储表。
所述服务器采用对应存储的方式将非关系型存储模型的相关数据存储在临时数据库中,优选在临时数据库中设置行存储表、列存储表和数值存储表。获取每个行片段的所述行键、列组、列标识符和数值之后,将所述列组和所述行键的外键插入所述临时数据库的所述行存储表中,将所述列标识符和所述列组的外键插入所述临时数据库的所述列存储表中,将所述数值和所述列标识符的外键插入所述临时数据库的所述数值存储表中。可以在所述行存储表中查找所有行片段的行键的外键和所述行片段的列组,通过所述行片段的列组与所述列组的外键的对应关系查找到所对应的列存储表,在所述列存储表中获取所述列标识符,根据所述列标识符和该列标识符的外键的对应关系查找到所述数值存储表,在所查找的所述数值存储表中查找到所需要的数值。
为了保证行键、列组、列标识符和数值唯一存在,所述的将每个所述行片段的所述行键、列组、列标识符和数值存储在临时数据库之前,所述方法还包括:
在临时数据库中检验需要插入的所述列组和所述列标识符是否为未存在状态,若是,则执行存储操作。
上述本发明实施例提供的非关系型数据库存储模型到关系型存储模型转换方法,应用于服务器,服务器包括非关系型数据库嵌套存储模型的原始数据库和关系型数据库二维表存储模型的临时数据库,使用Map函数将所查找的嵌套存储模型的欲转换数据划分成多个行片段,获取每个所述行片段的行键、列组、列标识符和数值,将每个所述行片段的所述行键、列组、列标识符和数值存储在二维表存储模型下的临时数据库中,即可实现了非关系型数据库存储模型到关系型数据库存储模型的转换。所述的行片段划分、行键、列组、列标识符和数值等的获取过程和转换存储过程均可以通过Map并行处理,以提高转换效率和准确率,将每个行片段的行键、列组、列标识符和数值插入所述临时数据库时,利用相应数据与其外键的对应关系分表格存储在相应的数据表中,以实现简单查询。在列组和列标识符插入之前检验所述列组和列标识符是否存在,以保证每个存储空间所对应的数值唯一存在,进一步提高转换存储的准确率。本实施例提供的存储模型转换方法可以将用户需求的数据从非关系型数据库查找到之后自动转换存储模型,方便用户可以直接利用。
实施例2
参见图6和图7,图6是本发明较佳实施例提供的应用于图2所示的存储模型转换装置的非关系型数据库存储模型到关系型数据库存储模型的转换方法的流程图,图7是存储模型转换方法的示意图。所述方法应用于上述的服务器,所述服务器包括原始数据库和临时数据库,所述原始数据库包含嵌套存储模型的非关系型数据库,所述临时数据库包含二维表存储模型的关系型数据库。下面将对图6所示的具体流程进行详细阐述。
S601,接收本地终端发送的待转换数据,所述待转换数据为需要进行存储模型由二维表存储模型到嵌套存储模型转换的数据;
S602,将所述待转换数据划分成多个数据段,所述数据段包括至少一套完整的存储结构,所述存储结构的临时属性包括行存储表、列存储表和数值存储表;
S603,获取每个所述数据段的所述临时属性;
S604,将每个所述数据段的所述行存储表存储为所述原始数据库的行键,将每个所述数据段的所述列存储表存储为所述原始数据库的列组和列标识符,将每个所述数据段的所述数值存储表存储为所述原始数据库的实体值。
用户通过本地终端输入所需要存储的数据,即所述待转换数据,所述服务器需要将用户输入的关系型数据库存储模型下的所述待转换数据转换为非关系型数据数据库存储模型下的数据存储在原始数据库的非关系型数据库中,相应的非关系型数据库及其存储模型的选择可以由用户输入或者根据数据类型自由选择。
服务器获取所述本地终端发送的待转换数据之后,可以使用Map Reduce对所述待转换数据进行转换处理。首先,将所述待转换数据划分成多个数据段,所述数据段包括至少一套完整的存储结构,所述存储结构的临时属性包括行存储表、列存储表和数值存储表,所述服务器获取每个所述数据段的所述临时属性,包括航存储表、列存储表和数值存储表等。通过外键获取到与之关联的列组、列标识符与行键,获将每个所述行片段的所述行键、列组、列标识符和数值组装成put实例,将组装的每个数据段的put实例对应存储在原始数据库中,例如,可以通过HTable写入HBase中。服务器将每个所述数据段的所述行存储表存储为所述原始数据库的行键,将每个所述数据段的所述列存储表存储为所述原始数据库的列组和列标识符,将每个所述数据段的所述数值存储为所述原始数据库的实体值。
上述的获取每个所述数据段的行键、列组、列标识符和数值可以为并行获取过程,所述的将每个所述数据段的所述行键、列组、列标识符和数值存储在所述原始数据库也可以为并行存储过程,可以很大程度上提高存储模型转换的效率和准确度。
本发明实施例提供的关系型数据库存储模型到非关系型数据库存储模型的转换方法,应用于上述的服务器,将待转换数据划分成多个数据段,通过数据段的外键获取与之关联的列组、列标识符和行键等信息,可以将所述数值、列组、列标识符和行键组装成put实例写入原始数据库相应的非关系型数据库中,即可实现将用户需要存储的关系型数据库存储模型下的数据转换为非关系型数据库存储模型下的数据存储在相应的非关系型数据库中存储。本发明实施例提供的关系型数据库存储模型到非关系型数据库存储模型转换方法的相关过程可参照上述非关系型数据库到关系型数据库存储模型转换方法,在此不再一一赘述。
实施例3
请参阅图8,是本发明较佳实施例提供的应用于图2所示的服务器的非关系型数据库存储模型到关系型数据库存储模型的转换装置的功能模块示意图。所述非关系型数据库存储模型到关系型数据库存储模型的转换装置主要包括:
待转换数据查找单元801,用于在原始数据库中查找待转换数据,所述待转换数据为需要进行存储模型由嵌套存储模型到二维表存储模型转换的数据;
行片段划分单元802,用于将所述待转换数据划分成多个行片段,所述行片段为包括至少一个行键的数据片段;
行片段处理单元803,用于获取每个所述行片段的原始参数,所述原始参数包括行键、列组、列标识符和数值;
存储单元804,用于将每个行片段的所述行键存储在所述临时数据库的行存储空间,将每个所述行片段的所述列组和所述列标识符存储在所述临时数据库的列存储空间,将每个所述行片段的所述数值存储在所述临时数据库的数值存储空间。
请参阅图9,是本发明较佳实施例提供的应用于图2所示的服务器的非关系型数据库存储模型到关系型数据库存储模型的转换装置的功能模块示意图。所述临时数据库的所述行存储空间包括行存储表,所述列存储空间包括列存储表,所述数值存储空间包括数值存储表,所述存储单元900具体包括:
列组插入子单元901,用于将所述列组和所述行键的外键插入所述临时数据库的所述行存储表;
列标识符插入子单元902,用于将所述列标识符和所述列组的外键插入所述临时数据库的所述列存储表;
数值插入子单元903,用于将所述数值和所述列标识符的外键插入所述临时数据库的所述数值存储表。
在上述实施例的基础上,所述装置还可以包括:
验证单元,用于在所述临时数据库中检验需要插入的所述列组和所述列标识符是否存在,若不存在,则执行插入操作。
实施例4
请参阅图10,是本发明较佳实施例提供的应用于图2所示的服务器的关系型数据库存储模型到非关系型数据库存储模型的转换装置的功能模块示意图。所述装置1000应用于服务器,所述服务器包括原始数据库和临时数据库,所述原始数据库包含嵌套存储模型的非关系型数据库,所述临时数据库包含二维表存储模型的关系型数据库,所述装置1000包括:
待转换数据接收单元1001,用于接收本地终端发送的待转换数据,所述待转换数据为需要进行存储模型由二维表存储模型到嵌套存储模型转换的数据;
数据段划分单元1002,用于将所述待转换数据划分成多个数据段,所述数据段包括至少一套完整的存储结构,所述存储结构的临时属性包括行存储表、列存储表和数值存储表;
临时属性获取单元1003,用于获取每个所述行片段的所述临时属性;
存储单元1004,用于将每个所述数据段的所述行存储表存储为所述原始数据库的行键,将每个所述数据段的所述列存储表存储为所述原始数据库的列组和列标识符,将每个所述数据段的所述数值存储表存储为所述原始数据库的实体值。
本发明实施例提供的存储模型转换装置,包括非关系型数据库存储模型到关系型数据库存储模型的转换装置和关系型数据库存储模型到非关系型数据库存储模型的转换装置。与现有技术相比,本发明的存储模型转换方法和装置,应用于服务器,所述服务器包括原始数据库和临时数据库,所述原始数据库的存储模型包括嵌套存储模型,所述临时数据库的存储模型包括二维表存储模型。将欲转换数据划分成多个行片段,获取每个所述行片段的行键、列组、列标识符和数值等,将每个所述行片段的所述行键、列组、列标识符和数值等按照关系型存储模型存储到二维表存储模型下的临时数据库中,即可实现非关系型数据库的存储模型到关系型数据库存储模型的转换。相应地,将欲实现关系型存储模型到非关系型存储模型转换的待转换数据划分成多个数据段,获取每个所述数据段的行键、列组、列标识符和数值,将每个所述数据段的所述行键、列组、列标识符和数值按照非关系型数据库存储模型存储在原始数据库,即可实现了关系型数据库到非关系型数据库的转换。本发明实施例提供的存储模型转换方法和装置,可以将非关系型数据库中存储的数据转换成用户可直接使用的关系型存储模型下的数据,还可以将用户需要存储的关系型数据库存储模型下的数据转换成非关系型存储模型下的数据存储,在利用非关系型存储优势的同时实现方便访问和存储。所述存储模型转换装置的具体实施方式可参照上述方法实施例,在此不再一一赘述。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (9)
1.一种非关系型数据库存储模型到关系型数据库存储模型的转换方法,其特征在于,应用于服务器,所述服务器包括原始数据库和临时数据库,所述原始数据库包含存储模型为嵌套存储模型的非关系型数据库,所述临时数据库包含存储模型为二维表存储模型的关系型数据库,所述方法包括:
在所述原始数据库中查找待转换数据,所述待转换数据为需要进行存储模型由嵌套存储模型到二维表存储模型转换的数据;
将所述待转换数据划分成多个行片段,所述行片段为包括至少一个行键的数据片段;
获取每个所述行片段的原始参数,所述原始参数包括行键、列组、列标识符和数值;
将每个所述行片段的所述行键存储在所述临时数据库的行存储空间,将每个所述行片段的所述列组和所述列标识符存储在所述临时数据库的列存储空间,将每个所述行片段的所述数值存储在所述临时数据库的数值存储空间;
所述临时数据库中预设有与原始数据库中存储的每个所述原始数据对应的资源表述,所述资源表述包括资源内容和资源地址;所述在所述原始数据库中查找待转换数据,包括:
接收数据请求,在所述临时数据库中查找与所述数据请求对应的资源表述;所述资源表述包括资源地址和资源内容;
根据所述资源地址和所述资源内容获取所述待转换数据。
2.根据权利要求1所述的方法,其特征在于,所述临时数据库的所述行存储空间包括行存储表,所述列存储空间包括列存储表,所述数值存储空间包括数值存储表,所述将每个行片段的所述行键存储在所述临时数据库的行存储空间,将每个所述行片段的所述列组和所述列标识符存储在所述临时数据库的列存储空间,将每个所述行片段的所述数值存储在所述临时数据库的数值存储空间,具体包括:
将每个所述行片段的所述列组和所述行键的外键插入所述临时数据库的所述行存储表;
将每个所述行片段的所述列标识符和所述列组的外键插入所述临时数据库的所述列存储表;
将每个所述行片段的所述数值和所述列标识符的外键插入所述临时数据库的所述数值存储表。
3.根据权利要求1所述的方法,其特征在于,将每个所述行片段的所述行键、列组、列标识符和数值存储在临时数据库之前,所述方法还包括:
在所述临时数据库中检验需要插入的所述列组和所述列标识符是否存在,若不存在,则执行插入操作。
4.根据权利要求1所述的方法,其特征在于,所述服务器并行获取多个所述行片段的所述原始参数,所述服务器并行将多个行片段的所述行键存储在所述临时数据库的行存储空间,并行将多个所述行片段的所述列组和所述列标识符存储在所述临时数据库的所述列存储空间,并行将多个所述行片段的所述数值存储在所述临时数据库的所述数值存储空间。
5.一种关系型数据库存储模型到非关系型数据库存储模型的转换方法,其特征在于,应用于服务器,所述服务器包括原始数据库和临时数据库,所述原始数据库包含存储模型为嵌套存储模型的非关系型数据库,所述临时数据库包含存储模型为二维表存储模型的关系型数据库,所述方法包括:
接收本地终端发送的待转换数据,所述待转换数据为需要进行存储模型由二维表存储模型到嵌套存储模型转换的数据;
将所述待转换数据划分成多个数据段,所述数据段包括至少一套完整的存储结构,所述存储结构的临时属性包括行存储表、列存储表和数值存储表;
获取每个所述数据段的所述临时属性;
将每个所述数据段的所述行存储表存储为所述原始数据库的行键,将每个所述数据段的所述列存储表存储为所述原始数据库的列组和列标识符,将每个所述数据段的所述数值存储表存储为所述原始数据库的实体值;
所述服务器并行获取多个数据段的所述临时属性,并行将多个所述数据段的所述行存储表存储为所述原始数据库的列组和列标识符,并行将多个所述数据段的所述数值存储表存储为所述原始数据库的实体值。
6.一种非关系型数据库存储模型到关系型数据库存储模型的转换装置,其特征在于,应用于服务器,所述服务器包括原始数据库和临时数据库,所述原始数据库包含存储模型为嵌套存储模型的非关系型数据库,所述临时数据库包含存储模型为二维表存储模型的关系型数据库,所述装置包括:
待转换数据查找单元,用于在所述原始数据库中查找待转换数据,所述待转换数据为需要进行存储模型由嵌套存储模型到二维表存储模型转换的数据;
行片段划分单元,用于将所述待转换数据划分成多个行片段,所述行片段为包括至少一个行键的数据片段;
行片段处理单元,用于获取每个所述行片段的原始参数,所述原始参数包括行键、列组、列标识符和数值;
存储单元,用于将每个行片段的所述行键存储在所述临时数据库的行存储空间,将每个所述行片段的所述列组和所述列标识符存储在所述临时数据库的列存储空间,将每个所述行片段的所述数值存储在所述临时数据库的数值存储空间;
所述临时数据库中预设有与原始数据库中存储的每个所述原始数据对应的资源表述,所述待转换数据查找单元具体用于:
接收数据请求,在所述临时数据库中查找与所述数据请求对应的资源表述;所述资源表述包括资源地址和资源内容;
根据所述资源地址和所述资源内容获取所述待转换数据。
7.根据权利要求6所述的装置,其特征在于,所述临时数据库的所述行存储空间包括行存储表,所述列存储空间包括列存储表,所述数值存储空间包括数值存储表,所述存储单元具体包括:
列组插入子单元,用于将每个行片段的所述列组和所述行键的外键插入所述临时数据库的所述行存储表;
列标识符插入子单元,用于将每个行片段的所述列标识符和所述列组的外键插入所述临时数据库的所述列存储表;
数值插入子单元,用于将每个行片段的所述数值和所述列标识符的外键插入所述临时数据库的所述数值存储表。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:
验证单元,在所述临时数据库中检验需要插入的所述列组和所述列标识符是否存在,若不存在,则执行插入操作。
9.一种关系型数据库存储模型到非关系型数据库存储模型的转换装置,其特征在于,应用于服务器,所述服务器包括原始数据库和临时数据库,所述原始数据库包含存储模型为嵌套存储模型的非关系型数据库,所述临时数据库包含存储模型为二维表存储模型的关系型数据库,所述装置包括:
待转换数据接收单元,用于接收本地终端发送的待转换数据,所述待转换数据为需要进行存储模型由二维表存储模型到嵌套存储模型转换的数据;
数据段划分单元,用于将所述待转换数据划分成多个数据段,所述数据段包括至少一套完整的存储结构,所述存储结构的临时属性包括行存储表、列存储表和数值存储表;
临时属性获取单元,用于获取每个所述数据段的所述临时属性;
存储单元,用于将每个所述数据段的所述行存储表存储为所述原始数据库的行键,将每个所述数据段的所述列存储表存储为所述原始数据库的列组和列标识符,将每个所述数据段的所述数值存储表存储为所述原始数据库的实体值;
所述临时属性获取单元具体用于:
并行获取多个数据段的所述临时属性;
所述存储单元具体用于:
并行将多个所述数据段的所述行存储表存储为所述原始数据库的列组和列标识符,并行将多个所述数据段的所述数值存储表存储为所述原始数据库的实体值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610217480.6A CN105930354B (zh) | 2016-04-08 | 2016-04-08 | 存储模型转换方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610217480.6A CN105930354B (zh) | 2016-04-08 | 2016-04-08 | 存储模型转换方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105930354A CN105930354A (zh) | 2016-09-07 |
CN105930354B true CN105930354B (zh) | 2020-02-14 |
Family
ID=56840528
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610217480.6A Expired - Fee Related CN105930354B (zh) | 2016-04-08 | 2016-04-08 | 存储模型转换方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105930354B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106528898A (zh) * | 2017-01-04 | 2017-03-22 | 泰康保险集团股份有限公司 | 将非关系型数据库数据转换到关系型数据库的方法及装置 |
CN111309486B (zh) * | 2018-08-10 | 2024-01-12 | 中科寒武纪科技股份有限公司 | 转换方法、装置、计算机设备和存储介质 |
CN112612786A (zh) * | 2020-11-24 | 2021-04-06 | 北京思特奇信息技术股份有限公司 | 一种大数据量的行列转换方法及系统 |
CN112487075B (zh) * | 2020-12-29 | 2021-08-31 | 中科院计算技术研究所大数据研究院 | 一种集成关系型和非关系型数据库数据转换算子的方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104123392A (zh) * | 2014-08-11 | 2014-10-29 | 吉林禹硕动漫游戏科技股份有限公司 | 一种关系型数据库迁移到HBase数据库的工具和方法 |
CN105260464A (zh) * | 2015-10-16 | 2016-01-20 | 北京奇虎科技有限公司 | 数据存储结构的转换方法及装置 |
CN105335412A (zh) * | 2014-07-31 | 2016-02-17 | 阿里巴巴集团控股有限公司 | 用于数据转换、数据迁移的方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160055233A1 (en) * | 2014-08-25 | 2016-02-25 | Ca, Inc. | Pre-join tags for entity-relationship modeling of databases |
-
2016
- 2016-04-08 CN CN201610217480.6A patent/CN105930354B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105335412A (zh) * | 2014-07-31 | 2016-02-17 | 阿里巴巴集团控股有限公司 | 用于数据转换、数据迁移的方法和装置 |
CN104123392A (zh) * | 2014-08-11 | 2014-10-29 | 吉林禹硕动漫游戏科技股份有限公司 | 一种关系型数据库迁移到HBase数据库的工具和方法 |
CN105260464A (zh) * | 2015-10-16 | 2016-01-20 | 北京奇虎科技有限公司 | 数据存储结构的转换方法及装置 |
Non-Patent Citations (1)
Title |
---|
商品比价系统中大数据迁移及数据转换技术研究;付志成;《商品比价系统中大数据迁移及数据转换技术研究》;20150815(第8期);第I138-998页 * |
Also Published As
Publication number | Publication date |
---|---|
CN105930354A (zh) | 2016-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108519967B (zh) | 图表可视化方法、装置、终端和存储介质 | |
Padhy | Big data processing with Hadoop-MapReduce in cloud systems | |
CN105550241B (zh) | 多维数据库查询方法及装置 | |
WO2016095726A1 (zh) | 一种用于分布式执行关系型计算指令的方法与设备 | |
CN111324610A (zh) | 一种数据同步的方法及装置 | |
CN105930354B (zh) | 存储模型转换方法和装置 | |
Wang et al. | Research and implementation on spatial data storage and operation based on Hadoop platform | |
Hasani et al. | Lambda architecture for real time big data analytic | |
US9189515B1 (en) | Data retrieval from heterogeneous storage systems | |
AU2017254506B2 (en) | Method, apparatus, computing device and storage medium for data analyzing and processing | |
Naheman et al. | Review of NoSQL databases and performance testing on HBase | |
CN112860777B (zh) | 数据处理方法、装置及设备 | |
Wang et al. | Distributed storage and index of vector spatial data based on HBase | |
CN106055678A (zh) | 一种基于hadoop的全景大数据分布式存储方法 | |
CN112506486A (zh) | 搜索系统建立方法、装置、电子设备及可读存储介质 | |
CN112507020A (zh) | 数据同步方法、装置、计算机设备及存储介质 | |
US20200278969A1 (en) | Unified metrics computation platform | |
WO2023134134A1 (zh) | 一种关联查看模型的生成方法、装置、计算机设备及存储介质 | |
CN111427577A (zh) | 代码处理方法、装置及服务器 | |
US9646048B2 (en) | Declarative partitioning for data collection queries | |
Ahsaan et al. | Big data analytics: challenges and technologies | |
US9773034B1 (en) | Large-scale log index | |
JP2016024486A (ja) | データ活用システム及びその制御方法 | |
US10169083B1 (en) | Scalable method for optimizing information pathway | |
Verma et al. | Big data analytics: performance evaluation for high availability and fault tolerance using mapreduce framework with hdfs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20200214 |