热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

新版发布DolphinDBV1.30.20&V2.00.8新特性一览

DolphinDB 于近期发布了 V2.00.8 和 V1.30.20 新版本,在计算功能、数据库易用性和运维管理等方面都有一定的功能改进或性能优化。本文将为大家简单介绍本次版本的新特性。点击阅读原文

DolphinDB 于近期发布了 V2.00.8 和 V1.30.20 新版本,在计算功能、数据库易用性和运维管理等方面都有一定的功能改进或性能优化。本文将为大家简单介绍本次版本的新特性。点击阅读原文可下载升级。

V2.00.8 和 V1.30.20 新版本中,我们为用户带来更丰富的数据类型和计算功能,包括更高效的矩阵处理、数据表连接等。
同时,我们进一步提升了 DolphinDB 易用性,新增了删除分区数据但保留表结构的函数 truncate。
最值得一提的是,新增的 SQL Tracing 工具将大大方便用户监测 SQL 执行全流程耗时。此外,我们还在数据备份与恢复、权限管理与安全方面做了加强,提升数据库的整体运维管理性

丰富数据类型和计算功能

1. 新增数据类型 DECIMAL
在一般计算时,使用普通的浮点类型是比较普遍的做法,计算过程中允许存在浮点数精度的误差。但在金融领域中,有一些数据源的数据类型是 DECIMAL。为了保证数据精度一致,我们新增支持了 DECIMAL 数据类型,从而更好地满足用户高精度的计算需求
DECIMAL 数据类型主要包含两种:DECIMAL32DECIMAL64,DECIMAL32 的底层存储使用 int32_t 类型,占用4个字节;DECIMAL64 的底层存储使用 int64_t 类型,占用8个字节。
DECIMAL 在创建时需要指定两个描述精度的数字:
  • precision:整个 DECIMAL 包括整数和小数部分一共有多少个数字;
  • scale:DECIMAL 的小数部分包含多少个数字。

2. 丰富矩阵处理函数

  • 新增函数 align
该函数按照指定连接方法,将两个矩阵根据行/列标签进行对齐。
此前,用户需要通过索引矩阵和索引序列来支持矩阵的对齐运算,其标签必须是严格递增的,并且系统会自动以”outer“方式进行对齐。引入 align 函数后,标签矩阵的对齐功能得到拓展。用户可以通过配置参数,快速对矩阵完成外连接('outer'/'fj')、内连接('inner'/'ej')、左连接('left'/'lj')以及非同时连接('asof'/'aj')的处理,矩阵对齐和运算更加灵活
对比之前的对齐方式,align 函数具有两大优势:(1)支持普通的标签矩阵对齐,标签的单调性不再受限制;(2)对齐的方法更加多样化。
  • 新增函数 loc
该函数通过标签或布尔向量获取矩阵指定的行和列的元素,只有为 true 的行/列可以被保留,返回一个原矩阵的副本或视图。其中,若原矩阵发生变化,视图也会改变,拷贝则不发生变化;用户可以通过 view 参数对此进行设置。
  • 新增函数 regroup
该函数按给定的行/列标签对矩阵进行分组聚合的操作。其中,由于 DolphinDB 系统内部对内置函数进行了优化处理,用户采用内置函数进行聚合计算时会具有更优的性能。

3. 优化 window join 引擎功能

  • 新增与修改 createWindowJoinEngine 参数
新版本中,我们为 createWindowJoinEngine 函数新加了可选参数 nullFill。nullFill 为和输出表列字段等长且类型一一对应的元组,可用于填充输出表中的空值。
此外,我们还修改了参数 window=0:0 时的计算规则。在此特殊窗口下,右表的计算窗口由左表相连两条数据的时间戳确定。假设左表当前记录的时间戳为 t,上一条记录的时间戳为 t0,则由左表当前记录时间戳确定的右表计算窗口为 [t0, t)。
  • 优化 window join 引擎垃圾回收触发条件
在使用多引擎级联处理数据,并最终落盘时,内存占用会随时间不断增加,出现 window join 引擎内存泄露的问题。我们在新版本中对该问题进行了修复
4. 其他问题修复
window join 左表行数小于 window 大小时会导致服务器崩溃,新版本也对这一问题进行了修复

提升易用性

1. 增加 SQL Tracing 工具,用于监测 SQL 执行全流程耗时

你是否遇到过这样的情况?在使用同一段脚本查询时,运行速度时而快达几百毫秒或几秒,时而慢至几十秒。此前我们只能根据零散的 log 信息来粗略解析判断,但由于信息不足,往往难以定位问题。比如对于一个查询命令,客户端显示共执行21秒,但现有的工具无法为我们解析出这21秒耗时在哪里。
新版本中,我们增加了 SQL Tracing 工具,用户可以跟踪从 DolphinDB 接受请求开始到发送响应结束的完整流程,以便分析执行流程中系统内部的具体行为和性能瓶颈。SQL Tracing 工具主要有以下几个功能:
  • 分析复杂 SQL 查询的内部耗时;
  • 统计其他脚本的耗时;
  • 支持分布式任务;
  • 提供可视化界面。
用户可以使用 traceLogDir 配置 trace 日志的存储路径,使用 setTraceMode(mode) 命令控制 SQL Trace 功能的开启或关闭,以及用 getTraces() 函数获取跟踪信息。
为了能够更直观地展示时间跨度,我们将跟踪结果接入了 Jaeger 系统。Jaeger 是一个开源分布式追踪系统,主要用于微服务架构下服务间调用的跟踪。下面是在 Jaeger上 展示的结果图:
我们也将发布与该功能配套的案例教程,为大家进一步演示如何使用 SQL Tracing 工具,欢迎感兴趣的小伙伴持续关注。

2. 新增函数 truncate,用于快速删除分布式表所有分区数据

用户可以用该函数快速删除一个 dfs 表的所有数据,同时保留 dfs 表的表结构。其性能较 delete 语句以及 dropPartition 函数均有数倍提升

3. dropPartition 函数新增参数 deleteSchema

可选参数 deleteSchema 表明是否删除 schema,默认为false,同时不再需要额外的权限,用于删除 VALUE 分区时同步删除表 schema 中的分区信息。

加强运维管理

1. 优化数据备份与恢复
在生产环境中,数据库的安全性、容灾性是广大用户最关注的要点之一,假如遇到数据库系统的崩溃,使用备份与恢复功能将帮助用户以最小的代价实现数据恢复,使损失降到最低。
在本次新版本中,我们对 backup 和 restore 函数做了进一步改进和功能扩充,性能上也有了很大提升。旧版中,数据备份需要先读取到内存,再序列化到磁盘,因而速度有限;而新版直接拷贝文件进行备份,所以理论上磁盘拷贝文件的速度,就是备份的速度。
  • backup/restore 支持以分区为单位进行备份与恢复,底层通过拷贝文件的方式实现。
用户可以以分区为单位,使用 backup 函数备份布式表的数据;该函数返回一个整数,表示备份成功的分区数量。同时,restore 函数也可用来恢复指定分区的数据,返回一个包含恢复的分区路径的字符串向量。
  • 新增函数 backupDB/restoreDB/backupTable/restoreTable,用于备份恢复整库/表。
之前使用 backup 函数,用户只能通过调用 sql 添加过滤条件进行数据的备份和恢复,虽然可以过滤到更细致的数据,但是效率不高且可备份的范围有限。新版本中,用户可以通过 backupDB 中的参数指定数据库路径,一键备份整表或分区,大大提升效率
  • 新增 loadBackupcheckBackup/getBackupStatus 函数,方便监控和管理备份恢复过程及文件。
用户可以通过 checkBackup 函数检查备份文件的完整性和准确性;若所有备份文件均完整且准确,则返回一个空表;否则返回异常的备份文件信息;此时可通过设置 force 参数为 true 开启强制备份以恢复受损的备份分区数据。若管理员想要查看指定用户的 backup/restore 任务,则可以使用 getBackupStatus 函数。

2. 强化权限管理与安全

DolphinDB 提供了强大、灵活、安全的权限控制系统,用以保护数据隐私、保证系统安全。对于 shell 或 file 等访问系统层面的函数,此前无需登录便可使用,这对于用户数据具有一定风险。为此,我们在新版本中增加了 31 个系统层面函数的权限控制,这部分函数需登录或管理员权限才可调用。

展望

在后续版本中,我们将持续完善 DolphinDB 的各方面功能,并尝试提供一系列新功能,一起来提前看看吧:
  • 完善 DECIMAL 数据类型:目前 OLAP/TSDB 存储引擎及部分函数已支持 DECIMAL 存储及计算,我们将进一步完善 DECIMAL 数据类型,扩大可支持函数范围,用户可以在更多函数下使用高精度类型处理数据;
  • 优化异步复制功能:在高可用方面,我们将推出异步复制的功能,方便用户在不同集群间的数据同步,提升系统的容灾备份能力;
  • 提升 SQL 兼容性:SQL作为一种结构化查询语言,是最常用的数据分析工具之一。在后续的版本中,DolphinDB 将进一步提升 SQL 标准兼容性,帮助用户更加方便地进行数据查询、分析操作。
  • 提供一系列新功能:除此之外,DolphinDB 未来还将陆续提供交易日历、模拟撮合、模块加密等新功能。
以上就是本次 DolphinDB 新版发布的所有介绍。欢迎感兴趣的小伙伴点击文末阅读原文下载试用、升级,我们也将持续为大家提供技术支持,可在文末扫码添加小助手微信(dolphindb1)加入交流群。

Explore More



扫描二维码,添加 DolphinDB小助手
点击阅读原文,下载升级 DolphinDB


推荐阅读
  • GreenDAO快速入门
    前言之前在自己做项目的时候,用到了GreenDAO数据库,其实对于数据库辅助工具库从OrmLite,到litePal再到GreenDAO,总是在不停的切换,但是没有真正去了解他们的 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
  • Oracle seg,V$TEMPSEG_USAGE与Oracle排序的关系及使用方法
    本文介绍了Oracle seg,V$TEMPSEG_USAGE与Oracle排序之间的关系,V$TEMPSEG_USAGE是V_$SORT_USAGE的同义词,通过查询dba_objects和dba_synonyms视图可以了解到它们的详细信息。同时,还探讨了V$TEMPSEG_USAGE的使用方法。 ... [详细]
  • 超级简单加解密工具的方案和功能
    本文介绍了一个超级简单的加解密工具的方案和功能。该工具可以读取文件头,并根据特定长度进行加密,加密后将加密部分写入源文件。同时,该工具也支持解密操作。加密和解密过程是可逆的。本文还提到了一些相关的功能和使用方法,并给出了Python代码示例。 ... [详细]
  • java drools5_Java Drools5.1 规则流基础【示例】(中)
    五、规则文件及规则流EduInfoRule.drl:packagemyrules;importsample.Employ;ruleBachelorruleflow-group ... [详细]
  • MySQL多表数据库操作方法及子查询详解
    本文详细介绍了MySQL数据库的多表操作方法,包括增删改和单表查询,同时还解释了子查询的概念和用法。文章通过示例和步骤说明了如何进行数据的插入、删除和更新操作,以及如何执行单表查询和使用聚合函数进行统计。对于需要对MySQL数据库进行操作的读者来说,本文是一个非常实用的参考资料。 ... [详细]
  • 本文探讨了容器技术在安全方面面临的挑战,并提出了相应的解决方案。多租户保护、用户访问控制、中毒的镜像、验证和加密、容器守护以及容器监控都是容器技术中需要关注的安全问题。通过在虚拟机中运行容器、限制特权升级、使用受信任的镜像库、进行验证和加密、限制容器守护进程的访问以及监控容器栈,可以提高容器技术的安全性。未来,随着容器技术的发展,还需解决诸如硬件支持、软件定义基础设施集成等挑战。 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
author-avatar
ss29566982
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有