利索能及
我要发布
收藏
专利号: 2015105061595
申请人: 杭州海康威视系统技术有限公司
专利类型:发明专利
专利状态:已下证
更新日期:2025-09-11
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种数据同步方法,其特征在于,包括:

读取第一数据源中的目录索引文件,得到所述目录索引文件所包含的n个应用的数据目录,其中,所述第一数据源用于提供数据同步所需的数据,n为大于等于2的自然数;

读取数据目录Di所包含的数据索引文件Ei,其中,所述数据索引文件Ei包括应用Ai中数据的变更信息,i依次取1至n,应用A1至应用An构成所述n个应用,数据目录D1至数据目录Dn构成所述n个应用的数据目录;

解析所述应用Ai的更新配置文件,得到所述应用Ai中需要进行数据同步的目标数据的目录和所述目标数据的类型属性;以及根据所述数据索引文件Ei中的变更信息,按照所述目标数据的类型属性转换所述第一数据源中的数据的数据结构,第二数据源获取所述第一数据源中转换所述数据结构后的数据,完成数据同步,其中,所述第二数据源为存储所述应用A1至所述应用An的数据源。

2.根据权利要求1所述的方法,其特征在于,所述数据索引文件Ei中的变更信息包括全量更新时间和增量文件行数,根据所述数据索引文件Ei中的变更信息,按照所述目标数据的类型属性转换所述第一数据源中的数据的数据结构,第二数据源获取所述第一数据源中转换所述数据结构后的数据,完成数据同步包括:读取所述数据索引文件Ei中的所述全量更新时间;

根据所述全量更新时间判断是否进行全量数据同步;

在根据所述全量更新时间判断出进行所述全量数据同步的情况下,从所述第一数据源中读取全量数据文件,并按照所述目标数据的类型属性转换所述全量数据文件的数据结构,将转换所述数据结构后的所述全量数据文件同步至所述第二数据源;

在根据所述全量更新时间判断出不进行所述全量数据同步的情况下,或在将转换所述数据结构后的所述全量数据文件同步至所述第二数据源之后,读取所述数据索引文件Ei中的所述增量文件行数;

根据所述增量文件行数判断是否进行增量数据同步;以及

在根据所述增量文件行数判断出进行所述增量数据同步的情况下,从所述第一数据源中读取增量数据文件,并按照所述目标数据的类型属性转换所述增量数据文件的数据结构,将转换所述数据结构后的所述增量数据文件同步至所述第二数据源。

3.根据权利要求2所述的方法,其特征在于,将转换所述数据结构后的所述全量数据文件同步至所述第二数据源包括:从所述第二数据源查询所述目标数据的所有键值;

存储所述所有键值至临时文件;

判断转换所述数据结构后的所述全量数据文件中的键值Kj’是否存在于所述临时文件中,其中,j’依次取1至m1,m1为所述全量数据文件中键值的总数量;

在判断出转换所述数据结构后的所述全量数据文件中的所述键值Kj’存在于所述临时文件中的情况下,将所述第二数据源中所述键值Kj’表示的数据更新为转换所述数据结构后的所述全量数据文件中所述键值Kj’表示的数据,并删除所述临时文件中的所述键值Kj’;

在判断出转换所述数据结构后的所述全量数据文件中的所述键值Kj’不存在于所述临时文件中的情况下,保存转换所述数据结构后的所述全量数据文件中的所述键值Kj’表示的数据至所述第二数据源;以及从所述第二数据源中删除所述临时文件中剩余的键值表示的数据。

4.根据权利要求2所述的方法,其特征在于,将转换所述数据结构后的所述增量数据文件同步至所述第二数据源包括:从所述第二数据源查询所述目标数据的所有键值;

存储所述所有键值至临时文件;

判断转换所述数据结构后的所述增量数据文件中的键值Kj”是否存在于所述临时文件中,其中,j”依次取1至m2,m2为所述增量数据文件中键值的总数量;

在判断出转换所述数据结构后的所述增量数据文件中的所述键值Kj”存在于所述临时文件中的情况下,将所述第二数据源中所述键值Kj”表示的数据更新为转换所述数据结构后的所述增量数据文件中所述键值Kj”表示的数据,并删除所述临时文件中的所述键值Kj”;

在判断出转换所述数据结构后的所述增量数据文件中的所述键值Kj”不存在于所述临时文件中的情况下,保存转换所述数据结构后的所述增量数据文件中的所述键值Kj”表示的数据至所述第二数据源;以及从所述第二数据源中删除所述临时文件中剩余的键值表示的数据。

5.根据权利要求1所述的方法,其特征在于,在读取第一数据源中的目录索引文件,得到所述目录索引文件所包含的n个应用的数据目录之前,所述方法还包括:解析预设的数据生成配置文件,得到需要生成的第一数据类型;

判断所述第二数据源中是否存在类型为所述第一数据类型的数据;以及

在判断出所述第二数据源中存在类型为所述第一数据类型的数据的情况下,将所述第二数据源中类型为所述第一数据类型的数据写入所述第一数据源。

6.根据权利要求5所述的方法,其特征在于,在判断出所述第二数据源中存在类型为所述第一数据类型的数据的情况下,将所述第二数据源中类型为所述第一数据类型的数据写入所述第一数据源包括:判断第一全量数据文件的大小是否达到预设大小,其中,所述第一全量数据文件为所述第一数据源中当前进行数据写入的全量数据文件;

在判断出所述第一全量数据文件的大小达到所述预设大小的情况下,在所述第一数据源中创建第二全量数据文件,并将所述第二数据源中类型为所述第一数据类型的数据写入所述第二全量数据文件;以及在判断出所述第一全量数据文件的大小未达到所述预设大小的情况下,将所述第二数据源中类型为所述第一数据类型的数据写入所述第一全量数据文件。

7.根据权利要求1所述的方法,其特征在于,在读取第一数据源中的目录索引文件,得到所述目录索引文件所包含的n个应用的数据目录之前,所述方法还包括:接收数据更新信息,其中,所述数据更新信息包括更新数据和所述更新数据的数据类型;

解析预设的数据生成配置文件,得到与所述更新数据的数据类型对应的目标数据格式;

将所述更新数据的格式转换为所述目标数据格式;以及

将转换为所述目标数据格式的所述更新数据写入所述第一数据源。

8.根据权利要求7所述的方法,其特征在于,将转换为所述目标数据格式的所述更新数据写入所述第一数据源包括:判断第一增量数据文件的大小是否达到预设大小,其中,所述第一增量数据文件为所述第一数据源中当前进行数据写入的增量数据文件;

在判断出所述第一增量数据文件的大小达到所述预设大小的情况下,在所述第一数据源中创建第二增量数据文件,并将转换为所述目标数据格式的所述更新数据写入所述第二增量数据文件;以及在判断出所述第一增量数据文件的大小未达到所述预设大小的情况下,将转换为所述目标数据格式的所述更新数据写入所述第一增量数据文件。

9.根据权利要求1所述的方法,其特征在于,所述目录索引文件为逗号分隔值CSV格式,所述数据索引文件E1至数据索引文件En均为CSV格式。

10.一种数据同步装置,其特征在于,包括:

第一读取单元,用于读取第一数据源中的目录索引文件,得到所述目录索引文件所包含的n个应用的数据目录,其中,所述第一数据源用于提供数据同步所需的数据,n为大于等于2的自然数;

第二读取单元,用于读取数据目录Di所包含的数据索引文件Ei,其中,所述数据索引文件Ei包括应用Ai中数据的变更信息,i依次取1至n,应用A1至应用An构成所述n个应用,数据目录D1至数据目录Dn构成所述n个应用的数据目录;

第一解析单元,用于解析所述应用Ai的更新配置文件,得到所述应用Ai中需要进行数据同步的目标数据的目录和所述目标数据的类型属性;以及同步单元,用于根据所述数据索引文件Ei中的变更信息,按照所述目标数据的类型属性转换所述第一数据源中的数据的数据结构,第二数据源获取所述第一数据源中转换所述数据结构后的数据,完成数据同步,其中,所述第二数据源为存储所述应用A1至所述应用An的数据源。

11.根据权利要求10所述的装置,其特征在于,所述数据索引文件Ei中的变更信息包括全量更新时间和增量文件行数,所述同步单元包括:第一读取子单元,用于读取所述数据索引文件Ei中的所述全量更新时间;

第一判断子单元,用于根据所述全量更新时间判断是否进行全量数据同步;

第一同步子单元,用于在所述第一判断子单元根据所述全量更新时间判断出进行所述全量数据同步的情况下,从所述第一数据源中读取全量数据文件,并按照所述目标数据的类型属性转换所述全量数据文件的数据结构,将转换所述数据结构后的所述全量数据文件同步至所述第二数据源;

第二读取子单元,用于在所述第一判断子单元根据所述全量更新时间判断出不进行所述全量数据同步的情况下,或在所述第一同步子单元将转换所述数据结构后的所述全量数据文件同步至所述第二数据源之后,读取所述数据索引文件Ei中的所述增量文件行数;

第二判断子单元,用于根据所述增量文件行数判断是否进行增量数据同步;

以及

第二同步子单元,用于在所述第二判断子单元根据所述增量文件行数判断出进行所述增量数据同步的情况下,从所述第一数据源中读取增量数据文件,并按照所述目标数据的类型属性转换所述增量数据文件的数据结构,将转换所述数据结构后的所述增量数据文件同步至所述第二数据源。

12.根据权利要求11所述的装置,其特征在于,所述第一同步子单元包括:第一查询模块,用于从所述第二数据源查询所述目标数据的所有键值;

第一存储模块,用于存储所述所有键值至临时文件;

第一判断模块,用于判断转换所述数据结构后的所述全量数据文件中的键值Kj’是否存在于所述临时文件中,其中,j’依次取1至m1,m1为所述全量数据文件中键值的总数量;

第一处理模块,用于在所述第一判断模块判断出转换所述数据结构后的所述全量数据文件中的所述键值Kj’存在于所述临时文件中的情况下,将所述第二数据源中所述键值Kj’表示的数据更新为转换所述数据结构后的所述全量数据文件中所述键值Kj’表示的数据,并删除所述临时文件中的所述键值Kj’;

第二处理模块,用于在所述第一判断模块判断出转换所述数据结构后的所述全量数据文件中的所述键值Kj’不存在于所述临时文件中的情况下,保存转换所述数据结构后的所述全量数据文件中的所述键值Kj’表示的数据至所述第二数据源;以及第一删除模块,用于从所述第二数据源中删除所述临时文件中剩余的键值表示的数据。

13.根据权利要求11所述的装置,其特征在于,所述第二同步子单元包括:第二查询模块,用于从所述第二数据源查询所述目标数据的所有键值;

第二存储模块,用于存储所述所有键值至临时文件;

第二判断模块,用于判断转换所述数据结构后的所述增量数据文件中的键值Kj”是否存在于所述临时文件中,其中,j”依次取1至m2,m2为所述增量数据文件中键值的总数量;

第三处理模块,用于在所述第二判断模块判断出转换所述数据结构后的所述增量数据文件中的所述键值Kj”存在于所述临时文件中的情况下,将所述第二数据源中所述键值Kj”表示的数据更新为转换所述数据结构后的所述增量数据文件中所述键值Kj”表示的数据,并删除所述临时文件中的所述键值Kj”;

第四处理模块,用于在所述第二判断模块判断出转换所述数据结构后的所述增量数据文件中的所述键值Kj”不存在于所述临时文件中的情况下,保存转换所述数据结构后的所述增量数据文件中的所述键值Kj”表示的数据至所述第二数据源;以及第二删除模块,用于从所述第二数据源中删除所述临时文件中剩余的键值表示的数据。

14.根据权利要求10所述的装置,其特征在于,所述装置还包括:

第二解析单元,用于在所述第一读取单元读取第一数据源中的目录索引文件,得到所述目录索引文件所包含的n个应用的数据目录之前,解析预设的数据生成配置文件,得到需要生成的第一数据类型;

判断单元,用于判断所述第二数据源中是否存在类型为所述第一数据类型的数据;以及第一写入单元,用于在所述判断单元判断出所述第二数据源中存在类型为所述第一数据类型的数据的情况下,将所述第二数据源中类型为所述第一数据类型的数据写入所述第一数据源。

15.根据权利要求14所述的装置,其特征在于,所述第一写入单元包括:第三判断子单元,用于判断第一全量数据文件的大小是否达到预设大小,其中,所述第一全量数据文件为所述第一数据源中当前进行数据写入的全量数据文件;

第一写入子单元,用于在所述第三判断子单元判断出所述第一全量数据文件的大小达到所述预设大小的情况下,在所述第一数据源中创建第二全量数据文件,并将所述第二数据源中类型为所述第一数据类型的数据写入所述第二全量数据文件;以及第二写入子单元,用于在所述第三判断子单元判断出所述第一全量数据文件的大小未达到所述预设大小的情况下,将所述第二数据源中类型为所述第一数据类型的数据写入所述第一全量数据文件。

16.根据权利要求10所述的装置,其特征在于,所述装置还包括:

接收单元,用于在所述第一读取单元读取第一数据源中的目录索引文件,得到所述目录索引文件所包含的n个应用的数据目录之前,接收数据更新信息,其中,所述数据更新信息包括更新数据和所述更新数据的数据类型;

第三解析单元,用于解析预设的数据生成配置文件,得到与所述更新数据的数据类型对应的目标数据格式;

转换单元,用于将所述更新数据的格式转换为所述目标数据格式;以及

第二写入单元,用于将转换为所述目标数据格式的所述更新数据写入所述第一数据源。

17.根据权利要求16所述的装置,其特征在于,所述第二写入单元包括:第四判断子单元,用于判断第一增量数据文件的大小是否达到预设大小,其中,所述第一增量数据文件为所述第一数据源中当前进行数据写入的增量数据文件;

第三写入子单元,用于在所述第四判断子单元判断出所述第一增量数据文件的大小达到所述预设大小的情况下,在所述第一数据源中创建第二增量数据文件,并将转换为所述目标数据格式的所述更新数据写入所述第二增量数据文件;以及第四写入子单元,用于在所述第四判断子单元判断出所述第一增量数据文件的大小未达到所述预设大小的情况下,将转换为所述目标数据格式的所述更新数据写入所述第一增量数据文件。

18.根据权利要求10所述的装置,其特征在于,所述目录索引文件为逗号分隔值CSV格式,所述数据索引文件E1至数据索引文件En均为CSV格式。