你好,游客 登录 注册 搜索
背景:
阅读新闻

NoSQL对未来大数据发展的意义何在?

[日期:2015-08-12] 来源:CSDN  作者:蒲婧 [字体: ]

  为了帮助IT从业者职业之路拥有更多收获,在诸多C粉的殷切期待下,由CTO俱乐部打造的CTO线上讲堂自登场以来获得大家好评。本期邀请SequoiaDB巨杉数据库联合创始人王涛带来“NoSQL对未来大数据发展的意义何在? ”的创业主题分享。

  想与业界大咖零距离沟通,欢迎加入CTO讲堂微信群(8月13日,新一期讲堂报名请拖至文末查看)

  演讲嘉宾:SequoiaDB巨杉数据库联合创始人 王涛

  嘉宾简介:王涛,SequoiaDB巨杉数据库联合创始人,他曾就职于IBM多伦多实验室IBM TorontoLab(DB2 UDB Development Lab), 曾经是DB2领域的专家,作为IBM DB2全球最高技术专家小组的成员,参与IBM下一代大数据平台的架构规划,精通数据库内核及体系结构。在IBM多伦多实验室工作八年后,王涛选择回国创业。目前担任巨杉数据库CTO及总架构师,成功研发了国内唯一一款开源新一代分布式数据库——SequoiaDB(巨杉数据库)。作为公司创始人之一,王涛参与公司发展战略规划,负责整个数据库研发项目的管理,包括数据库系统的构建,管理公司的整体核心技术,组织制定和实施重大技术决策和技术方案等。目前,公司产品已经开源,客户遍布互联网、金融、电信等各大行业。

  公司简介:巨杉数据库作为国内唯一一家完全不基于其他任何开源数据库产品开发的新型商业数据库,专注于新型NoSQL分布式数据库的研发,核心软件产品SequoiaDB(巨杉数据库)(未使用任何开源数据库引擎和代码),由前IBM DB2资深研发成员在北美完成原型设计和内核开发。主要向政府、电信、金融、电力和互联网等拥有海量业务数据的行业提供大数据基础数据库,主要客户中已有多家世界500强企业,其中包括国内知名银行、电信及互联网企业。

  以下是8月6日CTO讲堂现场完整速记:

  主持人:今天讲堂开始了,首先欢迎王总介绍下自己。

  王涛:大家好,我叫王涛,现在是SequoiaDB巨杉数据库的创始人兼CTO :)我之前在北美的IBM DB2 Lab工作了很多年, 也是DB2核心的研发团队的一员。

  我们从2011年开始就在北美做数据库的原型,到了2012年,我就带着团队回国创业,也就是创立了SequoiaDB巨杉数据库。我们SequoiaDB是2012年正式成立的,并没有基于其他的开源数据库引擎。目前,我们SequoiaDB已经发布了8个正式版本,也成为了海内外业界一致认可的一款新型分布式数据库产品,产品客户也遍布互联网、金融、电信等各大行业。

  主持人:您是在什么样情况下开始的创业之路呢?

  王涛:IBM的近十年工作时间,我对整个数据库技术和行业有了比较深刻的认识。而在IBM这样的大公司当中,创新的阻力不只是来自于外部,公司内部对于颠覆性的创新也有很多阻碍。为了做出一款颠覆性的创新产品,我们还是决定自己创业,做自己的事业。

  主持人:最初的创业方向选择方面是怎么构想的?为什么选择做国内第一款开源的NoSQL?

  王涛:对于创业方向,一直以来因为也是在数据库开发的前沿,所以其实对行业和技术看得也比较清楚。当时2011年大数据这个概念在北美那边已经成体系了,而NoSQL也就是非关系型的数据库技术,前几年兴起的新型数据库技术,目前在北美已经得到了广泛的应用。比如MongoDB Cassandra这些大家都是耳熟能详了。

  可是在国内,使用这些新型数据库的企业、个人仍不多,更别说做相关开发的了。所以基于我们团队的技术实力、再结合国内巨大的市场,我们决定做国内第一款开源的新型分布式数据库。

  主持人:请您谈谈国内外数据库技术的目前格局以及市场情况。

  王涛:在国外,新型分布式数据库已经大大冲击了传统数据库的市场,不管是互联网企业应用还是企业大数据应用,在数据库排行帮上MongoDB等几款新型分布式数据库早已跻身前十。

  相比来说,国内对NoSQL这样的新型数据库应用仍处在发展期,但是随着如今“国产化”进程的加快,国产的、开源的新型数据库市场在近期已经呈现了飞速发展的趋势。而巨杉数据库也是目前这一市场当仁不让的领导者。

  主持人:那么您认为NoSQL技术对于未来大数据发展的意义体现在哪?

  王涛:NoSQL灵活的存储结构,根本上解决了多样化、非结构化数据存储的问题。同时,分布式则解决了数据容量的问题,同时大大降低了成本。可以说,NoSQL技术就是为了未来的大数据发展而生的。

  比如说作为历史数据平台,很多企业都开始把过去存在带库里面的数据搬到大数据平台上面。这样的话数据不同时期可能随着应用的升级,数据结构产生了变化。怎样对于这些变化的数据有很好的管理和检索方式,这就是新型数据库擅长的地方。

  主持人:请介绍一下巨杉数据库目前的情况以及团队构成。

  王涛:经过近3年的发展,我们现在已经拥有了一支强大的研发团队。团队包括IBM DB2北美实验室资深核心研发成员,甲骨文、华为等公司的数据库架构师,还有腾讯、阿里巴巴等互联网公司的数据库开发工程师。

  其实除了经验丰富,更重要的是团队成员们都对技术有着最大的热情,这也是我们团队最宝贵的财富。

  主持人:可否用一些具体案例来详细介绍一下公司产品呢?

  王涛:具体案例比较多,比如在一些大型金融机构里面,大家在做大数据项目的时候第一个要做的就是对历史数据从带库上面的搬迁,把原本不能用的数据用起来。这类系统可以衍生出回单查询,用户画像等一系列对历史数据分析和实时应用类型的案例出来。

  另一大类型则是非结构化存储,也就是替代传统ECM企业内容管理软件的。比如原来EMC的Documentum或者IBM的Filenet。

  其他的还有一些dynamic schema的场景,和大数据Hadoop本身不一定相关,比如人口档案库,征信,产业链平台等很难事先定义数据模型的场景。

  主持人:我们来展开谈谈SDB的架构和存储模式吧。

  王涛:我们采取了文档型的存储模式,也就是JSON文档的存储方式。JSON的自描述特性,使得数据存储既实现了非结构化的存储,相比于KV等等结构,又更能体现数据的细节,更符合人类操作的思维。

  另一个大的优势就是存储的数据对于输入来说是自适应的。比如说传统关系型数据库一定要定义一个表模型才能放数据。每一条数据必须和表的定义一模一样。但是在很多新兴的应用中,事先定义一个完美的模型很难,所以数据库本身对输入数据的自适应非常重要。

  从数据库架构来看,SDB目前的架构使用的是典型的MPP架构,编目节点存储元数据,协调节点负责分布式系统的任务分发,数据节点负责数据存储和操作。数据节点可以动态的扩容。架构图如下:

  主持人:SDB有哪些突出的功能点呢?

  王涛:我就直接列几点吧:

  1)灵活存储结构;

  2)容量水平扩张;

  3)高可用特性(备份、读写分离、异地容灾);

  4)Spark/Hadoop深度集成(国内第一款深度集成Spark的数据库);

  5)事务功能、SQL语句执行、丰富的图形化工具等等。

  主持人:目前SDB的应用状况是怎样的呢?

  王涛:目前SDB的应用覆盖了多个行业,作为一款通用的大数据产品,SequoiaDB在大数据需求旺盛的传统行业应用广泛。包括中国银行、民生银行、中国移动、电信还有政府都得到大规模应用。在互联网行业,也有途牛、多盟、蓝港在线等企业在使用SequoiaDB。

  主持人:那么巨杉选择开源之路,收效如何?

  王涛:现在我们是完全开源的产品,得到业界广泛的认可。除了企业用户的选择,巨杉也获得了中国开源软件推进联盟(COPU)颁发的“2015年度优秀开源项目”奖。

  同时,开源之后,我们也产生了一大批的个人用户和技术“粉丝” :)目前我们的开源社区十分活跃,也有许多的资深开发者给我们开发了多种驱动和插件, python、C#驱动还有docker镜像等等。近期我们nodejs驱动很快也会正式发布,这个也是由社区的朋友主导,我们从旁边配合的。 :)

  主持人:下一阶段公司的战略中心和发展规划会聚焦在哪些方面呢?

  王涛:下一步,我们希望能在国内继续推进新型分布式数据库的影响力,让广大的开发者能更容易的运用“大数据”,解决更多的问题。

  此外,我们也会不断的将我们自己的数据库产品越做越好,也希望大家能多多关注巨杉。

  主持人:请介绍一下巨杉是怎样的工作氛围和工作模式呢?

  王涛:我们是一个年轻并充满活力的大家庭,工作氛围很自由开放,大家都会为了问题展开热烈的讨论。最重要的,是团队成员们都对技术有着最大的热情,这也是我们团队最宝贵的财富。 这也是带领我们团队前进的动力。比如我们现在基本每两周都会租个场子大家一起打打球,晚上有个聚餐。

  主持人:您在招人过程中,比较看重新人的哪些特质呢?在提升技术团队方面,有哪些思考和做法?

  王涛:技术、经验能力这些固然重要,但是我们更看重的是对我们所做的事业的热情。我相信只要有热情,加上个人的努力,每个人都可以成为资深的工程师。

  技术团队这方面我们每周都会组织一个技术交流,会有一个同事上来做一些分享。同时我们售前和开发团队会经常在一起聊。

  开发测试这边也有个制度,所有人都要定期轮岗参加客户现场的实施,第一手掌握现场工程师的在客户这边所面临的问题,真正深入了解客户需求。

  另外我们也非常鼓励大家参与开源项目,不管是使用开源项目,还是向开源项目里面贡献自己的代码,都是非常值得提倡的。

  对于售前销售来说,我们也鼓励他们写经验分享等文档,在内部形成一个知识库供所有人查看。

  主持人:公司主要通过哪些渠道引进人才?目前招人不易成为不少公司CTO头疼的问题,在招人方面有过哪些探索和经验分享?

  王涛:引进渠道除了传统的一些途径,其实产品的开源也更能聚集爱好者。我想我们作为一个底层开源项目,在这块最大的优势就是能够吸引社区爱好者粉丝的加盟 :)

  我们现在实施团队很多兄弟都是通过社区开始了解我们,从而对我们产生认同感的。

  主持人:您对开发者们有什么建议和忠告吗?

  王涛:其实也谈不上忠告。对于开发者,我也想从一个创业者的角度谈谈创业至今感触最深的一点。

  从有这个idea开始,我们的团队就决定从头到尾完全自己开发巨杉数据库,而不是基于某一个开源的项目进行“改造”。

  一方面,自主研发让企业拥有真正的主动权,不需要受制于别的技术,更能够形成自己独特的平台和生态圈;另一方面,我们作为拥有核心技术的厂商,也希望能通过这样一款自主研发的优秀产品,彻底扭转海内外业界对于国内技术领域特别是基础软件领域“没有过硬技术产品”的论断。

  最重要的一点,就是我对我们的团队和我们的技术拥有十足的信心。

  然而,对于大数据产品,特别是数据库这样一款底层而对性能、稳定性都有严格要求的产品来说,想要从头到尾完全自己研发,整个过程也绝不简单,其中也遇到了无数的坑和各种令人沮丧的情况,加班熬夜是家常便饭,算法调整代码重构也不少见,甚至还有砍掉或者重做整个模块或功能。但是我们都没有因此放弃,坚持勇于探索,最终也成功开发出了SequoiaDB巨杉数据库。

  所以不管是开发,或者是创业,我相信坚持创新、坚定信念,你的目标就一定可以实现。

  现场互动:SDB与DB2相比有哪些优势?

  王涛:SDB和DB2本身从体系结构上来看,对外最大的不同点就是,DB2不能用内置盘存储 :)

  为啥呢?因为DB2每个分区没有replicate的机制,这样如果使用内置盘,当一个机器掉电后,有可能写盘正写到一半,会造成数据页损坏无法修复。这样就使得DB2/oracle这种数据库必须使用SAN存储,也就是不可能用PC服务器集群。

  而SDB或者新型分布式数据库,其核心就是数据需要在多个节点复制,这样即使机器掉电造成磁盘损坏,也可以从另外的节点恢复回来。

  这也就是为啥说DB2这种数据库不能做到弹性扩张,因为他们必须依赖硬件的小机+存储设备,而不能是PC服务器集群。

  现场互动:SDB在事务处理方面有什么特点吗?

  王涛:事务处理SDB用的就是二段提交,和DB2没啥区别。spanner架构需要硬件的支持,而且还有很多潜在的问题。所以我们也在用二段的主流方式。

  现场互动:巨杉数据库使用典型的MPP架构,那么性能怎么样?比如对比Vertica。

  王涛:性能上来看,Vertica主要是列存储,适合的是数仓类分析。

  SDB是行存储机制,主要特点是数据自适应和弹性扩展,两者针对的场景不同。

  如果你让我在数仓上和vertica pk报表系统性能不如它,他在我们适合的ODS场景那就是我们的主场了。

  现场互动:SDB中应该有任务协调器之类的功能,请问是否使用的是生产者-消费者模式?对于多进程的锁如何处理?大体说下就行,给个思路。

  王涛:用的不是hadoop那种每个任务还要去调度器里面拿个id。数据库是每个连接下面会直接对应一个线程作为agent。你说的生产者-消费者模式一般在中间件比较常见,比如10000个连接下面跑200个线程来服务。但是对于数据库这种追求高响应速度的,每个请求直接通到特定的线程,没有生产者消费者的调度。

  基本上你看DB2/oracle/postgresql都是这种模式,一般业务会使用生产者消费者模式在中间件层做处理,把海量并发缩减到几百个数据库长连接。如果直接几万个上数据库,估计没有应用会这么开发的 :)

  现场互动: SDB和MySQL有什么区别呢?

  王涛:一个是传统的不能再传统的关系型数据库,一个是大数据体系下面的非关系型数据库。MySQL一般作为每个应用下面挂的数据库,对应一个特定的应用。而SDB很多场景是作为大数据平台这种级别存在的,适用于一套平台对应多种类型应用,可以支持在线离线业务的同时运行。

  可以说SDB和MongoDB是同一类型的数据库,MySQL和Oracle是同一类型的数据库。

  现场互动:分布式处理这块 SDB和Hadoop相比如何?

  王涛:我们和Hadoop是互补的定位。Hadoop是纯粹的为批处理做的平台,分为HDFS 存储和YARN调度层。

  我们和Hadoop协同工作的场景不少,主要都是我们作为Hadoop底层的数据库,这样hive的查询可以直接把查询条件下压到数据库使用索引加速查询性能。

  不过我们一般推荐使用Spark作为上层的分析引擎,交互式性能会更好。

  现场互动:我们现在用的有哪些产品是基于这个技术架构的?

  王涛:我们这边主要的产品就是sequoiadb,企业版里面和社区版相比在安全方面有了增强,同时和spark有一个一体化的大数据解决方案。

  现场互动:SDB和MSSQL比较而言,有什么最大的优势呢?MySQL 、MSSQL2014 、SDB 如果是大数据,仿真应用,该选择哪个,为什么?

  王涛:MSSQL实际上和MySQL差不多类型,都是属于传统关系型数据库的。一般来说MSSQL不会有人用于大数据,这里我们指的大数据基本上是几亿记录的数据量,可能会包含结构化和非结构化信息等。

  现场互动:自动化的生产纪录数据,能否也用SDB来玩呢?

  王涛:您说的自动化,在我的理解是不是就是IOT这类传感器数据?对于这类数据使用MSSQL可能会遇到一些坑,包括数据量很大检索和存储都很麻烦,而且硬件升级以后发送的信息可能包含新的内容,关系型数据库还需要不停调整表结构,无法做到自适应数据。

 

  我们一般见到的大部分IoT都会使用新型的分布式数据库,就算不是SDB,可能也是cassandra MongoDB之类的。





收藏 推荐 打印 | 录入:elainebo | 阅读:
本文评论   查看全部评论 (3)
表情: 表情 姓名: 字数
点评:
       
评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款