将ES中的数据推到kafka中,用kylin进行OLAP计算,发现统计数据对不上

下面是我用同一份数据,查询ES,推到kafka,导入kylin,导入的数据量一样,使用的cube设置是一样的
结果得到的统计数据竟然不一样,当时简直是哔了狗了
第一张查询ES时候是没有排序,第二张查询是按时间排序,按时间排序的统计结果才是正确的。
照理说,我导入KAFKA的数据都是一样的,kylin两次统计的数据都是同一份,结果应该是一样。想不明白!!!!

这份代码是排序的查询条件的代码,注释掉的是没有排序的查询条件:
private Page<ESAmazonTop50AsinStatistics> getData(int page, int size)
				throws ParseException {

			String startTime = TomtopDateUtil.beforeXDayZero(new Date(),
					this.beforeXDay).getTime()
					/ 1000 + "";
			String endTime = TomtopDateUtil.beforeXDayZero(new Date(),
					this.beforeXDay - 1).getTime()
					/ 1000 + "";
			Pageable pageable = new PageRequest(page, size);
			
			SortBuilder sortBuilder = SortBuilders.fieldSort("createTime").order(
					SortOrder.DESC);
			QueryBuilder queryTime = QueryBuilders.boolQuery().must(
					QueryBuilders.rangeQuery("createTime").gte(startTime)
							.lt(endTime));

			NativeSearchQueryBuilder build = new NativeSearchQueryBuilder()
					.withFilter(queryTime).withSort(sortBuilder)
					.withPageable(pageable);
			SearchQuery searchQuery = build.build();
			Page<ESAmazonTop50AsinStatistics> trackPage = eSAmazonTopAsinStatisticsRepository.search(searchQuery);
			
//			QueryBuilder queryTime = QueryBuilders.boolQuery().must(
//					QueryBuilders.rangeQuery("createTime").gte(startTime)
//							.lt(endTime));
//			Page<ESAmazonTop50AsinStatistics> trackPage = eSAmazonTopAsinStatisticsRepository
//					.search(queryTime, pageable);
			return trackPage;
		}


猜你喜欢

转载自blog.csdn.net/a469517790/article/details/78805999
今日推荐