开发者社区> 问答> 正文

spring cloud Alibaba,有没有老师用过 influxdb 时序数据库,碰到过拼接s

spring cloud Alibaba,有没有老师用过 influxdb 时序数据库,碰到过拼接sql查询不到数据的情况吗?
当sql为:SELECT FROM account where (accountId = 'A-00000003' and time ='2019-03-10T20:00:00Z') 能够查出数据。
当sql为:SELECT
FROM account where (accountId = 'A-00000002' and time ='2020-12-08T21:00:00Z') 也能查出数据,
但是sql为:SELECT * FROM account where (accountId = 'A-00000003' and time ='2019-03-10T20:00:00Z') or (accountId = 'A-00000002' and time ='2020-12-08T21:00:00Z') 却不能查出数据?

展开
收起
数据大拿 2023-07-12 16:26:11 105 0
3 条回答
写回答
取消 提交回答
  • 这种情况可能是由于 InfluxDB 在处理复合查询时的逻辑问题导致的。以下是一些可能的解决方案和调试步骤:

    1. 检查数据是否存在:确保在执行复合查询之前,为指定的 accountIdtime 组合准备了数据。可以通过单独执行每个子查询来验证数据是否存在。

    2. 确认时间戳格式:请确保 time 字段的时间戳格式与数据库中存储的时间戳格式一致。InfluxDB 默认使用纳秒级时间戳(UNIX纳秒时间戳),但也支持其他格式。如果时间戳格式不匹配,查询可能无法找到结果。

    3. 尝试使用分开的查询:如果复合查询仍然无法正常工作,可以尝试将查询分成多个单独的查询,并在应用程序中组合结果。这样可以绕过可能导致问题的 InfluxDB 查询逻辑。

    4. 查看 InfluxDB 日志:检查 InfluxDB 的日志文件,以查看是否有任何与查询相关的错误或警告消息。错误日志可能会提供有关为什么无法获取数据的更多背景信息。

    2023-07-12 22:52:01
    赞同 展开评论 打赏
  • 北京阿里云ACE会长

    对于单条SELECT查询,InfluxDB有一个最大允许的Clause数量限制。
    每个AND或OR连接的条件算作一个Clause。

    同时InfluxDB对单个Measurement(account)内允许选择的点的数量也有限制。
    您的查询有4个Clause:

    apache
    Copy
    accountId = 'A-00000003'
    time ='2019-03-10T20:00:00Z'
    accountId = 'A-00000002'
    time ='2020-12-08T21:00:00Z'
    离散的两个WHERE条件可能超出了InfluxDB的限制。

    2023-07-12 19:11:08
    赞同 展开评论 打赏
  • influxdb和 tdengine那个好使
    先拆开用吧

    此答案来自钉钉群“群5 Spring Cloud Alibaba"

    2023-07-12 18:46:07
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
+ 订阅
阿里云 云原生应用平台 肩负阿里巴巴集团基础设施云化以及核心技术互联网化的重要职责,致力于打造稳定、标准、先进的云原生产品,成为云原生时代的引领者,推动行业全面想云原生的技术升级,成为阿里云新增长引擎。商业化产品包括容器、云原生中间件、函数计算等。
问答排行榜
最热
最新

相关电子书

更多
玩转HBase和Lindorm 大数据入门和实战 立即下载
《玩转HBase和Lindorm大数据入门和实战》 立即下载
《阿里云原生多模超融合数据库Lindorm》 立即下载