最近,在研究国外的金融科技公司,他们如何构建他们的平台战略?机缘巧合之间,刚好看到一篇关于Bank Python 相关的文章《An oral history of Bank Python》。在这篇文章里,介绍了 Bank Python 的四种基础构建块:
而围绕于这四个构建块创建的其中一类系统,则构建成了「金融 Python 即服务」的平台模式,即让金融从业人员能实现自助式的数据分析与处理。为此,我想编写一篇文章来介绍一下这种模式,方便于未来查阅。
如何提供一种快速的大数据分析模式,以供金融从业者使用?
对于这个现代化的分析工具来说,它需要:
只是呢,与通常的数据服务不一样的事,传统的分析模式,可能由开发人员导出报表进行分析,又或者是由拖拉拽的方式(低代码)来让业务人员操作。现代化的分析模式,则是围绕于 DSL 来构建数据自助服务。
在参考了国外主流的一些金融科技公司的模式,以及他们背后的 Bank Python,也有诸如高盛一类 Bank Slang 的机制。基于他们的一些经验,以及系统现代化的趋势,便提炼了「金融 Python 即服务」模式 —— 让业务人员能自助对金融数据分析,以及快速扩展的分析能力,即实现数据自助服务。
在这个机制下,便是业务人员编写 Python 代码来完成数据自助服务,查询、交互、分析、可视化等。而为了支撑业务人员使用 Python,又对公司的人才策略提出了挑战,金融公司所需要的是金融工程人才,才能将创新发挥到极致。当然了,这个解决方案并不简单,需要融合三个领域的专家:金融工程、数学科学、人工智能,除此,我们还需要关注于如何构建快速交付的基础设施。
于是乎,在这个模式中,它主要由如下的三层所组件:
当然了,为了实现上面的目标数据平台、服务组件化等等,一个都不可缺少。除此,更有意思的是这三层的每个层都是可扩展的:组件化、插件化等,诸如于 UI 层,可以通过插件化来快速实施。
在这一层时,便是金融 Python 的核心交互所在,它需要提供这么一些能力。
Jupyter 已经成为了今天的可交互式分析代表性的工具,诸如于 Goldman Sachs 等金融科技公司也采用了这样的平台。值得一提的是,诸如于 Perspective 提供了一系列金融相关组件集,并内置了一个快速、内存高效的流式查询引擎,还基于 WebAssembly 和 Web Components 技术来提供高性能的前端组件,还有 Jupyter 等一系列的插件。而像 ExprTK 则能提供一个简单易用、易于集成且极其高效的运行时数学表达式解析器和评估引擎,也是一个非常不错的工具。
所以,对于这个工作台来说,在特定的场景下,它还需要具备这么三个属性:低延迟组件(流式数据)、高性能快速计算(WASM)、快速查询 DSL。
从国内对于中台的喜爱来说,人们似乎喜欢把它称之为金融中台。但是,我更喜欢称之为领域层,毕竟面向的是金融与数据分析领域的,而且它还是一个领域驱动的事件架构。
我们需要围绕于交互层的交互指令,对数据进行一系列的操作。于是乎,我们关注于:
从系统的实现层面来说,其实我们应该关注的是:围绕 DAG 去实现任务编排,诸如于 Apache Airflow 便是一个非常不错的工具。
从某种意义上来说,这一层在今天可能会被称为 DATA AI,因为它们由 AI 和数据两层所构成
所以,同样也是这么几个维度:
在比较懒的情况下,采用诸如于 Trino(Presto )这一类的 SQL-On-Anything 查询引擎作为 wrapper 也是一个非常不错的解决方案。
在细节上,我们还要考虑的是:
当然了,这些都可以算是基础设施。
其它相似的模式,还有:
当然,这些都是 "传统" 的方式。
参考资源:
围观我的Github Idea墙, 也许,你会遇到心仪的项目