Python系列问题集02-使用阿里云提供的datahub_console客户端下载datahub数据时,指定时间点参数无效

背景:datahub的SDK包进行下载topic数据时,时间设置无效问题解决方法

从阿里云官网下载datahub console客户端,使用过程中发现指定任意时间点后,发现始终是从datahub中最久的那一条数据开始下载,初步怀疑是该客户端包问题。客户端下载URL:

https://help.aliyun.com/document_detail/184383.html?spm=a2c4g.11186623.6.585.7e0c642e97pFDC

于是,萌生想法直接下载datahub的SDK进行编写运维工具,使用python 2.7.15版本。

安装过程见我的另一篇文章:

https://blog.csdn.net/weixin_40012925/article/details/126317198

环境搭建好后,开始编写调用SDK的下载接口,结果和直接使用datahub_console客户端一样的问题,指定任意时间都是从datahub存放最久的数据进行下载,于是进行分析原因:1)是SDK本身不支持指定时间offset点位,参数无效;2)调用接口使用方式问题。

从传参数时间点位查询开始,参数只支持时间戳格式,发现python time函数将时间转为时间戳时是秒级,刚好我下载的数据中有一个时间戳记录的是毫秒级,感觉换衣是此处原因,于是将转为时间戳后*1000后,进行传参数,结果报参数类型错误,接口要求是int类型,而传参数时间戳是long类型。

查看SDK源码包,获取datahub的cursor函数信息如下:
在这里插入图片描述

在这里插入图片描述


    @type_assert(object, str, str, str, CursorType, long)
    def get_cursor(self, project_name, topic_name, shard_id, cursor_type, param=-1):

        return self._datahub_impl.get_cursor(project_name, topic_name, shard_id, cursor_type, param)

于是想着将该渲染限定的int类型改为long类型,然后重新安装SDK包后,解决问题。
在这里插入图片描述

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_40012925/article/details/126317578
今日推荐