周金可,就职于听云,维护MySQL和GreenPlum的正常运行,以及调研适合听云业务场景的数据库技术方案。

听云周金可

9月24日,周金可将参加在北京举办的线下活动,并做主题为《GreenPlum在听云大数据实时分析的实践》的分享。值此,他分享了PG、工作上的一些经历和经验。

免费报名链接:http://click.aliyun.com/m/6101/

正文:

周金可刚参加工作时是做系统运维的,后来慢慢接触了各种数据库,开始对数据库感兴趣,经过一段时间的积累后转向了DBA。

“在我加入听云时,恰好是业务快速增长的阶段,后端我们的应用以及数据库经受了比较大的考验。去年大多数时间是在做扩容,我们的MySQL集群由最开始的数台实例扩展到现在的数百台实例。”他经历了听云业务量的爆发式增长。

而正是这种增长,让周金可和PG有了亲密接触:“某个模块的单表数据量达百亿级,MySQL Shared方式已经无法保证查询性能,所以又采用了GreenPlum MPP的方案来解决性能问题。”

“整个过程中分拆扩容的工作量是比较大的。而且在数据量巨大的情况下,MySQL Shared造成的数据倾斜问题给我们造成了比较大的困扰。目前我们对MySQL的中间件做了一次定制,支持将指定的某个用户的数据路由到一个单独的实例上,然后垂直扩展该实例的配置。但现在我们更倾向于Greenplum的方案,合理的涉及distribution key是可以完全避免数据倾斜的问题。”

因此,他本次分享的就是GreenPlum在听云大数据实时分析的实践,内容涉及具体应用场景GreenPlum选型,以及迁移至GreenPlum架构后与原来MySQL架构的性能对比。

除此之外,周金可也谈了自己为什么喜欢Golang的编程风格、听云内部的数据库管理平台的经历,以及对上段时间Uber从PG切换为MySQL一事的看法。

更为具体的内容,请查看以下完整采访:

云栖社区:请介绍下你以及所从事的工作。

周金可:我叫周金可,目前就职于听云。听云是一家在APM领域深耕10年的公司。我是在15年初加入听云,有幸经历了听云业务量的爆发式增长。

听云后端当前的数据库架构主要是MySQL分布式集群,也有一部分数据是采用GreenPlum的方案。而我们即将发布的CDN Controller产品后端,则采用的是Postgresql+Citus分布式方案。

目前主要的工作内容就是维护MySQL和GreenPlum的正常运行,以及调研适合听云业务场景的数据库技术方案。

云栖社区:你是怎么走上DBA道路的?目前工作中有哪些亮点?

周金可:刚参加工作的时候是做系统运维的,后来慢慢的接触了各种数据库,开始对数据库感兴趣,经过一段时间的积累后转向了DBA。

在我加入听云时,恰好是听云的业务快速增长的阶段,后端我们的应用以及数据库经受了比较大的考验,去年大多数时间是在做扩容,我们的MySQL集群由最开始的数台实例扩展到现在的数百台实例。

今年我们主要是做了一些优化的工作,比如使用ToKuDB存储引擎替换线上MySQL实例的InnoDB实例,大幅压缩数据并提升性能。将原来放在MySQL上的一部分业务数据迁移到Greenplum上,查询性能提升几百倍。当然这只是在我们的场景中,单节点MySQL跟Greenplum集群的对比,MySQL还是很优秀的DB。

云栖社区:你提到,比较喜欢Golang的编程风格,能聊下原因吗?你还使用Golang开发了听云内部的数据库管理平台,请介绍下这个平台,以及开发中一些记忆犹新的事吧。

周金可:Golang语法比Python简单,编程风格趋于脚本化但功能比shell强大很多,原生的并发变成模型和跨平台特性让我觉得Golang可以作为日常运维工作中的一把利剑。

数据库集群规模比较大,不可能每天对数百节点做人肉巡检,后来接触到了Golang的Web框架Beego,所以决定写一个数据库管理平台。这个平台会对MySQL集群中数百节点的数据量、qps、tps、慢sql等指标进行收集,然后在页面上以曲线图的形式展现,还会有一些汇总的报表数据,比如每月每个业务库的数据增量情况以及每天慢sql数量top12的实例列表。对慢sql做分析汇总,支持查看慢sql执行计划。

数据查询提取的窗口,支持数据的查询并以excel格式导出。还有一些我们自动维护表分区的一些监控。

云栖社区:作为国内较大的应用性能检测平台,听云在数据库上的演变过程是什么样的?都遇到哪些挑战,以及怎么解决的?

周金可:听云数据库经历了由MySQL单机到MySQL分库分表分布式架构的演变,后来数据量继续膨胀,又使用压缩引擎对数据进行压缩。某个模块的单表数据量达百亿级,MySQL Shared方式已经无法保证查询性能,所以又采用了GreenPlum MPP的方案来解决性能问题。

整个过程中分拆扩容的工作量是比较大的。而且在数据量巨大的情况下,MySQL Shared造成的数据倾斜问题给我们造成了比较大的困扰。目前我们对MySQL的中间件做了一次定制,支持将指定的某个用户的数据路由到一个单独的实例上,然后垂直扩展该实例的配置。但现在我们更倾向于Greenplum的方案,合理的涉及distribution key是可以完全避免数据倾斜的问题。

云栖社区:你是什么时候接触GreenPlum方案和PG的?目前在应用上积累了哪些经验?

周金可:接触Greenplum和PG有几个月的时间了,目前GreenPlum刚刚上生产,在前期调研的时候积累了一些使用场景的经验,对于GPDB维护上的经验,正在积累的过程中。

云栖社区:接下来,你还将如何拥抱PG?

周金可:我们一个新产品后端DB使用到postgresql新版本的jsonb特性,兼顾性能和运维的成本考虑。目前来看,除了PG暂时没有可替代的方案,所以我们到时候会采用citus+postgresql的方案。

云栖社区:在本期线下沙龙,你分享的内容将包括哪些内容?作为一个刚接触PG的技术人,你对与会者有什么寄语吗?

周金可:主要分享的是GreenPlum在听云大数据实时分析的实践,会从分享一下我们具体应用场景GreenPlum选型,以及迁移至GreenPlum架构后与原来MySQL架构的性能对比。

Postgresql发展还是挺迅速的,而且国内越来越多的公司也开始尝试使用Postgresql。PG的一些特性也确实很多吸引力,希望越来越多的使用者分享使用经验,让PG社区变得越来越好。

云栖社区:最后:作为一个MySQL DBA,你对上段时间Uber从PG切换为MySQL一事怎么看?

周金可:Uber的做法可能会对大众在DB的选型上产生一些误导,互联网公司在不同的阶段随着架构的演变会有技术的迭代,往往都会寻求新的技术方案来解决当下的一些痛点问题,所以还是那句话适合自己的就是最好的。

MySQL有可能更适合Uber现阶段的业务场景,据说Uber之前曾从MySQL迁移到PG,所以也很难说不是Uber DBA的个人情怀。

但这篇文章带来的影响还是很糟糕的。

周可金将在9月24日在开源数据库企业应用实践的会议上与大家面对面交流Greenplum技术,欢迎大家免费报名参会、

专访周金可:我们更倾向于Greenplum来解决数据倾斜的问题的更多相关文章

  1. Greenplum 调优--数据倾斜排查(二)

    上次有个朋友咨询我一个GP数据倾斜的问题,他说查看gp_toolkit.gp_skew_coefficients表时花费了20-30分钟左右才出来结果,后来指导他分析原因并给出其他方案来查看数据倾斜. ...

  2. Greenplum 调优--数据倾斜排查(一)

    对于分布式数据库来说,QUERY的运行效率取决于最慢的那个节点. 当数据出现倾斜时,某些节点的运算量可能比其他节点大.除了带来运行慢的问题,还有其他的问题,例如导致OOM,或者DISK FULL等问题 ...

  3.  打开APP  04 | 网络通信:RPC框架在网络通信上更倾向于哪种网络IO模型? 2020-02-26 何小锋

     打开APP  04 | 网络通信:RPC框架在网络通信上更倾向于哪种网络IO模型? 2020-02-26 何小锋

  4. Cordova 讲义 1 – 周金根

    讲义下载地址见:   http://www.zhoujingen.cn/blog/7905.html   最后下载链接   移动应用形成了iOS.Android和windows phone三大阵营: ...

  5. 17级-车辆工程-周金霖 计算机作业 MP4音乐网站

  6. poj 3735 Training little cats(矩阵快速幂,模版更权威,这题数据很坑)

    题目 矩阵快速幂,这里的模版就是计算A^n的,A为矩阵. 之前的矩阵快速幂貌似还是个更通用一些. 下面的题目解释来自 我只想做一个努力的人 @@@请注意 ,单位矩阵最初构造 行和列都要是(猫咪数+1) ...

  7. FIREDAC连接MSSQL 2000报不能支持连接MSSQL2000及更低版本的解决办法

    FIREDAC连接MSSQL 2000的时候会报错,原因是MSSQL CLIENT11或MSSQL CLIENT10客户端驱动程序已经不支持连接MSSQL2000及更低版本的数据库. 解决办法: 设置 ...

  8. Mysql 查询当天、昨天、近7天、一周内、本月、上一月等的数据(函数执行日期的算术运算)

    注:where语句后中的字段last_login_time 替换成 时间字段名 即可 #查询昨天登录用户的账号 ; #查询当天登录用户的账号 ; #查询所有last_login_time值在最后1天内 ...

  9. 企业实践 | 如何更好地使用 Apache Flink 解决数据计算问题?

    业务数据的指数级扩张,数据处理的速度可不能跟不上业务发展的步伐.基于 Flink 的数据平台构建.运用 Flink 解决业务场景中的具体问题等随着 Flink 被更广泛的应用于广告.金融风控.实时 B ...

随机推荐

  1. docker私服registry管理镜像

    前言 首先试想这样一个场景:当在自己的机器上(docker中)构建了mysql镜像,eureka镜像等等微服务镜像,这些镜像有可能需要放到其他的机器上docker环境中去运行,实行分布式架构部署.但如 ...

  2. 杂记---Mongo的Invalid BSON field name $gte

    1.前言 这几天使用mongo的时候遇到了一个异常:Invalid BSON field name $gte,该问题可能会有很多小伙伴会遇到,因此记录一下解决过程.起因是用JAVA翻译一个其他语言写的 ...

  3. 程序使用suid应注意的策略

    安全要求程序应使用最小权限执行,然而有的程序由于特殊性,往往在执行某段代码的时候需要提高权限. 由于suid的容易使用特性,很多编程人员往往会直接使用它来实现提高权限的功能,而不是去做代码权限分离.这 ...

  4. 前端知识概述----公司内部的一次分享 分类: JavaScript HTML+CSS 2015-04-16 21:24 2593人阅读 评论(2) 收藏

    因为公司内部一个纯后端团队要做一些适合自己团队的web页面,所以就有了这次分享.知识都是很基础,有的知识也只是做了解简单介绍.主要是想让大家对前端有一个基本的了解.现在做一个总结.欢迎大家拍砖. 知识 ...

  5. postman—环境切换和设置变量

    postman提供了environment管理功能,想要在多个环境中测试,比如在测试环境.灰度环境.生产环境等,只需要用同样的接口,切换下环境即可,非常方便.具体步骤: 一.切换环境 1.点击界面右上 ...

  6. ID3、C4.5和CART决策树对比

    ID3决策树:利用信息增益来划分节点 信息熵是度量样本集合纯度最常用的一种指标.假设样本集合D中第k类样本所占的比重为pk,那么信息熵的计算则为下面的计算方式 当这个Ent(D)的值越小,说明样本集合 ...

  7. Boosting和Bagging的异同

    二者都是集成学习算法,都是将多个弱学习器组合成强学习器的方法. 1.Bagging (主要关注降低方差) Bagging即套袋法,其算法过程如下: A)从原始样本集中抽取训练集.每轮从原始样本集中使用 ...

  8. php在浏览器禁止cookie后,仍然能使用session的方法

    1.a.php页面 session_start(); $_SESSION['msg'] = "i love you"; $sn = session_id();//获取当前sessi ...

  9. ARM的体系结构与编程系列博客——ARM体系变种

    ARM体系变种的简介 有人会很奇怪一件事情,ARM居然会变种,不会是基因突变了吧,呵呵,其实ARM变种通俗一点来讲呢,就是ARM突然具备了一种特定的功能!并非是基因突变哦!ARM是reboot好不好? ...

  10. IOS项目之弹出动画一

    小区宝首页导航栏左边有一个物业按钮,点击时会出现一个视图动画,之前用的是一个POP第三方,想着几个POP动画就要引用一堆的第三方有点麻烦,就试着自己写了一下,功能实现了,下一步就是优化将其封装一下.下 ...