当前位置: 首页 > news >正文

doris数据库操作数字遇到的问题

  1. 关于doris数据库

Apache Doris 是一个基于 MPP 架构的高性能、实时的分析型数据库,以极速易用的特点被人们所熟知,仅需亚秒级响应时间即可返回海量数据下的查询结果,不仅可以支持高并发的点查询场景,也能支持高吞吐的复杂分析场景。基于此,Apache Doris 能够较好的满足报表分析、即时查询、统一数仓构建、数据湖联邦查询加速等使用场景,用户可以在此之上构建用户行为分析、AB 实验平台、日志检索分析、用户画像分析、订单分析等应用。其他相关信息请自行某度。

  1. 问题描述

项目上遇到了一个奇怪的问题,SQL查询出来明明没问题,到页面显示出现了0E-9。之前也出现过类型的,小数点后显示了很多多余的0。各种跟代码(以为是程序进行了相关的处理,但并无)、百度无果,而且doris相关的文章都是介绍如何安装、使用之类的,对于出现的问题,以及解决方案几乎没有。项目实际情况截图如下

  1. 问题排查

3.1. 跟踪代码

断点到执行SQL前跟踪了一下SQL和执行后的结果,发现java.sql.Connection.prepareStatement执行返回的结果与界面显示一致。虽然有过怀疑是否可能是工具类的bug,但暂时不深究,所以继续往下排查

3.2. 数据库工具执行SQL

  • 原始SQL是处理通用的统计查询:交叉报表,为了兼容多种数据库类型

  • 执行SQL原始情况截图

  • 莫名其妙,但又觉得神奇。按照业务SQL,编写了模拟的SQL查询,貌似也没问题

然后就反复测试原始SQL,测试各种可能会出现问题的点,均无果。

  • 发现问题的契机,就是在双击查询结果的单元格后被发现了:doris会把浮点型数字后追加若干个0。但是为什么有这种机制,是否可以通过数据库设置避免,等以后有时间再去深究吧

整数查询

小数查询

  1. 解决方案

方案有多种,比如直接代码处理;或者业务设置保留小数位数后,修改SQL保留等,比如

或者熟悉doris的大佬可以提供更好的方案吧

  1. doris使用心得

就目前开发上使用doris数据库的体验来说,并不友好。虽然他有各种优点,但在开发阶段,基本都没用到过,不过其他基本的功能却有很多不支持

  1. 不支持WITH语句:需要改成子查询的方式;

  1. left join语句查询时,右表数据量不能比左表大,否则会查询异常;

http://www.lryc.cn/news/39298.html

相关文章:

  • 3.13文件的IO操作
  • ffmpeg使用
  • spark中的并行度(分区数)/分区器如何确定
  • 00后女生“云摆摊”两周赚1.5万,实体店转战线上真的能赚钱吗?
  • 华为OD机试题 - 最优资源分配(JavaScript)| 机考必刷
  • 利用python判断字符串是否为回文
  • GDB 调用之ptype、set variable
  • 并发编程---阻塞队列(五)
  • 本科课程【计算机组成原理】实验1 - 输出ABCD程序的生成
  • Java并发编程(2) —— 线程创建的方式与原理
  • 你写的js性能有多差你知道吗 | js性能优化
  • 线程的状态、状态之间的相互转换
  • Java8使用Lambda表达式(流式)快速实现List转map 、分组、过滤等操作
  • C++之深浅拷贝
  • CoreLocation的一切
  • HashMap原理
  • STM32入门笔记(02):独立看门狗(IWDG)和窗户看门狗(WWDG)(SPL库函数版)
  • javaSE系列之方法与数组的使用
  • 常用命令总结
  • 【Linux:程序地址空间--原来操作系统也喜欢画大饼】
  • Python实现简单信号滤波实战
  • Java(110):非对称加密RSA的使用(KeyPair生成密钥)
  • (Mybatis 学习【1】)整合 Mybatis 开发流程
  • 一文搞懂Kerberos
  • Go爬虫学习笔记(三)
  • CASTEP参数设置(2)
  • 浅谈对Promise的理解以及在工作中的应用
  • 开源|快速入门和理解并模拟实现GPS户外机器人的定位与导航
  • Java多线程系列--synchronized的原理
  • QEMU启动ARM64 Linux内核