2021年度总结 | 葡萄城软件开发技术回顾(下)


2021年度总结 | 葡萄城软件开发技术回顾(下)

在上节中,我们介绍了在过去一年中葡萄城在控件领域中的一些新探索,新尝试。

(详细内容:https://www.cnblogs.com/powertoolsteam/p/15882644.html)

包括为了解决前端电子表格中将传统的高性能结构化表格 (Grid) 与公式计算引擎 (CalcEngine)结合问题的集算表,和不同平台中复杂报表的性能提升和兼容拓展,除了控件技术的相关内容,关于近几年风头正盛的低代码和BI数据分析,我们也有一些新内容想与大家分享。

嵌入式BI,数据可视化利器

数据可视化,在近几年也是人们关注的一个热点话题。

2021年中,我们在数据BI领域也有了新的突破。

Wax(Wyn Analytic Expression)分析语言系统

今年针对BI数据分析,我们新研发了Wax引擎。

Wax引擎本质是一个复杂的SQL生成器,对Wax语句和表达式进行解析,再对数据模型进行拓扑结构分析,结合两者生成抽象语法树,反复进行优化迭代,最终生成适用于目标数据库的SQL语句。在此过程中我们对诸如图运算等关键组件进行了大量的优化以确保性能和最终的SQL产物的质量。

不同于传统的BI实现方式,Wax不需要Cube,而是选择连接高级的OLAP数据库作为替代,根据其特性针对性的生成最合适的SQL以满足查询性能的需要。以此为基础,在未来的版本中,Wax引擎将支持更多种类的OLAP数据库,在硬件足够强大的前提下,Wax将释放其背后的OLAP数据库的无限潜力。

Wax语言可以实现几乎任何用户需要的查询,让构建RFM、杜邦等复杂分析也成为可能。

从使用层面说,Wax允许用户以低代码形式构建高级分析,与之前版本中侧重于易用性的依靠拖拽构建一般分析的功能能够良好配合,为用户提供更多的自由度。目前业界类似的分析语言支持情况来看,Wax胜在轻量化和泛用性。

Wax的强复用性

在设计Wax时我们也进行了很多关于高复用性的考量。

  • 除了OLAP数据库,Wax引擎也可以生成适用于主流OLTP数据库的SQL,使用Wax组件的产品可以直接以Wax语句的形式在目标数据库上进行查询和分析。

Wyn借助这一点实现了实时数据分析功能。

包括推送数据集和流式数据集,Wyn能够接收数据、清洗数据并转储到内存数据库或持久化的列式数据库,在仪表板发起查询时在这些数据库上执行由Wax引擎生成的SQL获取分析结果。

  • Wax引擎本身是个封装严密、零依赖的独立模块,可以支持再发行为nuget包。这意味着其他产品也可以安装Wax模块来提供数据分析功能。

  • Wax引擎的核心代码和平台无关,和语言仅有少量相关,可以较容易的以其他语言重写(如Java等)。

推流模式的实时数据接入

流式数据集和推送数据集的底层实现是一个可供调用的WebAPI。设备源、传感器、服务器、检测仪器等IoT设备采集的数据均可以通过调用这个WebAPI推送给Wyn Enterprise,实时展示到仪表板中,全面满足各种实时数据监控需求。

工欲善其事,必先利其器。正如Gartner的分析师所言,增强分析将塑造大数据的未来趋势,我们也希望未来在BI领域中为大家提供更加强大的支撑。

积木一搭,立刻开发

2021年,在数字化背景的加持之下,除了数据BI,低代码也是风头正盛的一年。

在几十年控件技术的累积之下,葡萄城的低代码也在不断努力,让开发者像搭积木一样快速实现应用的构建。而今年,我们将活字格牵上了云,在私有化部署的基础上,研发了独占资源的公有云服务,也就是大家常说的PaaS。

活字格云基于云原生K8S容器技术以及.NET Core跨平台技术构建,在满足企业级应用开发的基础上,尽量发挥公有云带来的技术优势。关于K8S的相关内容,我们出了连载:Docker与k8s的恩怨情仇系列,详细内容如下:

第六章:Docker与k8s的恩怨情仇(六)—— "容器编排"上演"终结者"大片

功能方面:活字格云全面兼容On-Promise私有化部署的应用,可以非常方便的地将本地应用迁移到云端;

运维方面:活字格云提供了丰富的监控界面,可以对服务器的CPU、磁盘、网络进行全方位监控;

性能方面:稳定高可用的集群部署环境,为应用的健康稳定运行提供支持;

同时,活字格云可以结合云商城使用,云商城提供了大量的应用和组件,方便用户快速构建应用,避免重复造轮子。

总结

技术的发展没有边界,万物生长,蓬勃向上。

每年都有许许多多"后浪"技术不断更新升级,也有许许多多"前浪"技术纷至沓来。

未必不能空手而来,但是可以满载而归。

在这里我们为2021年画上圆满的句号,2022年将会为大家带来更多有趣、严肃的内容。