Vertica的中国故事:领跑者们

2022-02-22


在刚过去的十二月和一月,Vertica的亚太团队发起了一场故事比赛,用户用中文讲述他们创造性地利用Vertica来解决数据分析需求的故事。除了更加深入了解我们亚太地区的客户之外,我们还希望把这些案例和内容分享给全世界的Vertica使用者。
 
一开始我们以为收到10个提交的故事就不错了,喜出望外,最终我们收到了45个。这也使我们考虑额外设置一个特等奖,当然还有一等奖和二等奖!这些热情的回应让我们感到很开心,这里就把前三名的故事分享给大家。下面的内容可以看作故事的梗概。
 

第二名:宇通客车

坐落于河南郑州的宇通客车,是宇通集团的子公司。其中宇通集团是一个专注于客车制造业并且致力于机械制造、自动化和实业等战略业务的大型公司。
 
这个故事来自于Qin Chaofeng。Qin是大数据分析的领导,曾经参与了中国移动大数据平台Vertica数据仓库的建设、运行和维护管理。在宇通客车负责公司大数据平台和数据分析应用的团队中,他领导大数据分析团队。

 
我们选择Qin的故事是因为,他的故事易于理解,内容殷实,给接触Vertica的新手展示了Vertica的多样性。对于那些想要自己尝试一些新技术的Vertica使用者,也有指导意义。
 
行存储 vs 列存储

 
意识到很多人都是从传统的行存储数据库开始尝试他们的大数据计划,接触到了Vertica和列存储的优,让Qin先生开始了他的故事。他提供了下面的图来帮助新手理解不同的架构。
 
“举个例子,我们查询table1,table1有100列,用标准SQL语句来查询col1,col2,col3和col4的数据;”
 
SELECT COL1,COL2,COL3,COL4 FROM TABLE1;
 
“如果是行存储数据库,比如Oracle,数据库会扫描每一行的每一列,然后从中提取出col1,col2,col3和col4。然而,对于列存储数据库来说,只需要扫描每一行的col1,col2,col3和col4,对于IO来说,省去了另外96列的操作。“
 
 
 
说明列存储数据库对于查询巨大的进步后,Qin先生强调到:“除此之外,列存储的优势还有,可以根据列的数据类型来选择合适和压缩方式,从而提升IO性能。“
 
Vertica对比其他开源和商用产品
 
Qin先生用更多的图表展示了Vertica是怎么能替换Hive数据仓库计算引擎,“效率可以提高超过100倍“,他说;接着他展示了”Vertica也可以用作分析引擎来替代现有的Spark 查询,效率能提高数十倍。“
 
再简单对比了Greenplum,Kylin和Vertica OLAD引擎后,秦先生大概25行python代码“原来需要写出创建过程,比如一个线性回归模型。“
 
“使用Vertica的话,同样的操作只需要实时调用函数LINEAR_REG…,来处理数据,分析数据和算法挖掘以及可视化的应用,Vertica提供一步到位的服务。“
 

第一名:北京昆仑联通科技股份有限公司

创建于1998年的北京昆仑联通,致力于“让IT更简单,让业务更安全“,不断助力IT业务快速发展。他们现在发展成了本土一流的IT服务行业公司。他们的故事由王珂讲述,他是北京昆仑联通的技术顾问,持有Vertica ASP/CSP技术专家认证,精通”Gbase,Oracle和其他数据库“,领导和参与过PB级别的MPP集群实施,支持过超过20套MPP集群。他现在专注于为来自与不同领域的顾客,包括运营商/银行支付/商贸,提供MPP解决方案和技术顾问服务。

 
我们选择这个故事是因为其中刚度的创新型,王珂特别的技术理解和良好的沟通,他把他目前在数据库专精的角色定义为“典范“。
 
王先生的故事从今天爆炸的数据量增长,对于分析数据库的需求和MPP架构的性能需求,和存储分离的价值展开。着重讨论了Vertica的Eon模式的部署。他详细描述了一个“利用Docker模拟四台CentOS主机,利用MinIO作为共享存储来部署一个Eon模式的社区版Vertica的实验”,如下所示。

 
王珂接着展示了如何配置Docker网络,和如果部署一个单节点MinIO。例如:
 
配置MinIO

 
  1. 找到MinIO镜像
[root@docker ~]docker search minio
[root@docker ~]docker pull minio/minio
  1. 启动MinIO
[root@docker ~]# mkdir -p /data/minio # 创建minio目录
[root@docker ~]# docker run -itd --name minio --restart=always \
  --network vnet --ip 172.xxx.xxx.15 \
  -e "MINIO_ACCESS_KEY=minio" \
  -e "MINIO_SECRET_KEY=minio123456" \
  -v /data/minio:/data \
  -v /data/minio:/root/.minio \
  minio/minio server /data
[root@docker ~]#  docker ps -a

注:到这里,单节点MinIO已经部署完毕。对应的访问和密钥是minio和minio123456.
 
王珂接着展示了用户可以在MinIO控制台能看到的,还有:
  • 创建路径
  • 创建Vertica镜像
  • 自定义的搭建Docker里的镜像
  • 安装Vertica
  • 创建数据库
 
这些简洁明了的步骤应该能帮助Vertica新手理解,Vertica的Eon模式在公共存储和Docker上如何运行。感谢王珂!
 

特等奖


我们的特等奖来自于中国东部,是一名不愿意透露姓名的获奖者,但是提供了一个好例子,我们的评价是,“深度部署Vertica超过7年,有着深入的理解,牢固的部署经验基础,还有显著的指标来证明”,给予了这个故事“机枪的说服力”。
 
一个非常巨大的Vertica集群
 
“已经使用了Vertica7年,”并且“随着业务的发展,Vertica集群也在不断增长。到2020年,MPP数据主仓库节点数量扩张到了138个,这使得这个集群成为了其行业(也不愿意透露)中最大的单集群。”
 
但是,在这之前…

 
“在使用Vertica之前,数据仓库使用过多个迷你机RAC和SAN存储结构。随着业务增长,数据仓库也不断地在扩张,但是这种架构的扩张上限…并不足够满足他们的需求。分享式RAC也导致了指数级的节点间通信增长,显然不能再继续扩张下去了。同时,数据报表和分析计算报告性能也不能满足需求。急需一个好的性能,更低的花销,满足数据扩张的平台。”
 
使用Vertica
 
在知道了一些Vertica的优势以后-尤其是列存储,强大的数据压缩和速度,以及相对于行存储的更低花销,这个使用者讲述了Vertica如何天翻地覆地解决了困扰他们业务已久地问题:
 
“经过不断的建设和分布式数据库变换,传统架构的问题、迷你机和SAN存储已经变得无法提供足够的性能和可伸缩性,对于PB级别的数据量。现在,Vertica支持多种多样的商业决策制定数据服务支持。它大大提高了系统的性能和数据分析能力,同时还降低了开销和提高了效率。”
 

“拿用户表举例。传统数据库总结分析需要1835秒;Vertica需要299秒。足足降低了1536秒,大大提高了数据分析能力。总体上,Vertica数据库比传统数据库快了2个小时,并且组评估的及时性,报表和关键业务指标都能得到有效保障。”
 
下面是这几篇文章的原文: