首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在cygnus中平衡行模式和列模式?

如何在cygnus中平衡行模式和列模式?
EN

Stack Overflow用户
提问于 2015-05-22 22:02:38
回答 1查看 59关注 0票数 2

我有一个每小时传送数据的气象站。在这一小时内,它会进行四次记录(每15分钟一次)。在我目前的情况下,我使用attr_persistence=row在我的MySql数据库中存储数据。

使用row模式,我得到默认生成的列:

代码语言:javascript
运行
复制
recvTimeTs | recvTime | entityId | entityType | attrName | attrType | attrValue | attrMd

但是我的气象站给我发来了以下数据:

代码语言:javascript
运行
复制
 |   attrName    | attrValue

   timeRecorded   14:30:0,22.5.2015
   measurement1   18.799
   measurement2   94.0
   measurement3   1.19

这些attrValue在数据库中表示为字符串。

有没有办法将三个测量值保留在行模式,而将timeRecorded切换到列模式?如果不是,那么我的选择是什么?

这一切的重点是查询时间记录值,但我不能查询日期,因为它是字符串。

作为附注:让气象站在记录数据后立即发送数据(每15分钟发送一次)是不可能的,首先是因为我需要节省电池电量,更重要的是因为在post出现问题的情况下,它会立即发送所有记录。

EN

回答 1

Stack Overflow用户

发布于 2015-05-27 22:32:28

建议的解决方案是使用MySQL的STR_TO_DATE函数,以便将存储的基于字符串的"timeRecorded“属性转换为实际的MySQL时间戳类型。

然而,由于OrionMySQLSink的"timeRecorded“属性持久化模式,表中每4行就会出现一次"row”属性。在这种情况下,我认为您可以使用MySQL中的ROWNUM关键字,以便仅获取每4行,类似于(不是MySQL专家):

代码语言:javascript
运行
复制
SELECT STR_TO_DATE( attrValue, '%m/%d/%Y' ) FROM def_servpath_0004_weatherstation where (ROWNUM / 4 = 0);

这样,您就可以避免STR_TO-DATE部件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30398783

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档