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

kylin客户端(python编写)不能按照预期的segment进行rebuild的更多相关文章

  1. Python编写的ssh客户端[类似putty]

    转载请注明出处:http://blog.csdn.net/jmppok/article/details/17588381 windows下可以通过putty以ssh方式连接linux主机.但putty ...

  2. 【转载】Python编写简易木马程序

    转载来自: http://drops.wooyun.org/papers/4751?utm_source=tuicool 使用Python编写一个具有键盘记录.截屏以及通信功能的简易木马. 首先准备好 ...

  3. python编写网络抓包分析脚本

    python编写网络抓包分析脚本 写网络抓包分析脚本,一个称手的sniffer工具是必不可少的,我习惯用Ethereal,简单,易用,基于winpcap的一个开源的软件 Ethereal自带许多协议的 ...

  4. 【转】使用python编写网络通信程序

    文章主体现部分来自:http://openexperience.iteye.com/blog/145701 1. 背景知识 如果使用TCP协议来传递数据,客户端和服务器端需要分别经过以下步骤: ser ...

  5. Python编写Appium测试用例(1)

    有段时间没有使用python编写测试用例了,很长时间以来,感觉appium这个测试工具确实不错,今天又重新拿起来,分享一下自己学习的一些用例,欢迎大家一起交流.学习! 1.登录客户端 #coding= ...

  6. Python编写简易木马程序(转载乌云)

    Python编写简易木马程序 light · 2015/01/26 10:07 0x00 准备 文章内容仅供学习研究.切勿用于非法用途! 这次我们使用Python编写一个具有键盘记录.截屏以及通信功能 ...

  7. 基于python编写的天气抓取程序

    以前一直使用中国天气网的天气预报组件都挺好,可是自从他们升级组件后数据加载变得非常不稳定,因为JS的阻塞常常导致网站打开速度很慢.为了解决这个问题决定现学现用python编写一个抓取程序,每天定时抓取 ...

  8. 用Python编写博客导出工具

    用Python编写博客导出工具 罗朝辉 (http://kesalin.github.io/) CC 许可,转载请注明出处   写在前面的话 我在 github 上用 octopress 搭建了个人博 ...

  9. 用Python编写的第一个回测程序

    用Python编写的第一个回测程序 2016-08-06 def savfig(figureObj, fn_prefix1='backtest8', fn_prefix2='_1_'): import ...

随机推荐

  1. iOS 6.0中UIViewController被弃用的一些方法

    郝萌主倾心贡献.尊重作者的劳动成果,请勿转载. 假设文章对您有所帮助,欢迎给作者捐赠,支持郝萌主,捐赠数额任意.重在心意^_^ 我要捐赠: 点击捐赠 Cocos2d-X源代码下载:点我传送 概念:de ...

  2. 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解

    欢迎大家前往腾讯云技术社区,获取更多腾讯海量技术实践干货哦~ 作者:腾讯云容器服务团队 源码为 k8s v1.6.1 版本,github 上对应的 commit id 为 b0b7a323cc5a4a ...

  3. 通过Graph 浏览器体验Microsoft Graph

    作者:陈希章 发表于 2017年3月18日 上一篇介绍了Microsoft Graph的基本概念,接下来我们快速体验一下Microsoft Graph到底能做什么? 为了帮助开发人员直观和快速体验Mi ...

  4. Python笔记·第五章—— 列表(List) 的增删改查及其他方法

    一.列表的简介   列表是python中的基础数据类型之一,其他语言中也有类似于列表的数据类型,比如js中叫数组,他是以[ ]括起来,每个元素以逗号隔开,而且他里面可以存放各种数据类型比如:li = ...

  5. Linux chown

    在学习 兄弟连 linux教学视频 的时候,我将所学的 linux 命令记录在我的博客中,方便自己查阅. 权限管理命令: chown 基础的命令 命令名称:chown 命令英文原意:change fi ...

  6. Android查缺补漏--Service和IntentService

    Service的运行不依赖界面,即使程序被切换到后台,Service仍然能够保持正常运行.当某个应用程序进程被杀掉时,所有依赖于该进程的Service也会停止运行. Service 分为启动状态和绑定 ...

  7. 快看Sample代码,速学Swift语言(2)-基础介绍

    Swift语言是一个新的编程语言,用于iOS, macOS, watchOS, 和 tvOS的开发,不过Swift很多部分内容,我们可以从C或者Objective-C的开发经验获得一种熟悉感.Swif ...

  8. www.netcraft.com查看站点服务器使用的是什么操作系统

    查看站点服务器使用的是什么操作系统

  9. 商城项目整理(三)JDBC增删改查

    商品表的增加,修改,删除,订单表的增加,确认,用户表的查看,日志表的增加,查看 商品表建表语句: create table TEST.GOODS_TABLE ( gid NUMBER not null ...

  10. mvc中signalr实现一对一的聊天

    Asp.net MVC中实现即时通讯聊天的功能.前几天刚写了一片基础入门的教程,今天就来实现一下使用signaIr实现一对一的聊天的功能,对于这种场景也是即时通讯最基本功能.好吧废话不多说.先来看一下 ...