一种数据传输方法和装置技术领域
本发明实施例涉及数据库领域,尤其涉及一种数据传输方法和装置。
背景技术
分布式数据库结构中分布的节点通常包括协调节点(Coordinator Node,简
称CN)和数据节点(Data Node,简称DN)。CN和DN或者多个DN之间通
常需要传输数据。
举个例子,用户通过上层应用向CN发送查询请求,CN将查询请求发送
给对应的DN节点,以使DN节点执行该查询请求,并将查询结果返回给CN,
以使CN传输给上层应用,进而展现给用户。
上述过程中,数据在各个节点,DN与CN,或者DN与DN之间进行传输
时,节点间所传输的数据是未经过压缩的数据,因此各个节点之间的数据传输
的开销较大,给网络带来了较大的负荷量。
综上,亟需一种数据传输方法和装置,用于降低分布式数据库中各个节点
间数据传输的开销,减轻网络负荷。
发明内容
本发明实施例提供一种数据传输方法和装置,用于降低分布式数据库中各
个节点间数据传输的开销,减轻网络负荷。
本发明实施例提供一种数据传输方法,包括以下步骤:
数据节点DN确定一个具有分布规律的待传输列,以及待传输列中参数的
分布规律;
DN根据待传输列的参数的数据类型,以及待传输列中参数的分布规律,
确定待传输列对应的压缩算法;本发明实施例中的压缩算法有多种,比如,无
损压缩(Run-Length Encoding,简称RLE)算法、字典算法、LZ4算法、Zlib
算法;待传输列的参数的数据类型可为多种,比如整型(Integer)、长整型(Long)、
单精度浮点型(Single)、双精度浮点型(Double)和货币型(Currency)等等;
DN使用压缩算法对所待传输列进行压缩,DN向目标节点发送压缩后的
待传输列。可选地,目标节点为DN或CN。如此,DN与DN之间传输数据,
或者DN与CN之间传输数据时均可传输压缩后的待传输数据,降低了各个节
点间数据传输的开销,减轻了网络负荷。
本发明实施例中,由于DN根据待传输列的参数的数据类型,以及待传输
列中参数的分布规律确定待传输列对应的压缩算法所对应的压缩算法,从而可
尽可能的使用能达到较大压缩比的压缩算法来对待传输列进行压缩,提高了压
缩算法确定的灵活性。进一步由于DN使用确定出的压缩算法对待传输列进行
压缩,之后向目标节点发送压缩后的待传输列,因而传输压缩后的待传输数据,
降低了各个节点间数据传输的开销,减轻了网络负荷。
可选地,DN根据查询命令中的关键词,确定一个具有分布规律的待传输
列,以及待传输列中参数的分布规律。
可选地,DN向目标节点发送指示信息;其中,指示信息用于指示待传输
列对应的压缩算法,指示信息被目标节点用于对待传输数据进行解压以得到待
传输数据。由于DN向目标节点发送指示信息,因此提高了目标节点对接收到
的待传输数据进行解压的成功率。
可选地,待传输数据为数据表形式。如此,则可将数据按列传输出去,进
而可对按列传输的数据使用本发明实施例提供的方法对每一列具有分布规律
的待传输列进行压缩,提高了数据压缩的灵活性。
可选地,DN在确定出具有分布规律的待传输列中包括的每个参数的值的
长度不小于阈值时,DN根据待传输列的参数的数据类型,以及待传输列中参
数的分布规律,确定待传输列对应的压缩算法。如此,由于该列中的参数的值
已经很短,无需再次压缩,因此可不对该具有分布规律的待传输列进行压缩,
进而减少了处理流程,简化了数据传输过程。
可选地,具有分布规律的待传输列包括N个参数,N个参数中的至少两个
参数的值相等,N为大于1的整数。也就是说,该待传输列的分布规律为该列
包括的N个参数中的至少两个参数的值相等,如此,则可对该值相等的参数进
行压缩,从而减少节点之间数据传输量,从而降低网络负荷。
可选地,DN确定一个具有分布规律的待传输列,以及待传输列中参数的
分布规律,包括:
DN根据接收到的查询命令,查询出与查询命令中关键词匹配的待传输数
据;其中,查询命令中包括一个关键词;
DN确定出关键词在待传输数据中对应的列,并将该关键词对应的列作为
具有分布规律的待传输列;
DN根据待传输列的参数的数据类型,以及待传输列中参数的分布规律,
确定待传输列对应的压缩算法,具体包括:
DN在确定待传输列参数的数据类型为支持RLE压缩算法的数据类型,且
在确定待传输列的分布规律为待传输列的参数的值为关键词时,DN确定待传
输列对应的压缩算法为RLE压缩算法。
可选地,DN确定一个具有分布规律的待传输列,以及待传输列中参数的
分布规律,包括:
DN根据接收到的查询命令,查询出与查询命令中关键词匹配的待传输数
据;其中,查询命令中包括多个关键词;多个关键词对应于待传输数据的同一
列;
DN确定出关键词在待传输数据中对应的列,并将该多个关键词对应的列
作为具有分布规律的待传输列;
DN根据待传输列的参数的数据类型,以及待传输列中参数的分布规律,
确定待传输列对应的压缩算法,具体包括:
DN在确定待传输列参数的数据类型为支持字典压缩算法的数据类型,且
在确定待传输列的分布规律为待传输列的参数的值为多个关键词时,DN确定
待传输列对应的压缩算法为字典压缩算法。
可选地,DN确定一个具有分布规律的待传输列,以及待传输列中参数的
分布规律,包括:
DN根据接收到的查询命令,查询出与查询命令中关键词匹配的待传输数
据;其中,查询命令中包括至少一个关键词;至少一个关键词对应于待传输数
据的同一列;
DN确定出关键词在待传输数据中对应的列,并将该关键词对应的列作为
具有分布规律的待传输列;待传输列是N行待传输数据中的一列;
DN根据待传输列的参数的值,对待传输列对应的N行待传输数据以行为
单位进行排序;待传输列中的参数与待传输数据的行一一对应;
DN根据待传输列的参数的数据类型,以及待传输列中参数的分布规律,
确定待传输列对应的压缩算法,包括:
DN在确定待传输列参数的数据类型为支持RLE压缩算法的数据类型,且
在确定待传输列的分布规律为按待传输列的参数的值进行排序时,DN确定待
传输列对应的压缩算法为RLE压缩算法。
可选地,DN确定一个具有分布规律的待传输列,以及待传输列中参数的
分布规律,包括:
DN根据接收到的查询命令,查询出与查询命令中关键词匹配的待传输数
据;其中,查询命令中包括至少一个关键词;至少一个关键词对应于待传输数
据的同一列;
DN确定出的关键词在待传输数据中对应的列,并将该关键词对应的列作
为具有分布规律的待传输列;待传输列是N行待传输数据中的一列;
DN根据待传输列的参数的值,确定出将待传输列的参数中值相等的参数;
DN将确定出的值相等的多个参数对应的多行待传输数据排布在一起;待
传输列中的参数与待传输数据的行一一对应;
DN根据待传输列的参数的数据类型,以及待传输列中参数的分布规律,
确定至待传输列对应的压缩算法,包括:
DN在确定待传输列参数的数据类型为支持RLE压缩算法的数据类型,且
在确定待传输列的分布规律为将确定出的值相等的多个参数对应的多行待传
输数据排布在一起时,DN确定待传输列对应的压缩算法为RLE压缩算法。
基于相同构思,本发明实施例提供一种数据传输方法,包括以下步骤:
目标节点接收数据节点DN发送的压缩后的待传输列,其中,压缩后的的
待传输列为DN使用的待传输列对应的压缩算法进行压缩得到的;
目标节点确定的待传输列对应的压缩算法;
目标节点使用压缩算法对应解压算法对压缩后的待传输列进行解压,得到
待传输列。
本发明实施例中,由于DN根据待传输列的参数的数据类型,以及待传输
列中参数的分布规律确定待传输列对应的压缩算法所对应的压缩算法,从而可
尽可能的使用能达到较大压缩比的压缩算法来对待传输列进行压缩,提高了压
缩算法确定的灵活性。进一步由于DN使用确定出的压缩算法对待传输列进行
压缩,之后向目标节点发送压缩后的待传输列,因而传输压缩后的待传输数据,
降低了各个节点间数据传输的开销,减轻了网络负荷。
可选地,目标节点确定的待传输列对应的压缩算法,具体包括:
目标节点通过外部接口,获取用户输入的待传输列对应的压缩算法;或者
目标节点接收DN发送的用于指示待传输列对应的压缩算法指示信息,根
据指示信息确定出压缩算法。
基于相同构思,本发明实施例提供一种数据传输装置,包括:
确定单元,用于确定一个具有分布规律的待传输列,以及待传输列中参数
的分布规律;根据待传输列的参数的数据类型,以及待传输列中参数的分布规
律,确定待传输列对应的压缩算法;
压缩单元,用于使用压缩算法对所待传输列进行压缩;
传输单元,用于向目标节点发送压缩后的待传输列。
本发明实施例中,由于DN根据待传输列的参数的数据类型,以及待传输
列中参数的分布规律确定待传输列对应的压缩算法所对应的压缩算法,从而可
尽可能的使用能达到较大压缩比的压缩算法来对待传输列进行压缩,提高了压
缩算法确定的灵活性。进一步由于DN使用确定出的压缩算法对待传输列进行
压缩,之后向目标节点发送压缩后的待传输列,因而传输压缩后的待传输数据,
降低了各个节点间数据传输的开销,减轻了网络负荷。
可选地,传输单元,还用于:
向目标节点发送指示信息;
其中,指示信息用于指示待传输列对应的压缩算法,指示信息被目标节点
用于对待传输数据进行解压以得到待传输数据。
可选地,具有分布规律的待传输列包括N个参数,N个参数中的至少两个
参数的值相等,N为大于1的整数。
可选地,确定单元,具体用于:
根据接收到的查询命令,查询出与查询命令中关键词匹配的待传输数据;
其中,查询命令中包括一个关键词;
确定出关键词在待传输数据中对应的列,并将该关键词对应的列作为具有
分布规律的待传输列;
DN在确定待传输列参数的数据类型为支持RLE压缩算法的数据类型,且
在确定待传输列的分布规律为待传输列的参数的值为关键词时,DN确定待传
输列对应的压缩算法为RLE压缩算法。
可选地,确定单元,具体用于:
DN根据接收到的查询命令,查询出与查询命令中关键词匹配的待传输数
据;其中,查询命令中包括多个关键词;多个关键词对应于待传输数据的同一
列;
DN确定出关键词在待传输数据中对应的列,并将该多个关键词对应的列
作为具有分布规律的待传输列;
DN在确定待传输列参数的数据类型为支持字典压缩算法的数据类型,且
在确定待传输列的分布规律为待传输列的参数的值为多个关键词时,DN确定
待传输列对应的压缩算法为字典压缩算法。
可选地,确定单元,具体用于:
DN根据接收到的查询命令,查询出与查询命令中关键词匹配的待传输数
据;其中,查询命令中包括至少一个关键词;至少一个关键词对应于待传输数
据的同一列;
DN确定出关键词在待传输数据中对应的列,并将该关键词对应的列作为
具有分布规律的待传输列;待传输列是N行待传输数据中的一列;
DN根据待传输列的参数的值,对待传输列对应的N行待传输数据以行为
单位进行排序;待传输列中的参数与待传输数据的行一一对应;
DN在确定待传输列参数的数据类型为支持RLE压缩算法的数据类型,且
在确定待传输列的分布规律为按待传输列的参数的值进行排序时,DN确定待
传输列对应的压缩算法为RLE压缩算法。
可选地,确定单元,具体用于:
DN根据接收到的查询命令,查询出与查询命令中关键词匹配的待传输数
据;其中,查询命令中包括至少一个关键词;至少一个关键词对应于待传输数
据的同一列;
DN确定出的关键词在待传输数据中对应的列,并将该关键词对应的列作
为具有分布规律的待传输列;待传输列是N行待传输数据中的一列;
DN根据待传输列的参数的值,确定出将待传输列的参数中值相等的参数;
DN将确定出的值相等的多个参数对应的多行待传输数据排布在一起;待
传输列中的参数与待传输数据的行一一对应;
DN在确定待传输列参数的数据类型为支持RLE压缩算法的数据类型,且
在确定待传输列的分布规律为将确定出的值相等的多个参数对应的多行待传
输数据排布在一起时,DN确定待传输列对应的压缩算法为RLE压缩算法。
该套实施例中的相关描述参见上述方法流程中的描述,在此不再赘述。
基于相同构思,本发明实施例提供一种数据传输装置,包括:
传输单元,用于接收数据节点DN发送的压缩后的待传输列,其中,压缩
后的的待传输列为DN使用的待传输列对应的压缩算法进行压缩得到的;
确定单元,用于确定的待传输列对应的压缩算法;
解压单元,用于使用压缩算法对应解压算法对压缩后的待传输列进行解压,
得到待传输列。
可选地,确定单元,具体用于:
由于DN根据待传输列的参数的数据类型,以及待传输列中参数的分布规
律确定待传输列对应的压缩算法所对应的压缩算法,从而可尽可能的使用能达
到较大压缩比的压缩算法来对待传输列进行压缩,提高了压缩算法确定的灵活
性。进一步由于DN使用确定出的压缩算法对待传输列进行压缩,之后向目标
节点发送压缩后的待传输列,因而传输压缩后的待传输数据,降低了各个节点
间数据传输的开销,减轻了网络负荷。
通过外部接口,获取用户输入的待传输列对应的压缩算法;或者
接收DN发送的用于指示待传输列对应的压缩算法指示信息,根据指示信
息确定出压缩算法。
该套实施例中的相关描述参见上述方法流程中的描述,在此不再赘述。
基于相同构思,本发明实施例提供一种数据传输装置,包括:
处理器,用于确定一个具有分布规律的待传输列,以及待传输列中参数的
分布规律;根据待传输列的参数的数据类型,以及待传输列中参数的分布规律,
确定待传输列对应的压缩算法;使用压缩算法对所待传输列进行压缩;
收发器,用于在处理器的控制下向目标节点发送压缩后的待传输列。
由于DN根据待传输列的参数的数据类型,以及待传输列中参数的分布规
律确定待传输列对应的压缩算法所对应的压缩算法,从而可尽可能的使用能达
到较大压缩比的压缩算法来对待传输列进行压缩,提高了压缩算法确定的灵活
性。进一步由于DN使用确定出的压缩算法对待传输列进行压缩,之后向目标
节点发送压缩后的待传输列,因而传输压缩后的待传输数据,降低了各个节点
间数据传输的开销,减轻了网络负荷。
可选地,收发器,还用于:
向目标节点发送指示信息;
其中,指示信息用于指示待传输列对应的压缩算法,指示信息被目标节点
用于对待传输数据进行解压以得到待传输数据。
可选地,具有分布规律的待传输列包括N个参数,N个参数中的至少两个
参数的值相等,N为大于1的整数。
可选地,处理器,具体用于:
根据接收到的查询命令,查询出与查询命令中关键词匹配的待传输数据;
其中,查询命令中包括一个关键词;
确定出关键词在待传输数据中对应的列,并将该关键词对应的列作为具有
分布规律的待传输列;
DN在确定待传输列参数的数据类型为支持RLE压缩算法的数据类型,且
在确定待传输列的分布规律为待传输列的参数的值为关键词时,DN确定待传
输列对应的压缩算法为RLE压缩算法。
可选地,处理器,具体用于:
DN根据接收到的查询命令,查询出与查询命令中关键词匹配的待传输数
据;其中,查询命令中包括多个关键词;多个关键词对应于待传输数据的同一
列;
DN确定出关键词在待传输数据中对应的列,并将该多个关键词对应的列
作为具有分布规律的待传输列;
DN在确定待传输列参数的数据类型为支持字典压缩算法的数据类型,且
在确定待传输列的分布规律为待传输列的参数的值为多个关键词时,DN确定
待传输列对应的压缩算法为字典压缩算法。
可选地,处理器,具体用于:
DN根据接收到的查询命令,查询出与查询命令中关键词匹配的待传输数
据;其中,查询命令中包括至少一个关键词;至少一个关键词对应于待传输数
据的同一列;
DN确定出关键词在待传输数据中对应的列,并将该关键词对应的列作为
具有分布规律的待传输列;待传输列是N行待传输数据中的一列;
DN根据待传输列的参数的值,对待传输列对应的N行待传输数据以行为
单位进行排序;待传输列中的参数与待传输数据的行一一对应;
DN在确定待传输列参数的数据类型为支持RLE压缩算法的数据类型,且
在确定待传输列的分布规律为按待传输列的参数的值进行排序时,DN确定待
传输列对应的压缩算法为RLE压缩算法。
可选地,处理器,具体用于:
DN根据接收到的查询命令,查询出与查询命令中关键词匹配的待传输数
据;其中,查询命令中包括至少一个关键词;至少一个关键词对应于待传输数
据的同一列;
DN确定出的关键词在待传输数据中对应的列,并将该关键词对应的列作
为具有分布规律的待传输列;待传输列是N行待传输数据中的一列;
DN根据待传输列的参数的值,确定出将待传输列的参数中值相等的参数;
DN将确定出的值相等的多个参数对应的多行待传输数据排布在一起;待
传输列中的参数与待传输数据的行一一对应;
DN在确定待传输列参数的数据类型为支持RLE压缩算法的数据类型,且
在确定待传输列的分布规律为将确定出的值相等的多个参数对应的多行待传
输数据排布在一起时,DN确定待传输列对应的压缩算法为RLE压缩算法。
该套实施例中的相关描述参见上述方法流程中的描述,在此不再赘述。
基于相同构思,本发明实施例提供一种数据传输装置,包括:
收发器,用于接收数据节点DN发送的压缩后的待传输列,其中,压缩后
的的待传输列为DN使用的待传输列对应的压缩算法进行压缩得到的;
处理器,用于确定的待传输列对应的压缩算法;使用压缩算法对应解压算
法对压缩后的待传输列进行解压,得到待传输列。
由于DN根据待传输列的参数的数据类型,以及待传输列中参数的分布规
律确定待传输列对应的压缩算法所对应的压缩算法,从而可尽可能的使用能达
到较大压缩比的压缩算法来对待传输列进行压缩,提高了压缩算法确定的灵活
性。进一步由于DN使用确定出的压缩算法对待传输列进行压缩,之后向目标
节点发送压缩后的待传输列,因而传输压缩后的待传输数据,降低了各个节点
间数据传输的开销,减轻了网络负荷。
可选地,处理器,具体用于:
通过外部接口,获取用户输入的待传输列对应的压缩算法;或者
接收DN发送的用于指示待传输列对应的压缩算法指示信息,根据指示信
息确定出压缩算法。
该套实施例中的相关描述参见上述方法流程中的描述,在此不再赘述。
本发明实施例中,DN确定一个具有分布规律的待传输列,以及待传输列
中参数的分布规律;DN根据待传输列的参数的数据类型,以及待传输列中参
数的分布规律,确定待传输列对应的压缩算法;DN使用压缩算法对所待传输
列进行压缩;DN向目标节点发送压缩后的待传输列。由于DN根据待传输列
的参数的数据类型,以及待传输列中参数的分布规律确定待传输列对应的压缩
算法所对应的压缩算法,从而可尽可能的使用能达到较大压缩比的压缩算法来
对待传输列进行压缩,提高了压缩算法确定的灵活性。进一步由于DN使用确
定出的压缩算法对待传输列进行压缩,之后向目标节点发送压缩后的待传输列,
因而传输压缩后的待传输数据,降低了各个节点间数据传输的开销,减轻了网
络负荷。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所
需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的
一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,
还可以根据这些附图获得其他的附图。
图1为本发明实施例适用的一种数据传输方法的系统架构示意图;
图2为本发明实施例提供的一种数据传输方法流程示意图;
图3为本发明实施例提供的另一种数据传输方法流程示意图;
图4为本发明实施例提供的一种数据传输装置的结构示意图;
图5为本发明实施例提供的另一种数据传输装置的结构示意图;
图6为本发明实施例提供的另一种数据传输装置的结构示意图;
图7为本发明实施例提供的另一种数据传输装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及有益效果更加清楚明白,以下结合附图
及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施
例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例提供的数据传输方法适用于分布式数据库系统。可选地,本
发明实施例可适用于分布式数据库系统的多种架构,比如share-nothing架构、
share-all架构、share-disk架构等等,尤其适用于share-nothing架构。
如图1所示,本发明实施例适用的分布式数据库系统架构示意图。该系统
架构中包括一个或多个CN102,每个CN连接一个或多个DN101,每个DN101
是分布式数据库的存储节点。CN与网络设备103连接。网络设备103用于安
装一些应用程序,用户可通过网络设备103发送查询命令,也可发送常规的数
据管理指令,以便通过CN获取各个DN上储存的数据,或者,通过CN对各
个DN上存储的数据进行管理。
可选地,为了与现有技术更好的兼容,本发明实施例中也提供一个全局压
缩传输开启开关,当使用本发明实施例中提供的方法时,开启此开关,当不使
用本发明实施例提供的方法,而是使用现有技术传输数据时,则关闭此开关。
本发明实施例中,CN将接收到查询命令,查询命令中包括一个或多个关
键词,当查询命令中包括多个关键词时,本发明实施例中以查询待传输数据中
的同一列中的多个关键词为例进行介绍,以多个关键词对应的列作为具有分布
规律的待传输列,并确定该待传输列对应的压缩算法,并使用该压缩算法对该
待传输列进行压缩并传输。另一方面,当查询命令中包括的多个关键词对应待
传输数据的不同列时,可将多个关键词对应的不同列中的每一列均确定为具有
分布规律的待传输列,并分别确定每个待传输列中参数的的分布规律,进而确
定每个待传输列对应的压缩算法,并使用每个待传输列对应的压缩算法进行压
缩并传输。本发明实施例中针对每个待传输列的处理方法与下述内容类似,在
此不再赘述。
本发明实施例中适用的待传输数据可以以数据表的形式存在。下面举一个
具体例子用以描述本发明实施例中的待传输数据的形式。DN中存储的某个数
据表包括10行数据,每行数据包括6列,假设该6列中存在一列为年龄,该
10行数据中有8行数据中的第6列的参数的值为12,另外两行数据中的第6
列的参数的值为11,此时查询命令中包括的关键词为查询年龄为12岁的所有
数据,则从该数据表中查询出在第6列的参数中值等于12的所有数据,也就
是说,从该10行数据中查询得到第6列的值为12的上述8行数据。本发明实
施例中涉及到依据待传输列对待传输数据进行排序或排布时,具体是指,根据
该待传输列的参数的值,对该待传输列的参数对应的每一行数据进行排序或排
布。
基于图1所示的系统架构,图2示出了本发明实施例提供的一种数据传输
方法,包括以下步骤:
步骤201,DN确定一个具有分布规律的待传输列,以及待传输列中参数
的分布规律;
步骤202,DN根据待传输列的参数的数据类型,以及待传输列中参数的
分布规律,确定待传输列对应的压缩算法;本发明实施例中的压缩算法有多种,
比如,无损压缩(Run-Length Encoding,简称RLE)算法、字典算法、LZ4算
法、Zlib算法;
步骤203,DN使用压缩算法对所待传输列进行压缩;DN向目标节点发送
压缩后的待传输列;可选地,目标节点为DN或CN。如此,DN与DN之间传
输数据,或者DN与CN之间传输数据时均可传输压缩后的待传输数据,降低
了各个节点间数据传输的开销,减轻了网络负荷。
DN向目标节点发送压缩后的待传输列之后,目标节点接收DN发送的压
缩后的待传输列,确定待传输列对应的解压算法,使用解压算法对压缩后的待
传输列进行解压,得到待传输数据。其中,压缩后的待传输列为DN使用待传
输列对应的压缩算法进行压缩得到的。
上述步骤201之前,CN收到用户发送的查询命令,查询命令为数据库SQL
语句。查询命令中包括关键词。CN对SQL语句的查询命令进行分析,确定出
待传输数据所存储的DN,并将查询命令发送给DN,此时,若CN确定出待传
输数据存储于一个DN,则CN将数查询命令发送给一个DN,若CN确定出待
传输数据存储于多个DN,则CN将查询命令发送给该多个DN。针对接收到查
询命令的多个DN中的每个DN,该DN根据查询命令中包括的关键词,查询
出待传输数据。
上述步骤201中,可选地,DN根据查询命令中的关键词,确定一个具有
分布规律的待传输列,以及待传输列中参数的分布规律。
上述步骤202中,待传输列的参数的数据类型可为多种,比如整型(Integer)、
长整型(Long)、单精度浮点型(Single)、双精度浮点型(Double)和货币型
(Currency)等等。不同的数据类型支持不同的压缩算法,比如该待传输列的
参数的数据类型为整型时,该待传输列的参数可支持RLE压缩算法和字典压
缩算法,此时可进一步根据待传输列中参数的分布规律,确定待传输列对应的
压缩算法。
一种可选地实施方式为,DN确定出待传输列的参数的数据类型可支持的
压缩算法有多种,此时根据待传输列中参数的分布规律,为待传输列的参数的
数据类型可支持的压缩算法中的每种压缩算法确定权重,并将权重值最大的压
缩算法确定为待传输列对应的压缩算法。
上述步骤202中,DN根据待传输列的参数的数据类型,以及待传输列中
参数的分布规律,确定待传输列对应的压缩算法。另一种可选地实施方式为,
DN在确定出具有分布规律的待传输列中包括的每个参数的值的长度不小于阈
值时,DN根据待传输列的参数的数据类型,以及待传输列中参数的分布规律,
确定待传输列对应的压缩算法;而DN在确定出具有分布规律的待传输列中包
括的每个参数的值的长度小于阈值时,确定不对该具有分布规律的待传输列进
行压缩。
本发明实施例中的阈值用于对应限定待传输列中的一个参数的值的长度。
举个例子,确定出具有分布规律的待传输列的参数的数据类型为整型(int),
该具有分布规律的待传输列包括的所有参数中每个参数的值的长度为1,则此
时,由于该列中的参数的值已经很短,无需再次压缩,因此可不对该具有分布
规律的待传输列进行压缩。
上述步骤202中,DN根据待传输列的参数的数据类型,以及待传输列中
参数的分布规律,确定待传输列对应的压缩算法。另一种可能的实施方式为,
DN通过外部接口,获取用户输入的待传输列对应的压缩算法。具体来说,用
户输入查询命令,根据查询命令可知道该待传输数据的具有分布规律的待传输
列,因此,用户自己直接根据待传输列的参数的数据类型,以及待传输列中参
数的分布规律,确定待传输列对应的压缩算法。可选地,用户输入压缩算法所
使用的外部接口可连接CN,CN获取用户输入的待传输列对应的压缩算法之后,
CN将待传输列对应的压缩算法发送给各个DN。或者,该外部接口连接DN,
DN直接通过该外部接口获取用户输入的待传输列对应的压缩算法。可选地,
DN或CN中预设多个压缩算法,用户从预设的多个压缩算法中选择一个,用
户通过外部接口输入的待传输列对应的压缩算法的程序语句如下:
Select c1[ColCompressMode],c2[ColCompressMode]…FROM…
其中,ColCompressMode包括RLE压缩算法、Delta压缩算法、LZ4压缩
算法、Zlib压缩算法、字典压缩(Dictionary compress)算法等。可选地,
ColCompressMode还可包括“不使用压缩算法”。也就是说,用户确定待传输
列不需要进行压缩,此时,用户可通过外部接口输入待传输列对应的压缩算法
为“不使用压缩算法”,此时,DN将不对待传输列使用任何压缩算法进行压缩。
上述步骤203中,可选地,DN向目标节点发送指示信息;其中,指示信
息用于指示待传输列对应的压缩算法,指示信息被目标节点用于对待传输数据
进行解压以得到待传输数据。如此,则当DN根据待传输列的参数的数据类型,
以及待传输列中参数的分布规律,动态确定出待传输列对应的压缩算法时,目
标节点可根据指示信息对接收到的待传输数据进行解压以得到待传输数据。另
一方面由于DN向目标节点发送指示信息,因此提高了目标节点对接收到的待
传输数据进行解压的成功率。
可选地,可将指示信息和压缩后的待传输数据通过一条指令一起发送给目
标节点,或者将指示信息和压缩后的待传输数据通过两条指令分别发送给目标
节点,本发明实施例对指示信息和压缩后的待传输数据的发送顺序不做限定。
相应地,上述步骤203之后,目标节点确定待传输列对应的压缩算法,具
体包括多种方式,比如,目标节点通过外部接口,获取用户输入的待传输列对
应的压缩算法;或者目标节点接收DN发送的用于指示压缩算法的指示信息,
根据指示信息确定出压缩算法。
另一种可能的实现方式为,目标节点根据查询命令确定一个具有分布规律
的待传输列,以及待传输列中参数的分布规律,并根据待传输列的参数的数据
类型,以及待传输列中参数的分布规律,确定待传输列对应的压缩算法,进而
对接收到的压缩后的待传输列进行解压。如此,可减少节点之间数据传输量,
降低网络负荷。
本发明实施例中,可选地,具有分布规律的待传输列包括N个参数,N个
参数中的至少两个参数的值相等,N为大于1的整数。也就是说,该待传输列
的分布规律为该列包括的N个参数中的至少两个参数的值相等,如此,则可对
该值相等的参数进行压缩,从而减少节点之间数据传输量,从而降低网络负荷。
另一种优选地实施方式中,具有分布规律的列包括N个参数,在N个参
数中存在至少两个参数的值相同,且该值相同的参数的位置相邻。
具体实施中,如果多个DN之间的数据有关联,通常为多个DN之间的数
据有连接(join)运算,比如,查询命令中带排序归集等,则各个DN所返回
的数据已经进行了排序或归集等操作,CN对多个DN返回的已经进行了排序
或归集的数据进行合并,并再次进行综合排序或综合归集操作,之后,将最终
得到的处理后的数据返回至网络设备,以使用户查看使用。其中,归集具体是
指对数据进行分类,比如,将数值相同的数据归放在一起。基于该具体的应用
场景,下面详细介绍几种针对上述步骤201和步骤202的可选的实施方式。
示例a1
上述步骤201和步骤202中,DN根据接收到的查询命令,查询出与查询
命令中关键词匹配的待传输数据;其中,查询命令中包括一个关键词;DN确
定出关键词在待传输数据中对应的列,并将该关键词对应的列作为具有分布规
律的待传输列。
相应地,DN在确定待传输列参数的数据类型为支持RLE压缩算法的数据
类型,且在确定待传输列的分布规律为待传输列的参数的值为关键词时,DN
确定待传输列对应的压缩算法为RLE压缩算法。
下面举个具体例子,比如,查询命令为:从第一小学13届学生个人信息
表中筛选出第2列“班级”中参数的值为“甲”的所有学生的个人信息。查询
命令中包括一个关键词“甲”。则对应的具有分布规律的待传输列即为第2列,
待传输列的分布规律为待传输列的参数的值为关键词,即待传输列的分布规律
为第2列的所有参数的值均为“甲”,且第2列为整型,支持RLE压缩算法,
因此DN确定待传输列对应的压缩算法为RLE压缩算法。
比如,从第一小学13届学生个人信息表中筛选出第2列“班级”中数据
为甲的所有学生的个人信息,共有六行数据,则DN在未对具有分布规律的待
传输列进行压缩时,需要依次传输甲、甲、甲、甲、甲、甲六个值,但若是使
用RLE压缩算法对具有分布规律的待传输列进行压缩,则仅需要传输压缩后
的第2列数据,压缩后的第2列数据为“甲6”,意思为,6个甲。
用户可根据具体的查询命令编写查询命令。举个例子,比如从数据表“t2”
的“optype”列和“date”列中筛选数据的值为“2015030”的所有数据,查询
命令的语句可以写为:
select optype,date from t2where date=“2015030”。
示例a2
上述步骤201和步骤202中,DN根据接收到的查询命令,查询出与查询
命令中关键词匹配的待传输数据;其中,查询命令中包括多个关键词;多个关
键词对应于待传输数据的同一列;DN确定出关键词在待传输数据中对应的列,
并将该多个关键词对应的列作为具有分布规律的待传输列。
相应地,DN在确定待传输列参数的数据类型为支持字典压缩算法的数据
类型,且在确定待传输列的分布规律为待传输列的参数的值为多个关键词时,
DN确定待传输列对应的压缩算法为字典压缩算法。
举个例子,查询命令为:从第一小学13届学生个人信息表中筛选出第3
列“年龄”的数据的值为“11”或“12”的学生信息,查询出的待传输数据的
示例如表1所示。该示例中,查询命令中包括多个关键词为“11”和“12”。
多个关键词对应于待传输数据的同一列,即“11”和“12”均为第3列“年龄”
中的参数的值。具有分布规律的待传输列即为第3列,待传输列的分布规律为
待传输列的参数的值为多个关键词,即第3列的所有参数的值均为“11”或“12”。
姓名
班级
年龄
电话
李小一
甲
12
12311111111
李小二
甲
11
12322222222
李小三
甲
12
12333333333
李小五
甲
11
12355555555
李小六
甲
12
12322222222
李小七
乙
12
12335642568
表1从第一小学13届学生个人信息表中筛选出第3列“年龄”的数据的
值为“11”或“12”的学生信息
DN在未对表1中的第3列进行压缩时,需要依次传输12、11、12、11、
12、12几个数据,但若是使用字典压缩算法对第3列压缩,用“0”代替“11”,
用“1”代替“12”,则仅需要传输压缩后的第3列数据,为:101011。可见,
使用字典压缩算法,将原来需要传输的数据的长度大大缩短,如此,则可减轻
网络负荷。
用户可根据具体的查询命令编写查询命令。举个例子,比如,从数据表“t1”
的“optype”列和“date”列中查询数据的值为“20150730”、“20150729”或
“20150715”的数据。可见,原始数据较长,此时,使用字典压缩算法,使用
用“0”代替“20150730”,用“1”代替“20150730”,用“2”代替“20150715”,
则查询命令的语句可以写为:
select optype,date from t1where date=‘20150730’or date=‘20150729’or
date=‘20150715’;
字典压缩:
‘20150730’->0
‘20150729’->1
‘20150715’->2
举个例子,比如,从数据表“t1”的“optype”列中查询数据的值为“insert”、
“update”或“delete”的数据。可见,原始数据较长,此时,使用字典压缩算
法,使用用“0”代替“insert”,用“1”代替“update”,用“2”代替“delete”,
则查询命令的语句可以写为:
select*from t1where optype in(‘insert’,‘update’,‘delete’);
字典压缩:
‘insert’->0
‘update’->1
‘delete’->2
本发明实施例中,当多个关键词对应多个列时,可针对每个具有分布规律
的列执行上述步骤201至203的方法步骤,比如,查询第3列年龄为“11”或
“12”,且第2列班级为“甲”或“乙”的学生个人信息,此时,可针对第2
列确定第2列对应的压缩算法,针对第3列确定第3列对应的压缩算法。本发
明实施例中以一列具有分布规律的待传输列为例进行介绍。
示例a3
上述步骤201和步骤202中,DN根据接收到的查询命令,查询出与查询
命令中关键词匹配的待传输数据;其中,查询命令中包括至少一个关键词;至
少一个关键词对应于待传输数据的同一列;DN确定出关键词在待传输数据中
对应的列,并将该关键词对应的列作为具有分布规律的待传输列;待传输列是
N行待传输数据中的一列;DN根据待传输列的参数的值,对待传输列对应的
N行待传输数据以行为单位进行排序;待传输列中的参数与待传输数据的行一
一对应。
相应地,DN在确定待传输列参数的数据类型为支持RLE压缩算法的数据
类型,且在确定待传输列的分布规律为按待传输列的参数的值进行排序时,DN
确定待传输列对应的压缩算法为RLE压缩算法。
举个例子,查询命令为:查询出第一小学13届学生个人信息表中第3列
年龄为“11”、“12”或“13”的数据,并根据第一小学13届学生个人信息表
的第3列“年龄”的参数的值大小,按由小到大的顺序对待传输数据进行排序。
则该示例中,查询命令中包括至少一个关键词“11”、“12”和“13”,至少一
个关键词对应于待传输数据的第3列;待传输列中的参数与待传输数据的行一
一对应,具体是指,第3列中每个参数对应一行数据。DN根据待传输列的参
数的值,对待传输列对应的N行待传输数据以行为单位进行排序,具体是指,
根据第3列中的年龄的大小,对查询出的多行数据以行为单位进行排序。DN
在确定待传输列参数的数据类型为整型,即为支持RLE压缩算法的数据类型;
待传输列的分布规律为按待传输列的参数的值进行排序,具体是指第3列中的
分布规律为按第3列的数值大小进行排序,确定第3列对应的压缩算法为RLE
压缩算法。
查询出第一小学13届学生个人信息表中第3列年龄为“11”、“12”或“13”
的待传输数据如表2所示。
姓名
班级
年龄
电话
李小一
甲
12
12311111111
李小二
甲
11
12322222222
李小三
甲
12
12333333333
李小四
甲
13
12344444444
李小五
甲
11
12355555555
李小六
甲
12
12322222222
表2第一小学13届学生个人信息表中筛选出班级甲的所有学生的个人信
息
根据第一小学13届学生个人信息表的第3列“年龄”的数据的值大小对
筛选出的数据进行排序,排序后如表3所示。
姓名
班级
年龄
电话
李小二
甲
11
12322222222
李小五
甲
11
12355555555
李小一
甲
12
12311111111
李小三
甲
12
12333333333
李小六
甲
12
12322222222
李小四
甲
13
12344444444
表3根据表2中第3列“年龄”的数据的值由小到大进行排序后数据
上述表3中,根据筛选出的数据的第3列的数据的值进行排序。也就是说,
使用有序(order by)的查询计划类型查询符合第一条件的所有数据。其中,
order by即为对符合第一条件的所有数据进行排序的意思。
DN在未对表3中的第3列进行压缩时,需要依次传输11、11、12、12、
12、13几个数据,但若是使用RLE压缩算法对第3列压缩,则仅需要传输压
缩后的第3列数据,为:112123131,意思为,2个11、3个12、1个13。
示例a4
上述步骤201和步骤202中,DN根据接收到的查询命令,查询出与查询
命令中关键词匹配的待传输数据;其中,查询命令中包括至少一个关键词;至
少一个关键词对应于待传输数据的同一列;DN确定出的关键词在待传输数据
中对应的列,并将该关键词对应的列作为具有分布规律的待传输列;待传输列
是N行待传输数据中的一列;DN根据待传输列的参数的值,确定出将待传输
列的参数中值相等的参数;DN将确定出的值相等的多个参数对应的多行待传
输数据排布在一起;待传输列中的参数与待传输数据的行一一对应。
相应地,DN在确定待传输列参数的数据类型为支持RLE压缩算法的数据
类型,且在确定待传输列的分布规律为将确定出的值相等的多个参数对应的多
行待传输数据排布在一起时,DN确定待传输列对应的压缩算法为RLE压缩算
法。
举个例子,查询命令为:查询出第一小学13届学生个人信息表中第3列
年龄为“11”、“12”或“13”的待传输数据,并根据第一小学13届学生个人
信息表的第3列“年龄”的数据的值进行归集,即将第3列的数据的值相同的
数据排列在一起。该示例中,查询命令中包括多个关键词“11”、“12”和“13”;
至少一个关键词对应于待传输数据的第3列;第3列的分布规律为第3列中参
数的值相等的多行待传输数据排布在一起;第3列的数据类型支持RLE压缩
算法。则DN确定待传输列对应的压缩算法为RLE压缩算法。
查询出第一小学13届学生个人信息表中第3列年龄为“11”、“12”或“13”
的待传输数据如表2所示。根据第一小学13届学生个人信息表的第3列“年
龄”的数据的值进行归集,将第3列的数据的值相同的数据排列在一起,得到
数据如表4所示。
姓名
班级
年龄
电话
李小一
甲
12
12311111111
李小三
甲
12
12333333333
李小六
甲
12
12322222222
李小二
甲
11
12322222222
李小五
甲
11
12355555555
李小四
甲
13
12344444444
表4根据表2中第3列“年龄”的数据的值进行归集,将第3列的数据的
值相同的数据排列在一起
上述表4中,第一小学13届学生个人信息表的第3列“年龄”的参数的
值进行归集,将第3列的数据的值相同的多行待传输数据排布在一起。也就是
说,使用聚合(group by)的查询计划类型查询数据。其中,group by即为对
所有带传输数据进行归集的意思。
DN在未对表4中的第3列进行压缩时,需要依次传输12、12、12、11、
11、13几个数据,但若是使用RLE压缩算法对第3列压缩,则仅需要传输压
缩后的第3列数据,为:123112131,意思为,3个12、2个11、1个13。
上述步骤203中,DN向目标节点发送压缩后的待传输数据,具体包括:
DN确定压缩后的待传输数据中的每一列数据,DN向目标节点分别发送
压缩后的待传输数据中的每一列数据。由于本发明实施例中,DN可针对每一
列单独设置该列对应的压缩算法,因此,DN分别向目标节点发送每一列的数
据时,目标节点可分别接收每一列的数据,并对进行压缩的列,结合该列对应
的压缩算法对该列进行解压。如此,可应用本发明实施例提供的方法,对每一
列具有分布规律的待传输列分别进行压缩,提高了对待传输数据压缩的灵活性,
进一步降低了系统的网络负荷。
基于上述论述,本发明实施例中提供以下一个示例用于说明目标节点为
DN和目标节点为CN的具体应用场景。
下述例子中的“第一DN”、“第二DN”、“第一待传输数据”、“第二待传
输数据”、“第三待传输数据”、“第四待传输数据”、“第一压缩算法”、“第二压
缩算法”、“第三压缩算法”、“第四压缩算法”中的“第一”“第二”“第三”“第
四”仅仅为了区别,并不具有限定意义。
用户发送查询命令“查询某几个班主任对应的班级的学生信息表”。用户
将该查询命令的结构化查询语句(Structured Query Language,简称SQL)语句
通过上层应用发送给CN。
其中,该示例中包括两种类型的表,分别为“班级信息表”和“学生信息
表”,班级信息表中包括班级名称和该班级的班主任的姓名。学生信息表中包
括学生名称,学生年龄,学生学号,学生所在的班级名称,但是学生信息表中
没有班主任的姓名。在分布式数据库系统中,“班级信息表”分为两个不同的
部分,分别存储于第一DN和第二DN中,比如,一班至五班的班级信息表存
储于第一DN的“班级信息表”中,五班至十班的班级信息表存储于第二DN
的“班级信息表”中。“学生信息表”可分为两个不同的部分,分别存储于第
一DN和第二DN中,比如,全校一班至十班共1000名学生,第一DN中存
储有学号为双号的所有学生的学生信息,第二DN中存储有学号为单号的所有
学生的学生信息。
CN对查询命令进行分析,确定出第一DN和第二DN中存储有“学生信
息表”以及“班级信息表”,CN将查询命令发送给第一DN和第二DN。由于
第一DN和第二DN中均存储了部分的“班级信息表”,且仅仅“班级信息表”
中包含班主任信息,而“学生信息表”中不包括班主任信息,因此,各个DN
需要查询各个“班主任对应的班级的学生信息表”时,DN需要先根据“班级
信息表”确定出班主任对应的班级名称,之后根据班级名称从“学生信息表”
中确定出该班级名称对应的所有学生信息。因此,第一DN和第二DN需要先
将各自所存储的“班级信息表”分别进行广播,进而使各个DN接收到其它
DN所广播的“班级信息表”,如此,每个DN上均存储了包括所有班级名称和
班级的班主任名称的“班级信息表”,即第一DN和第二DN中各自存储的“班
级信息表”中均包括一班至十班的班级信息。第一DN和第二DN将接收到的
被广播的“班级信息表”分别与自身存储的“学生信息表”进行连接,从而使
第一DN和第二DN中的每一个DN均能根据完整的“班级信息表”中的班主
任信息可确定出对应的班级名称,进而根据确定出的班级名称从“学生信息表”
中确定出班级名称对应的所有学生。具体来说,步骤如下:
第一DN收到CN发送的查询命令,第一DN确定出第一待传输数据“第
一DN存储的班级信息表”,第一DN确定出“第一DN存储的班级信息表”
对应的第一压缩算法,第一DN使用第一压缩算法对第一待传输数据进行压缩,
并将压缩后的第一待传输数据发送给第二DN,第一DN还向第二DN发送用
于指示出第一压缩算法的指示信息。
第二DN收到CN发送的查询命令,第二DN确定出第二待传输数据“第
二DN存储的班级信息表”,第二DN确定出“第二DN存储的班级信息表”
对应的第二压缩算法,第二DN使用第二压缩算法对第二待传输数据进行压缩,
并将压缩后的第二待传输数据发送给第一DN。第二DN还向第一DN发送用
于指示出第二压缩算法的指示信息。
第一DN接收到第二DN发送的第二待传输数据“第二DN存储的班级信
息表”,以及指示出第二压缩算法的指示信息,第一DN使用第二压缩算法对
第二待传输数据进行解压,得到解压后的第二待传输数据。之后,第一DN将
接收到的“第二DN存储的班级信息表”与第一DN存储的“学生信息表”进
行连接。第一DN根据当前第一DN所存储的“班级信息表”确定出需要查询
的班主任名称对应的班级名称,进而根据班级名称确定出第三待传输数据“第
一DN存储的班级名称对应的的学生信息”,第一DN确定出“第一DN存储
的班级名称对应的的学生信息”对应的第三压缩算法,第一DN使用第三压缩
算法对第三待传输数据进行压缩,并将压缩后的第三待传输数据发送给CN,
第一DN将用于指示第三压缩算法的指示信息发送给CN。
第二DN接收到第一DN发送的第一待传输数据“第一DN存储的班级信
息表”,以及指示出第一压缩算法的指示信息,第二DN使用第一压缩算法对
第一待传输数据进行解压,得到解压后的第一待传输数据。之后,第二DN将
接收到的“第一DN存储的班级信息表”与第二DN存储的“学生信息表”进
行连接。第二DN根据当前第二DN所存储的“班级信息表”确定出需要查询
的班主任名称对应的班级名称,进而根据班级名称确定出第四待传输数据“第
二DN存储的班级名称对应的学生信息”,第二DN确定出“第二DN存储的
班级名称对应的学生信息”对应的第四压缩算法,第二DN使用第四压缩算法
对第四待传输数据进行压缩,并将压缩后的第四待传输数据发送给CN,第二
DN将用于指示第四压缩算法的指示信息发送给CN。
CN针对接收到的信息,使用第三压缩算法对压缩后的第三待传输数据进
行解压,使用第四压缩算法对压缩后的第四待传输数据进行解压,得到查询命
令中要求的“查询某几个班主任对应的班级的学生信息表”,CN将其返回给上
层应用,以使用户得到该数据。
从上述内容可以看出:本发明实施例中,DN确定一个具有分布规律的待
传输列,以及待传输列中参数的分布规律;DN根据待传输列的参数的数据类
型,以及待传输列中参数的分布规律,确定待传输列对应的压缩算法;DN使
用压缩算法对所待传输列进行压缩;DN向目标节点发送压缩后的待传输列。
由于DN根据待传输列的参数的数据类型,以及待传输列中参数的分布规律确
定待传输列对应的压缩算法所对应的压缩算法,从而可尽可能的使用能达到较
大压缩比的压缩算法来对待传输列进行压缩,提高了压缩算法确定的灵活性。
进一步由于DN使用确定出的压缩算法对待传输列进行压缩,之后向目标节点
发送压缩后的待传输列,因而传输压缩后的待传输数据,降低了各个节点间数
据传输的开销,减轻了网络负荷。
图3示例性示出了本发明实施例提供的一种数据传输方法的流程示意图。
基于相同构思,本发明实施例提供一种数据传输方法,包括以下步骤:
步骤301,目标节点接收数据节点DN发送的压缩后的待传输列,其中,
压缩后的的待传输列为DN使用的待传输列对应的压缩算法进行压缩得到的;
步骤302,目标节点确定的待传输列对应的压缩算法;
步骤303,目标节点使用压缩算法对应解压算法对压缩后的待传输列进行
解压,得到待传输列。
可选地,目标节点确定的待传输列对应的压缩算法,具体包括:
目标节点通过外部接口,获取用户输入的待传输列对应的压缩算法;或者
目标节点接收DN发送的用于指示待传输列对应的压缩算法指示信息,根
据指示信息确定出压缩算法。
可选地,目标节点为DN或协调节点CN。
从上述内容可以看出:由于DN使用确定出的压缩算法对待传输数据进行
压缩,向目标节点发送压缩后的待传输数据,且又由于压缩后的待传输数据的
比压缩前的待传输数据小,因而传输压缩后的待传输数据,降低了各个节点间
数据传输的开销,减轻了网络负荷。进一步由于DN确定至少一个待传输列对
应的压缩算法,也就是说DN可动态的确定待传输数据所对应的压缩算法,从
而可尽可能的使用能达到较大压缩比的压缩算法来对待传输数据进行压缩,提
高了压缩算法确定的灵活性,进一步降低了各个节点间数据传输的开销,减轻
了网络负荷。
图4示例性示出了本发明实施例提供的一种数据传输装置的结构示意图。
基于相同构思,本发明实施例提供一种数据传输装置400,用于执行上述
方法流程,包括确定单元401、压缩单元402、传输单元403:
确定单元,用于确定一个具有分布规律的待传输列,以及待传输列中参数
的分布规律;根据待传输列的参数的数据类型,以及待传输列中参数的分布规
律,确定待传输列对应的压缩算法;
压缩单元,用于使用压缩算法对所待传输列进行压缩;
传输单元,用于向目标节点发送压缩后的待传输列。
可选地,传输单元,还用于:
向目标节点发送指示信息;
其中,指示信息用于指示待传输列对应的压缩算法,指示信息被目标节点
用于对待传输数据进行解压以得到待传输数据。
可选地,具有分布规律的待传输列包括N个参数,N个参数中的至少两个
参数的值相等,N为大于1的整数。
可选地,确定单元,具体用于:
根据接收到的查询命令,查询出与查询命令中关键词匹配的待传输数据;
其中,查询命令中包括一个关键词;
确定出关键词在待传输数据中对应的列,并将该关键词对应的列作为具有
分布规律的待传输列;
DN在确定待传输列参数的数据类型为支持RLE压缩算法的数据类型,且
在确定待传输列的分布规律为待传输列的参数的值为关键词时,DN确定待传
输列对应的压缩算法为RLE压缩算法。
可选地,确定单元,具体用于:
DN根据接收到的查询命令,查询出与查询命令中关键词匹配的待传输数
据;其中,查询命令中包括多个关键词;多个关键词对应于待传输数据的同一
列;
DN确定出关键词在待传输数据中对应的列,并将该多个关键词对应的列
作为具有分布规律的待传输列;
DN在确定待传输列参数的数据类型为支持字典压缩算法的数据类型,且
在确定待传输列的分布规律为待传输列的参数的值为多个关键词时,DN确定
待传输列对应的压缩算法为字典压缩算法。
可选地,确定单元,具体用于:
DN根据接收到的查询命令,查询出与查询命令中关键词匹配的待传输数
据;其中,查询命令中包括至少一个关键词;至少一个关键词对应于待传输数
据的同一列;
DN确定出关键词在待传输数据中对应的列,并将该关键词对应的列作为
具有分布规律的待传输列;待传输列是N行待传输数据中的一列;
DN根据待传输列的参数的值,对待传输列对应的N行待传输数据以行为
单位进行排序;待传输列中的参数与待传输数据的行一一对应;
DN在确定待传输列参数的数据类型为支持RLE压缩算法的数据类型,且
在确定待传输列的分布规律为按待传输列的参数的值进行排序时,DN确定待
传输列对应的压缩算法为RLE压缩算法。
可选地,确定单元,具体用于:
DN根据接收到的查询命令,查询出与查询命令中关键词匹配的待传输数
据;其中,查询命令中包括至少一个关键词;至少一个关键词对应于待传输数
据的同一列;
DN确定出的关键词在待传输数据中对应的列,并将该关键词对应的列作
为具有分布规律的待传输列;待传输列是N行待传输数据中的一列;
DN根据待传输列的参数的值,确定出将待传输列的参数中值相等的参数;
DN将确定出的值相等的多个参数对应的多行待传输数据排布在一起;待
传输列中的参数与待传输数据的行一一对应;
DN在确定待传输列参数的数据类型为支持RLE压缩算法的数据类型,且
在确定待传输列的分布规律为将确定出的值相等的多个参数对应的多行待传
输数据排布在一起时,DN确定待传输列对应的压缩算法为RLE压缩算法。
可选地,目标节点为DN或协调节点CN。
从上述内容可以看出:本发明实施例中,DN确定一个具有分布规律的待
传输列,以及待传输列中参数的分布规律;DN根据待传输列的参数的数据类
型,以及待传输列中参数的分布规律,确定待传输列对应的压缩算法;DN使
用压缩算法对所待传输列进行压缩;DN向目标节点发送压缩后的待传输列。
由于DN根据待传输列的参数的数据类型,以及待传输列中参数的分布规律确
定待传输列对应的压缩算法所对应的压缩算法,从而可尽可能的使用能达到较
大压缩比的压缩算法来对待传输列进行压缩,提高了压缩算法确定的灵活性。
进一步由于DN使用确定出的压缩算法对待传输列进行压缩,之后向目标节点
发送压缩后的待传输列,因而传输压缩后的待传输数据,降低了各个节点间数
据传输的开销,减轻了网络负荷。
图5示例性示出了本发明实施例提供的一种数据传输装置的结构示意图。
基于相同构思,本发明实施例提供一种数据传输装置500,用于执行上述
方法流程,包括传输单元501、确定单元502、解压单元503:
传输单元,用于接收数据节点DN发送的压缩后的待传输列,其中,压缩
后的的待传输列为DN使用的待传输列对应的压缩算法进行压缩得到的;
确定单元,用于确定的待传输列对应的压缩算法;
解压单元,用于使用压缩算法对应解压算法对压缩后的待传输列进行解压,
得到待传输列。
可选地,确定单元,具体用于:
通过外部接口,获取用户输入的待传输列对应的压缩算法;或者
接收DN发送的用于指示待传输列对应的压缩算法指示信息,根据指示信
息确定出压缩算法。
可选地,目标节点为DN或协调节点CN。
从上述内容可以看出:本发明实施例中,DN确定一个具有分布规律的待
传输列,以及待传输列中参数的分布规律;DN根据待传输列的参数的数据类
型,以及待传输列中参数的分布规律,确定待传输列对应的压缩算法;DN使
用压缩算法对所待传输列进行压缩;DN向目标节点发送压缩后的待传输列。
由于DN根据待传输列的参数的数据类型,以及待传输列中参数的分布规律确
定待传输列对应的压缩算法所对应的压缩算法,从而可尽可能的使用能达到较
大压缩比的压缩算法来对待传输列进行压缩,提高了压缩算法确定的灵活性。
进一步由于DN使用确定出的压缩算法对待传输列进行压缩,之后向目标节点
发送压缩后的待传输列,因而传输压缩后的待传输数据,降低了各个节点间数
据传输的开销,减轻了网络负荷。
图6示例性示出了本发明实施例提供的一种数据传输装置的结构示意图。
基于相同构思,本发明实施例提供一种数据传输装置630,用于执行上述
方法流程,包括处理器600、收发器610、存储器620:
处理器,用于读取存储器中的程序,执行下列过程:
确定一个具有分布规律的待传输列,以及待传输列中参数的分布规律;根
据待传输列的参数的数据类型,以及待传输列中参数的分布规律,确定待传输
列对应的压缩算法;使用压缩算法对所待传输列进行压缩;
在处理器的控制下向目标节点发送压缩后的待传输列。
可选地,收发器,还用于:
向目标节点发送指示信息;
其中,指示信息用于指示待传输列对应的压缩算法,指示信息被目标节点
用于对待传输数据进行解压以得到待传输数据。
可选地,具有分布规律的待传输列包括N个参数,N个参数中的至少两个
参数的值相等,N为大于1的整数。
可选地,处理器,具体用于:
根据接收到的查询命令,查询出与查询命令中关键词匹配的待传输数据;
其中,查询命令中包括一个关键词;
确定出关键词在待传输数据中对应的列,并将该关键词对应的列作为具有
分布规律的待传输列;
DN在确定待传输列参数的数据类型为支持RLE压缩算法的数据类型,且
在确定待传输列的分布规律为待传输列的参数的值为关键词时,DN确定待传
输列对应的压缩算法为RLE压缩算法。
可选地,处理器,具体用于:
DN根据接收到的查询命令,查询出与查询命令中关键词匹配的待传输数
据;其中,查询命令中包括多个关键词;多个关键词对应于待传输数据的同一
列;
DN确定出关键词在待传输数据中对应的列,并将该多个关键词对应的列
作为具有分布规律的待传输列;
DN在确定待传输列参数的数据类型为支持字典压缩算法的数据类型,且
在确定待传输列的分布规律为待传输列的参数的值为多个关键词时,DN确定
待传输列对应的压缩算法为字典压缩算法。
可选地,处理器,具体用于:
DN根据接收到的查询命令,查询出与查询命令中关键词匹配的待传输数
据;其中,查询命令中包括至少一个关键词;至少一个关键词对应于待传输数
据的同一列;
DN确定出关键词在待传输数据中对应的列,并将该关键词对应的列作为
具有分布规律的待传输列;待传输列是N行待传输数据中的一列;
DN根据待传输列的参数的值,对待传输列对应的N行待传输数据以行为
单位进行排序;待传输列中的参数与待传输数据的行一一对应;
DN在确定待传输列参数的数据类型为支持RLE压缩算法的数据类型,且
在确定待传输列的分布规律为按待传输列的参数的值进行排序时,DN确定待
传输列对应的压缩算法为RLE压缩算法。
可选地,处理器,具体用于:
DN根据接收到的查询命令,查询出与查询命令中关键词匹配的待传输数
据;其中,查询命令中包括至少一个关键词;至少一个关键词对应于待传输数
据的同一列;
DN确定出的关键词在待传输数据中对应的列,并将该关键词对应的列作
为具有分布规律的待传输列;待传输列是N行待传输数据中的一列;
DN根据待传输列的参数的值,确定出将待传输列的参数中值相等的参数;
DN将确定出的值相等的多个参数对应的多行待传输数据排布在一起;待
传输列中的参数与待传输数据的行一一对应;
DN在确定待传输列参数的数据类型为支持RLE压缩算法的数据类型,且
在确定待传输列的分布规律为将确定出的值相等的多个参数对应的多行待传
输数据排布在一起时,DN确定待传输列对应的压缩算法为RLE压缩算法。
可选地,目标节点为DN或协调节点CN。
从上述内容可以看出:本发明实施例中,DN确定一个具有分布规律的待
传输列,以及待传输列中参数的分布规律;DN根据待传输列的参数的数据类
型,以及待传输列中参数的分布规律,确定待传输列对应的压缩算法;DN使
用压缩算法对所待传输列进行压缩;DN向目标节点发送压缩后的待传输列。
由于DN根据待传输列的参数的数据类型,以及待传输列中参数的分布规律确
定待传输列对应的压缩算法所对应的压缩算法,从而可尽可能的使用能达到较
大压缩比的压缩算法来对待传输列进行压缩,提高了压缩算法确定的灵活性。
进一步由于DN使用确定出的压缩算法对待传输列进行压缩,之后向目标节点
发送压缩后的待传输列,因而传输压缩后的待传输数据,降低了各个节点间数
据传输的开销,减轻了网络负荷。
图7示例性示出了本发明实施例提供的一种数据传输装置的结构示意图。
基于相同构思,本发明实施例提供一种数据传输装置730,用于执行上述
方法流程,包括处理器700、收发器710、存储器720:
处理器,用于读取存储器中的程序,执行下列过程:
接收数据节点DN发送的压缩后的待传输列,其中,压缩后的的待传输列
为DN使用的待传输列对应的压缩算法进行压缩得到的;
确定的待传输列对应的压缩算法;使用压缩算法对应解压算法对压缩后的
待传输列进行解压,得到待传输列。
可选地,处理器,具体用于:
通过外部接口,获取用户输入的待传输列对应的压缩算法;或者
接收DN发送的用于指示待传输列对应的压缩算法指示信息,根据指示信
息确定出压缩算法。
可选地,目标节点为DN或协调节点CN。
从上述内容可以看出:本发明实施例中,DN确定一个具有分布规律的待
传输列,以及待传输列中参数的分布规律;DN根据待传输列的参数的数据类
型,以及待传输列中参数的分布规律,确定待传输列对应的压缩算法;DN使
用压缩算法对所待传输列进行压缩;DN向目标节点发送压缩后的待传输列。
由于DN根据待传输列的参数的数据类型,以及待传输列中参数的分布规律确
定待传输列对应的压缩算法所对应的压缩算法,从而可尽可能的使用能达到较
大压缩比的压缩算法来对待传输列进行压缩,提高了压缩算法确定的灵活性。
进一步由于DN使用确定出的压缩算法对待传输列进行压缩,之后向目标节点
发送压缩后的待传输列,因而传输压缩后的待传输数据,降低了各个节点间数
据传输的开销,减轻了网络负荷。
本领域内的技术人员应明白,本发明的实施例可提供为方法、或计算机程
序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件
和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计
算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、
CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产
品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和
/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/
或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入
式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算
机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一
个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设
备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中
的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个
流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使
得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处
理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个
流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基
本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要
求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发
明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及
其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。