11月4号在奥兰多,微软在一年一度的Ignite会议上发布了一堆新东西。其中有个服务叫Azure Synapse。与此同时,微软也发布了SQL Server 2019。线上线下,一起努力出击。算的上是件有意思的事情。
这服务发布以后,好多人找我,让我来解读一下评价一下。说句实话,最近太忙, 所以对这个方面的关注度没那么大。但是即使这样,微软这个服务发布前几周,我也从其他渠道事先知道了一些关于这个新服务的事情了。
Synapse是微软既Data Lake以后的又一次尝试。其中很大一部分工作是原先微软做Azure Data Lake组做的。另外一部分就是SQL Datawarehouse,或者用业界比较内部人知道的名字:PolyBase。
我不知道这是微软第几次尝试在数据仓库和数据湖方向发力了。仅仅是数据仓库,这应该是第三次尝试了吧。说起来,在云端,亚马逊有Redshift,谷歌有BigQuery,微软作为第二大云厂商,无论是数据仓库还是数据湖,没什么像样的东西。屡败屡战,屡战屡败。有人问我结局是什么,我想可能还是会继续败下去。
Polybase是之前线下的一个数仓产品,来源于微软最初收购的一个洛杉矶的小公司。该公司做软硬件结合的一体化数仓,用的是Ingres。微软收购以后把控制节点和每个数据节点都换成了SQL Server。之后David Dewitt的威斯康辛实验室又介入进来。系统又加上了一些Hadoop的机器集群,可以通过数据库端来跑Hadoop的MapReduce。线下的机器一度卖的不错。
微软的另外一个分支数据库由威斯康辛另外一个教授Raghu操刀。下面是一个基于Azure Blob store的WebHDFS实现,叫做Azure Data Lake Store。上面是HDInsight + USQL的分析平台,叫做Azure Data Lake Analytics。这些我之前公众号详细介绍过了这里不深入展开。
USQL微软已经决定放弃了,正在淘汰的路上。Azure Data Lake Store整个团队被Azure Blob Store给吃了,做了一个个Azure Data Lake Store V2。核心思想是Blob Store带directory支持,元数据层同时提供HDFS和Blob接口。这个Store V2不能说不好。但是实践过程中出了一些问题。尤其是security model,非常的奇怪。
Azure Synapse可以理解是这样的一个杂交动物。通过Ploybase的数仓功能,对接Azure Blob Store V2上的数据,然后在PolyBase的Hadoop部分跑Spark。注意的是,这个Spark并不是Azure DataBricks里面的Spark,而是开源版,或者是在开源版上改进的。当然主体来说TSQL是查询语言。
微软并没有止步于此,微软还和Data Factory整合,对接BI工具,更重要的,还提供了类似Azure DataBricks里面的Notebook的体验。支持用户用多种语言进行查询。

与之对应的,线下的SQL Server 2019,有很多的功能性能的提升我就不展开了。比如说微软终于第一次支持用户用JAVA来写SQL Server的UDF了。这些都很好。
本文关注的核心在于其数仓部分的PolyBase的增强。PloyBase这个传统意义上可以理解为Data Federation。之前支持Hadoop系统,新版2019的SQL Server支持的范围进一步扩大了,连MongoDB这样的数据库也能通过外表连接。

所以大家大可认为2019的SQL Server是线下的PolyBase增强版,而Synapse则是线上的PolyBase和Data Lake的合体。两者估计共享了很多的代码。
微软演示了自己跑查询怎么样比BigQuery牛逼。BigQuery至今也是谷歌云大数据上最成功的服务,没有之一。如果微软真的那么牛逼的话,也许可以有个漂亮的仗。
但是微软在数据领域的做法,总给人感觉比较不靠谱。强调TSQL作为查询语言,对于目前日益丰富的数据分析需求来说无疑是个大问题。也许是最大的问题。Notebook这个体验加进来也许是个好的开端。
但是总而言之,微软做数据的那些人,最擅长的就是把好的牌打烂,更不用说本来已经不怎么好的牌,正常来说只能烂上加烂了。我对这些人信心不足。所以我猜,事不过三的尝试估计免不了屡战屡败的结果。
继续阅读