Teradata “败走”,数据技术在中国“踩”不出水花?

有什么样水平的甲方,就需要匹配什么样水平的乙方。


来源 | 阿朱说


昨天,Teradata 撤出中国,我想起了我在 20 年前做的数据仓库项目。想当年 Teradata 是数据仓库的代名词,就如同现在搜索东西好多人说百度一下一样。


可惜我没有用过 Teradata。2002 年,我基于 SQLServer 的数据仓库+商业智能做了一套所谓的决策支持系统。决策支持系统 DSS,这样的名字在当年很流行。


01


20 年前的数据来源和现在仍然差不多:


不少来自 Excel,那就 ETL 抽进来;

有些想要采集的数据没有应用软件,那就用 OA-无代码表单做个简单应用录入进来,然后再 ETL 抽进来;
有些数据是专门的应用软件沉淀下来的,ETL 抽进来。

所以第一个需要的就是 ETL 工具。我是 2013 年以前用 SQLServer 套件,记得 SQLServer 的 ETL 工具被命名为 Integration Services。


02


多种数据来源的数据抽进来,因为他们都来自不同系统,所以有些公用的数据事实上是主数据,但是过去企业上应用都是一块块上的应用,财务部门上财务软件供本部门的财务人员内部使用,销售部门上销售软件供本部门的销售人员内部使用,采购部门上采购部门供本部门的采购人员内部使用,所以事实上的主数据都是不统一的,事实上的同一个东西,在不同系统有不同名字、不同编码、不同字段。


在日常应用软件各自部门使用时没啥问题,但是这次要做企业整体的决策支持系统,要给老板看数据,这就必须要做统一。所以必须要有主数据管理系统,这就涉及到了 MDM (Master Data Mgt.)


03


主数据要人为地定义下来标准,然后做清洗-整合-统一,或者以谁为主做互相映射,这就涉及到主数据的复制分发或同步。我记得 SQLServer 有一个专门的 Replication Services。现在在新一代大数据技术中,大家更经常使用 Kafka。


04


除了主数据放在 MDM 里,那些业务数据 ETL 来清洗好,就放在事实表里。这就涉及到 ODS 服务 (Operational Data Store),以便下一步在数据仓库里建立模型-建立模型维度,然后把数据从 ODS 里再抽取到数据仓库里,按照维度存储取来,以后好做多维分析。


企业数据往往是文本型、结构性的,所以过去的 ODS 最擅长处理这类数据。互联网公司的数据更加多样化,博客文章、邮件、IM 消息、文档、图片、视频,所以才发明了 Hadoop来充当数据湖。不过 Hadoop 数据湖擅长处理非结构化、多媒体数据,反而又不擅长处理文本型、结构性数据,所以现在人们又在探索湖上架仓、湖仓一体,如 Delta、Hudi、Iceberg 就是这么探索着。


05


下一步就涉及到了数据仓库。我学习到的数据仓库都是多维数据仓库。但是现在很多人说数据仓库就是个虚拟概念,不需要非得用多维数据仓库,普通的关系数据库就能搞数据仓库。这就让我比较懵,这和我的经历不一样。我想最起码你也得用 OLAP 型数据库,不能用 OLTP 型数据库。


所以对于中国客户,目前的现状主要是出复杂的二维报表,而不是做多维分析,我的建议是不要搞多维数据仓库,不要用真正的数据仓库产品,用 OLAP 型数据库搞就行了。所以我更建议推荐类似 Greenplum、ClickHouse、Apache Doris 就可以。


但是我坚决反对用 OLTP 关系数据库搞数据仓库。有的人是直接在 OLTP SQLServer 关系数据库或者 MySQL 关系数据库上搞所谓的数据仓库,把所谓的数据仓库、报表、商业智能都混为一谈,要么都叫数据仓库、要么都叫商业智能,真是偷梁换柱得可以。


06


按照领域-按照主题-按照模型-按照维度,把数据从 ODS 入仓。但是入仓过程中还有一个小插曲。因为有些复杂分析指标需要复杂计算出来,还得保存起来,以便以后做历史对比。


所以,需要专门的多维计算编程语言来做某些指标的复杂计算,计算出来结果再放进数仓里。像 SQLServer 里有 DMX (多维扩展开发语言) 就是干这事用的。现在在开源新一代大数据技术中,其实 Flink 或 Spark 它们干的就是这个事。


07


数据终于全都按维度条状入了仓后,人们做的最常见的事情就是出复杂分析报表,需要很多关联性的指标都配比出现在同一张报表里。所以这里就涉及到 SQLServer 的 Rerport Service。


很多人不搞多维数仓,在 OLTP 关系数据库上直接出复杂配比综合分析报表,我见过有人写了 1000 多行的存储过程来出一张报表,根本很难阅读看懂、修改、调试跟踪。


在 90 年代用 Powerbuilder 出复杂报表时有个工具叫 Cross Table,我们叫交叉报表,我看在 Excel 里,Pivotal 叫透视表。这都是做复杂配比综合分析平面报表的常见工具。


08


还有一种根本不是报表,但被人们称作报表。我把它称为查询 Query,只不过用 Grid 显示为 Table 格式。我想这类东西就不应该用多维数据仓库搞,只需要从 ODS 事实表里出就行。不过现在新一代大数据技术中,主要使用 Presto 这样的大数据查询引擎来搞。


SQLServer 商业智能套件里还有一个服务叫 Index Services,就是全文检索服务。不过现在新一代大数据技术中,主要使用 ElasticSearch 这样的大数据搜索引擎来搞。


09


还有一种更复杂的可视化分析,它既带有可视化的特点,又带有分析的特点,我们把它叫做 Cube。


我在 SQLServer 商业智能套件里、在 IBM Cognos 套件里,都使用过 Cube。它可以上钻下钻、旋转、切片。我看在新一代大数据技术中,Kylin 就在重点做这个。


10


除了 Cube 这种既带有可视化特点又有分析特点的工具之外,还有一种真正的分析,在 SQLServer 里叫 Analysis Services,也有人称作是数据挖掘。


我用 Analysis Services 做过分类算法、聚类算法、决策树算法、线性回归算法、时序算法。当时微软还没提供神经网络算法。现在新一代大数据技术 Spark 套件中,也有 MLLib,就是机器学习算法库,也是这些。不过现在人工智能 Tensorflow 平台和 Pytorch 平台上的,都已经是深度学习的各种算法和模型了,这和机器学习算法库是另外的路数了。


11


我几乎把 SQLServer 商业智能套件里的产品都用了遍,不过事实结果是:


卖得不好,可以在宣传和打单时展示实力,但实际上没卖出几套。

实施很复杂,要做很多 SQL 编写工作。过去的实施顾问还会数据库结构和 SQL,现在的实施顾问只会功能界面配置了。虽然已经内置了不少业务分析模板,但是总要做一些从展示修改到数据计算修改到数据 ETL 抽取修改的东西。
客户使用过程中,倒是出了很多内置的复杂的配比指标报表可视化和图表可视化,但是很不幸,客户业务专业能力水平比较低,看不懂这么复杂的配比综合报表。

真是有什么样水平的甲方,就需要匹配什么样水平的乙方。


12


你问我这十多年来产生了那么多新一代大数据技术,到底解决了啥问题?


我想说的是:这些新一代大数据技术,主要适用于互联网公司,他们主要是多模态的数据,而且是真正的海量数据。而中国企业内部应用,主要是文本型结构性数据,而且是假的海量数据 (每天连十万条重要的业务数据记录都产生不了)


所以我的观点是:中国企业内部应用数据分析,建议还是用 20 多年前老的商业套件来搞,不要赶时髦。因为新一代大数据技术,又不适合,又更复杂,没那么必要。


不过,我也知道我这么说也是白说。乙方总得要讲新故事新产品,管你需不需要新一代大数据技术,搞就是了。挣钱嘛,不寒碜。



话题互动


近日,大数据分析/数仓软件巨头 Teradata 宣布基于中国未来商业环境评估,退出在中国的直接运营,后续将进入中国公司关闭程序,涉及 1200 多名中国员工!对此,你怎么看? 你认为会产生什么样的影响?


         


来源:本文经授权转载自微信公众号【阿朱说】,原标题为《听闻 Teradata 退出中国,我想起了我经历过的一个数仓项目》。


精选好文







本文来自牛透社