zoukankan      html  css  js  c++  java
  • kylin客户端(python编写)不能按照预期的segment进行rebuild

    kylin_client_tool 提供了对cube进行BUILD,REBUILD,MERGE功能,其中REBUILD却不能达到预期的效果按照指定的segment执行。

    场景:

    当我在kylin web页面对cube进行两次构建(分别是2000-01-01——2017-12-01, 2017-12-01——2017-12-02),我要对第二个段进行重构,执行python kylin_client_tool.py -P project_name -M REBUILD -C cube_name -T 2017-12-01 -E 2017-12-02,并没有按照预想的结果只对segment:2017-12-01——2017-12-02重构,反而对段2000-01-01——2017-12-01, 2017-12-01——2017-12-02都进行了重构,这里源代码有个bug,稍微做下修改即可。

    解决方案:

    需要修改的源代码:kylin_client_tool/scheduler/workers/cube.py   第115行determine_segment_range方法

    114     @staticmethod
    115     def determine_segment_range(segments, dt_start, dt_end):
    116         pointer_dt_start = (int(time.mktime(parser.parse(dt_start).timetuple())) - time.timezone) * 1000
    117         pointer_dt_end = (int(time.mktime(parser.parse(dt_end).timetuple())) - time.timezone) * 1000
    118  
    119         if(pointer_dt_start > pointer_dt_end):
    120             raise Exception("Start date (%s) is older than end date (%s)!" % (str(pointer_dt_start), str(pointer_dt_end)))
    121  
    122         segments_to_refresh = []
    123         for segment in segments:
    124             if((pointer_dt_start <= segment.date_range_start and segment.date_range_end <= pointer_dt_end) or       # |..|       
    125                 (segment.date_range_start <= pointer_dt_start and pointer_dt_start <= segment.date_range_end) or    # .|.|   
    126                 (pointer_dt_end <= segment.date_range_start and segment.date_range_end <= pointer_dt_end) ):        # |.|.
    127                 segments_to_refresh.append(segment)
    138         return sorted(segments_to_refresh, key = lambda x: x.date_range_start)

    去掉124-127行,for循环里换成下面两行代码:

    segment.date_range_start = pointer_dt_start 
    segment.date_range_end = pointer_dt_end 

  • 相关阅读:
    学习WCF4.0
    C++/CLI几点说明:
    微软StockTrader 4.0 学习笔记配置服务实现示例指南(二)
    PHP register_shutdown_function函数详解
    ASP.NET 中做柱状图和饼图
    如何获取重载了operator &的类对象的实际地址?
    面试题:按单词逆转字符串(2010/10/09)
    如何让模板类跟友元模板函数一一对应起来
    非递归中序输出二叉搜索树
    卖电影票
  • 原文地址:https://www.cnblogs.com/dzqk/p/8235848.html
Copyright © 2011-2022 走看看