MLSQL(2.1.0)技术白皮书

MLSQL 2.1.0 版本已经发布,参看 MLSQL 2.1.0 Release Note

Cloud + Data + AI 时代,我们需要什么

Data和AI赖以生存的基石是分布式。分布式包括存储分布式和计算分布式。分布式计算的一个难题是资源的弹性伸缩,Cloud解决了这个问题,提供了近乎无限的存储和计算伸缩能力。所以他们三者相辅相成,被结合在一起是水到渠成的事情。

当我们谈到Web开发,我们首先是想到可以学习Java,Go,当我们谈到机器学习,我们会想到Python,而当我们谈到大数据,我们会想到SQL。然而,这些语言要么并非天生就是分布式的,导致门槛太高,要么灵活度太低,无法覆盖Data+AI的各种场景,比如使用Java,Go,Python等传统语言你没有办法直接去分布式编程,你需要依托一些框架,比如MR,Spark,Flink,并且学习这些框架的一些编程范式,你才能进行分布式的编程。而SQL天生是分布式的,但是灵活度太低,难以覆盖AI以及更加复杂的场景。

这意味着,当一位数据使用者说他想学习大数据和AI的时候,他需要学习形形色色的语言,并且为了弥补这些语言的不足,还需要学习种类繁多的计算框架,以及他们限定的各种编程范式。门槛搞,成本高,这是企业难以落地Data+AI的根本原因。

我们希望有这么一门语言,这门语言:

  1. 足够简单易学,从产品,运营到专业数据科学家都能够使用它

  2. 天生就是分布式的,或者说至少他的分布式编程范式足够简单以至于用户几乎不太要去思考它

  3. 足够灵活的,能够同时解决Data + AI 领域的问题,并且能够满足人们对于一门语言的基本诉求,包括代码复用,项目管理。

  4. 语言实现应该是一个云原生的引擎,能够充分利用包括云在内的多种基础设施

  5. 语言内置安全,包括语法元素和数据两层安全。

MLSQL就是在这种背景下诞生的,他是面向大数据和AI设计的一门分布式语言,能够满足上面五个基本诉求,从而帮助业界更低成本的落地Data+AI,使得数据真正平民化,人人都可以用上数据。

MLSQL Language

MLSQL具有两个核心特点:

  1. 实现桌面到云端的覆盖
  2. 第一个同时面向Data+AI设计的分布式语言

在后续部分,我们也会描述MLSQL在最新实现的一些新探索:

  1. 联邦计算
  2. 隐私计算
  3. 索引体系
  4. 安全体系

    实现桌面到云端的覆盖

在桌面上,用户可以像使用SAS软件一样,在自己的笔记本上安装MLSQL桌面版运行和使用而无需服务端支持。此外,我们还提供了三个额外的选项供用户选择:

  1. 通过一行配置,就可以将算力和存储扩展到云端,在桌面版中用户可以随意切换本地和公有云的计算引擎
  2. 通过MLSQL团队提供的 mlsql-deploy 用户可以一行命令将引擎部署到私有K8s环境,在桌面版本随意切换本地和私有K8s。我们也支持部署到Hadoop环境中。
  3. 完全使用基于公有云的web版本,但几乎有和桌面版一样使用体验。

值得一提的是,MLSQL引擎支持无论云端亦或是私有环境下的分布式部署。

下面是上述特性的一些演示。

涉及到项目:

  1. mlsql-lang-vscode-plugin
  2. mlsql-lang-example-project
  3. mlsql-language-server
  4. mlsql-deploy

    桌面版

桌面版细节图