202克洛泽群岛2Vue3 系统入门与项目实战
国内数据库现状
近几年,国内的数据库如雨后春笋般出现了几百个,但是有几个是有原创技术的呢?
其实不多!你甚至可以毫不客气地说:几乎没有!
这几百个国内数据库,大部分都是基于开源数据库,而且90%以上。其中大部分(约90%)是基于MySQL或PostgreSQL修改的。
MySQL作为最著名的开源数据库,由于用户众多、兼容性强、接口丰富等因素,已经被国内很多数据库厂商改造成自己的产品。毕竟很多人都熟悉,改造成本更低。
但是相比MySQL,基于PostgreSQL(俗称PG)的包更多。这是因为PG采用BSD开源许可,非常宽松,允许修改源代码然后关闭,甚至不需要版权声明。因此,PG成为了众多国产数据库厂商的最爱,他们基于PG包装了自己的“原创”国产数据库,其中不乏一些以创新著称的著名厂商。正所谓“外国一开源,我们就原创。”有些厂商甚至懒得改造(或者可能改造不了),连驱动都可以直接借用。
除了MySQL和PG,还有一些基于其他开源数据库的包,但是数量很少。国内有些数据库看似原创,其实是基于一个退出江湖的老开源数据库。现在很难看到,它们被误认为是原件。
国内一些数据库厂商除了使用开源库封装,还通过购买源代码的方式实现了“自主”。例如,2015年,几家中国公司购买了Informix源代码来开发自己的数据库。
这些“借鉴他人”的非原创数据库厂商,大多没有掌握核心技术。毕竟消化几千万行代码并不容易。虽然你手里有源代码,但是要进行深度改造还是有一定难度的,未来的升级发展也会引起人们的关注。有时候甚至会出现协议和法律问题,比如MySQL现在归甲骨文所有。天知道O不开心的时候会不会对我们做什么。
不过值得欣慰的是,还是有少部分有价值的厂商从0独立实现了。代表性的就是OceanBase。因为它诞生于互联网公司,面对业务的快速扩张,在成本和容量上很难支撑继续使用国外的商业数据库,有强烈的动力摆脱对国外产品的依赖,所以要走一条自研之路。当然,从零开始开发一个数据库并不容易。这是个十年磨一剑的苦差事,愿意这么做的厂商真的很少。
除此之外,我们还有另一个经过十年磨砺的更精彩的产品,一个看起来不像数据库却能完成很多数据库任务的产品:润乾软件开发的计算器SPL。不仅在工程实现上完全自主研发,就连理论模型都是原创的。它突破的不仅是数据库本身,还有背后的理论框架。这样的产品在国内可以说是绝无仅有。
什么是SPL?和数据库有什么关系?效果怎么样?背后打破了什么理论?下面就来说说吧。
SPL的起源
SPL发展的主体是润乾软件。你可能听过或用过润乾报告。它是20年前解决中国式复杂报表制作问题的创新产品,其中运用了独创的非线性报表模型理论。我们知道,报表是一个强数据计算场景,数据库中的数据与要呈现的数据相差甚远,需要很多复杂的操作。而报表工具只能解决展现步骤中的少量计算,对于进入报表工具之前的数据计算却无能为力。这就导致了虽然有成熟的报表工具来解决格式和展现的计算问题,但是开发报表还是比较困难的。
要解决这个问题,业内没有好的解决方案。只能用复杂的SQL(和存储过程)编写,或者在应用程序中用高级语言(如Java)编程,既繁琐又低效。而且由于SQL和Java的开发特点,也会带来高耦合、难维护等问题。
在这种背景下,我们希望找到一种方法来解决数据计算困难和速度慢的问题。在总结分析了我们遇到的各种数据计算问题后,我们发现如果继续使用SQL技术系统,无论如何也解决不了这个问题。顶多在工程上做一些优化(现在大部分数据库都在做的),只是把老酒装在新瓶子里。
SQL的理论基础是关系代数。SQL难以处理复杂数据计算的根本原因是其背后的关系代数理论。要从根本上解决这个问题,我们不能再以关系代数为基础。
然后呢?
既然没有现成的可用,那就要发明新的,用新的理论模型来解决计算问题!
然而,说起来容易,做起来却不容易。从2007年开始,我们花了十几年的时间,经过四次大的重构,稳定了模型和结构,形成了一套理论模型——离散数据集。基于这套模型,专门用于结构化数据计算的编程语言SPL(Structured Process Language,结构化过程语言)也可以理解为具有存储机制的数据仓库产品。
因为SPL采用了新的理论模型,市场上没有其他产品可以借鉴,更没有现成的开源代码可以“借鉴”。只能自己一行一行的开发。因此,SPL的核心运营模式代码从头到脚都是完全独立和原创的。连理论基础都是自己发明的,代码只能是原创。你觉得它够独立吗?
说到这里,你可能会发现SPL看起来与传统的数据库不同。其实际应用效果如何?
SPL应用效应
就大数据计算任务而言,就应用效果而言,SPL在实践中表现非常出色。实现复杂计算时,不仅代码短,而且性能通常比传统数据库快一个数量级以上。
国家天文台的一个天体计算场景:11张照片,每张照片50万个天体(目标大小500万)。天文距离较近的天体(三角函数计算)视为相同,需要将不同照片中“相同”的天体合并,重新聚合其属性。
这个任务的技术本质是非等价相关,计算量是平方(即50万* 50万= 2500亿)。Python代码大概200行,单线程计算需要6.5天。按照速度估算,500万的目标规模需要近2年,完全不切实际。国内某大厂分布式数据库上100个CPU的SQL代码耗时3.8小时,单核计算速度比Python还慢。而SPL实现的优化代码只有50多行,利用任务特性大大减少了计算量(远低于2500亿元)。在4核笔记本上完成计算只需要2分多钟,500万目标规模的计算只需要几个小时就可以完成,完全实用。
这种差距的背后:受限于SQL的理论模型,我们无法实现这种优化技术,只能眼睁睁看着计算资源的消耗;Python硬编码可以实现优化算法,但是工作量巨大,代码会远远超过200行;只有SPL,代码更短,运行更快。
而且,SPL的优势在其他行业也很明显。
在某保险公司团险明细表查询场景中,与Oracle相比,SPL性能提升2000倍,代码量减少5倍以上...
在某保险公司车险跑批计算优化场景中,使用SPL将RDB跑批时间从2小时优化到17分钟,实现代码从原来的2000行缩短到500行以内...
在某银行的客户画像场景中,SPL将用户画像的客户群交集的计算性能提升了200多倍...
在一个财务用户的报表查询场景中,SPL将报表计算时间从3700秒缩短到105秒,提升了35倍以上...
……
类似的SPL案例已经实现了很多次,但都没有失败,平均速度提升超过一个数量级,代码量减少数倍。
这里还有一份性能测试报告:国家生产计算数据库性能测试报告。用SPL在国产芯片上实现的运算可以超过运行在Intel芯片上的Oracle。这是SPL理论创新的结果(离散数据集)。
为什么SPL更强大?
看到SPL的应用效果后,我们不禁要问,SPL到底有什么样的魔力才能达到这些惊人的效果?SPL背后的理论基础是什么?什么是离散数据集模型?
SPL的优势主要集中在两点:数据计算的代码短(写得简单),性能更高(运行速度快)。SPL改变了计算机的速度吗?不,软件改变不了硬件的性能。SPL更强的原因是设计了很多别人没有的算法(和存储机制)。基于这些算法,计算机可以执行更少的操作,从而实现高性能。这些算法大多只能通过离散数据集理论才能很好地实现。
国内数据库现状
近几年,国内的数据库如雨后春笋般出现了几百个,但是有几个是有原创技术的呢?
其实不多!你甚至可以毫不客气地说:几乎没有!
这几百个国内数据库,大部分都是基于开源数据库,而且90%以上。其中大部分(约90%)是基于MySQL或PostgreSQL修改的。
MySQL作为最著名的开源数据库,由于用户众多、兼容性强、接口丰富等因素,已经被国内很多数据库厂商改造成自己的产品。毕竟很多人都熟悉,改造成本更低。
但是相比MySQL,基于PostgreSQL(俗称PG)的包更多。这是因为PG采用BSD开源许可,非常宽松,允许修改源代码然后关闭,甚至不需要版权声明。因此,PG成为了众多国产数据库厂商的最爱,他们基于PG包装了自己的“原创”国产数据库,其中不乏一些以创新著称的著名厂商。正所谓“外国一开源,我们就原创。”有些厂商甚至懒得改造(或者可能改造不了),连驱动都可以直接借用。
除了MySQL和PG,还有一些基于其他开源数据库的包,但是数量很少。国内有些数据库看似原创,其实是基于一个退出江湖的老开源数据库。现在很难看到,它们被误认为是原件。
国内一些数据库厂商除了使用开源库封装,还通过购买源代码的方式实现了“自主”。例如,2015年,几家中国公司购买了Informix源代码来开发自己的数据库。
这些“借鉴他人”的非原创数据库厂商,大多没有掌握核心技术。毕竟消化几千万行代码并不容易。虽然你手里有源代码,但是要进行深度改造还是有一定难度的,未来的升级发展也会引起人们的关注。有时候甚至会出现协议和法律问题,比如MySQL现在归甲骨文所有。天知道O不开心的时候会不会对我们做什么。
不过值得欣慰的是,还是有少部分有价值的厂商从0独立实现了。代表性的就是OceanBase。因为它诞生于互联网公司,面对业务的快速扩张,在成本和容量上很难支撑继续使用国外的商业数据库,有强烈的动力摆脱对国外产品的依赖,所以要走一条自研之路。当然,从零开始开发一个数据库并不容易。这是个十年磨一剑的苦差事,愿意这么做的厂商真的很少。
除此之外,我们还有另一个经过十年磨砺的更精彩的产品,一个看起来不像数据库却能完成很多数据库任务的产品:润乾软件开发的计算器SPL。不仅在工程实现上完全自主研发,就连理论模型都是原创的。它突破的不仅是数据库本身,还有背后的理论框架。这样的产品在国内可以说是绝无仅有。
什么是SPL?和数据库有什么关系?效果怎么样?背后打破了什么理论?下面就来说说吧。
SPL的起源
SPL发展的主体是润乾软件。你可能听过或用过润乾报告。它是20年前解决中国式复杂报表制作问题的创新产品,其中运用了独创的非线性报表模型理论。我们知道,报表是一个强数据计算场景,数据库中的数据与要呈现的数据相差甚远,需要很多复杂的操作。而报表工具只能解决展现步骤中的少量计算,对于进入报表工具之前的数据计算却无能为力。这就导致了虽然有成熟的报表工具来解决格式和展现的计算问题,但是开发报表还是比较困难的。
要解决这个问题,业内没有好的解决方案。只能用复杂的SQL(和存储过程)编写,或者在应用程序中用高级语言(如Java)编程,既繁琐又低效。而且由于SQL和Java的开发特点,也会带来高耦合、难维护等问题。
在这种背景下,我们希望找到一种方法来解决数据计算困难和速度慢的问题。在总结分析了我们遇到的各种数据计算问题后,我们发现如果继续使用SQL技术系统,无论如何也解决不了这个问题。顶多在工程上做一些优化(现在大部分数据库都在做的),只是把老酒装在新瓶子里。
SQL的理论基础是关系代数。SQL难以处理复杂数据计算的根本原因是其背后的关系代数理论。要从根本上解决这个问题,我们不能再以关系代数为基础。
然后呢?
既然没有现成的可用,那就要发明新的,用新的理论模型来解决计算问题!
然而,说起来容易,做起来却不容易。从2007年开始,我们花了十几年的时间,经过四次大的重构,稳定了模型和结构,形成了一套理论模型——离散数据集。基于这套模型,专门用于结构化数据计算的编程语言SPL(Structured Process Language,结构化过程语言)也可以理解为具有存储机制的数据仓库产品。
因为SPL采用了新的理论模型,市场上没有其他产品可以借鉴,更没有现成的开源代码可以“借鉴”。只能自己一行一行的开发。因此,SPL的核心运营模式代码从头到脚都是完全独立和原创的。连理论基础都是自己发明
类似的SPL案例已经实现了很多次,但都没有失败,平均速度提升超过一个数量级,代码量减少数倍。
这里还有一份性能测试报告:国家生产计算数据库性能测试报告。用SPL在国产芯片上实现的运算可以超过运行在Intel芯片上的Oracle。这是SPL理论创新的结果(离散数据集)。
为什么SPL更强大?
看到SPL的应用效果后,我们不禁要问,SPL到底有什么样的魔力才能达到这些惊人的效果?SPL背后的理论基础是什么?什么是离散数据集模型?
SPL的优势主要集中在两点:数据计算的代码短(写得简单),性能更高(运行速度快)。SPL改变了计算机的速度吗?不,软件改变不了硬件的性能。SPL更强的原因是设计了很多别人没有的算法(和存储机制)。基于这些算法,计算机可以执行更少的操作,从而实现高性能。这些算法大多只能通过离散数据集理论才能很好地实现。
国内数据库现状
近几年,国内的数据库如雨后春笋般出现了几百个,但是有几个是有原创技术的呢?
其实不多!你甚至可以毫不客气地说:几乎没有!
这几百个国内数据库,大部分都是基于开源数据库,而且90%以上。其中大部分(约90%)是基于MySQL或PostgreSQL修改的。
SPL发展的主体是润乾软件。你可能听过或用过润乾报告。它是20年前解决中国式复杂报表制作问题的创新产品,其中运用了独创的非线性报表模型理论。我们知道,报表是一个强数据计算场景,数据库中的数据与要呈现的数据相差甚远,需要很多复杂的操作。而报表工具只能解决展现步骤中的少量计算,对于进入报表工具之前的数据计算却无能为力。这就导致了虽然有成熟的报表工具来解决格式和展现的计算问题,但是开发报表还是比较困难的。
要解决这个问题,业内没有好的解决方案。只能用复杂的SQL(和存储过程)编写,或者在应用程序中用高级语言(如Java)编程,既繁琐又低效。而且由于SQL和Java的开发特点,也会带来高耦合、难维护等问题。
在这种背景下,我们希望找到一种方法来解决数据计算困难和速度慢的问题。在总结分析了我们遇到的各种数据计算问题后,我们发现如果继续使用SQL技术系统,无论如何也解决不了这个问题。顶多在工程上做一些优化(现在大部分数据库都在做的),只是把老酒装在新瓶子里。
SQL的理论基础是关系代数。SQL难以处理复杂数据计算的根本原因是其背后的关系代数理论。要从根本上解决这个问题,我们不能再以关系代数为基础。
类似的SPL案例已经实现了很多次,但都没有失败,平均速度提升超过一个数量级,代码量减少数倍。
这里还有一份性能测试报告:国家生产计算数据库性能测试报告。用SPL在国产芯片上实现的运算可以超过运行在Intel芯片上的Oracle。这是SPL理论创新的结果(离散数据集)。
为什么SPL更强大?
看到SPL的应用效果后,我们不禁要问,SPL到底有什么样的魔力才能达到这些惊人的效果?SPL背后的理论基础是什么?什么是离散数据集模型?
SPL的优势主要集中在两点:数据计算的代码短(写得简单),性能更高(运行速度快)。SPL改变了计算机的速度吗?不,软件改变不了硬件的性能。SPL更强的原因是设计了很多别人没有的算法(和存储机制)。基于这些算法,计算机可以执行更少的操作,从而实现高性能。这些算法大多只能通过离散数据集理论才能很好地实现。
2022Vue3 系统入门与项目实战克洛泽群岛
download
链接:https://pan.baidu.com/s/15-ra-UsY834nnzyqFeTy0Q?pwd=re0k
提取码:re0k
--来自百度网盘超级会员V5的分享