1.一种实时数据处理方法,其特征在于,包括:
实时接收数据并将所述数据放入队列中;
循环读取所述队列中的数据并将读取的数据放入缓存中;
判断从所述队列中读取数据的时间是否超过预设的时间阈值,如果是,则将所述缓存中的数据进行聚合,并将聚合后的数据持久化;
其中,所述判断从所述队列中读取数据的时间是否超过预设的时间阈值、如果是、则将所述缓存中的数据进行聚合、并将聚合后的数据持久化包括:将开始循环读取所述队列中数据的当前时间设置为第一时间T1并记录;
在每次从所述队列中取出一条数据并放入所述缓存时,判断放入所述缓存时对应的当前时间和T1之间的时间差是否超过所述时间阈值,如果超过所述时间阈值,则跳出读取所述队列中数据的循环,将缓存中的数据进行聚合,并将聚合后的数据持久化;如果未超过所述时间阈值,则继续循环进行从所述队列中读取下一条数据的操作。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
根据设定的聚合结果的最小更新周期T2和允许持久化的最小时间间隔T3设置所述时间阈值;其中,所述时间阈值小于等于T2,并且大于等于T3。
3.如权利要求2所述的方法,其特征在于,所述根据设定的聚合结果的最小更新周期T2和允许持久化的最小时间间隔T3设置所述时间阈值包括:将所述时间阈值的分别设置为第一时间阈值和第二时间阈值,并进行所述数据的持久化处理;其中,第一时间阈值的值为T2,第二时间阈值的值为第一时间阈值的一半;
分别获取所述时间阈值为第一时间阈值的第一数据持久化结果和所述时间阈值为第二时间阈值时的第二数据持久化结果,并判断所述第一数据持久化结果和所述第二数据持久化结果是否都符合预设的持久化检测策略;所述数据持久化结果包括:聚合程度和存储的行数;
如果是,则将第二时间阈值的值赋给第一时间阈值,并将第二时间阈值的值设置为新的第一时间阈值的一半,进行数据的持久化处理并检测数据持久化结果,依此循环执行设置第一时间阈值和第二时间阈值并进行所述数据的持久化处理,直到判断所述第一数据持久化结果和所述第二数据持久化结果不都符合预设的持久化检测策略时,则跳出此执行设置第一时间阈值和第二时间阈值并进行所述数据的持久化处理的循环,确定所述时间阈值为此时的第一时间阈值;
如果否,则确定所述时间阈值为T2。
4.如权利要求1所述的方法,其特征在于,所述将所述缓存中的数据进行聚合、并将聚合后的数据持久化包括:将缓存中的数据按照不同的维度进行聚合,将具有相同维度的数据聚合成一条数据,并将聚合完成后的数据存储在数据库或文件中。
5.一种实时数据处理系统,其特征在于,包括:
数据接收单元,用于实时接收数据并将所述数据放入队列中;
数据缓存单元,用于循环读取所述队列中的数据并将读取的数据放入缓存中;
持久化单元,用于判断从所述队列中读取数据的时间是否超过预设的时间阈值,如果是,则将所述缓存中的数据进行聚合,并将聚合后的数据持久化;
其中,所述数据缓存单元包括数据读取记录子模块,用于将开始循环读取所述队列中数据的当前时间设置为第一时间T1并记录;
所述持久化单元包括数据聚合子模块,用于在每次所述数据缓存单元从所述队列中取出一条数据并放入所述缓存时,判断放入所述缓存时对应的当前时间和T1之间的时间差是否超过所述时间阈值,如果超过所述时间阈值,则跳出读取所述队列中数据的循环,将缓存中的数据进行聚合,并将聚合后的数据持久化,如果未超过所述时间阈值,则所述数据缓存单元继续循环进行从所述队列中读取下一条数据的操作。
6.如权利要求5所述的系统,其特征在于,还包括:
时间阈值设定单元,用于根据设定的聚合结果的最小更新周期T2和允许的持久化的最小时间间隔T3设置所述时间阈值;其中,所述时间阈值小于等于T2,并且大于等于T3。
7.如权利要求6所述的系统,其特征在于:
所述时间阈值设定单元包括:
试验阈值设定模块,用于将所述时间阈值的分别设置为第一时间阈值和第二时间阈值,并进行所述数据的持久化处理;其中,第一时间阈值的值为T2,第二时间阈值的值为第一时间阈值的一半;
持久化试验模块,用于分别获取所述时间阈值为第一时间阈值的第一数据持久化结果和所述时间阈值为第二时间阈值时的第二数据持久化结果,并判断所述第一数据持久化结果和所述第二数据持久化结果是否都符合预设的持久化检测策略;如果是,则所述试验阈值设定单元将第二时间阈值的值赋给第一时间阈值,并将第二时间阈值的值设置为新的第一时间阈值的一半,进行数据的持久化处理并检测数据持久化结果,依此循环执行设置第一时间阈值和第二时间阈值并进行所述数据的持久化处理,直到判断所述第一数据持久化结果和所述第二数据持久化结果不都符合预设的持久化检测策略时,则跳出此执行设置第一时间阈值和第二时间阈值并进行所述数据的持久化处理的循环;确定所述时间阈值为此时的第一时间阈值;如果否,则确定所述时间阈值为T2。
8.如权利要求5至7任意一项所述的系统,其特征在于:
所述持久化单元包括持久处理子模块,用于将缓存中的数据按照不同的维度进行聚合,将具有相同维度的数据聚合成一条数据,并将聚合完成后的数据存储在数据库或文件中。