公司介绍

深圳市小亿网络有限公司是一家互联网科技公司,我们成立于2013年12月16日, 以“打造一个一站式多元化技能共享平台, 用共享经济的理念让每个有专业技能的人各尽所能”为目标,通过品牌万师傅, 满足TO B、TO C用户家居服务方面的需求, 为家居电商企业、物流公司、线下家居企业等B端用户提供完整一站式售后解决方案。

多年来,我们坚持走自主创新之路,凭借一群优秀的技术团队不断创新, 自主研发出OTS管理软件、接单易软件、积分商城软件等12项专利;并利用大数据应用和云计算技术, 推出LBS地图定位技术,匹配就近师傅,缩短运输成本和时间成本;创建师傅诚信体系数据库, 让师傅服务次数、服务技能等清晰可见,成为服务技能界的征信系统;研发强大的ERP系统, 实时追踪服务进程,满足用户需求,并于2017年8月成为国家高新技术企业。未来,我们将不断探索,通过新技术和新模式,打造完整的技能共享生态闭环,让所有拥有技能的人分享互连。

系统架构

万师傅:系统架构

万师傅通过阿里云产品搭建了的完整的大数据架构,重点环节为离线计算、数据的实时处理和数据展示,在各个环节的技术选型方案中都涵盖了多个阿里云产品与服务。本案例为您介绍各个环节的选型原则与详细方案。

离线计算

我们的团队成员大都是Hive方向或是算法方向出身。为追求上手简单、专注数据的分析和挖掘、减少不必要的学习成本和费用成本,使用了阿里云MaxCompute。

数据源共包含三类: 关系型数据库中的数据、服务器上的日志文件、前端埋点日志。

图 1. 万师傅:离线计算
万师傅:离线计算

关系型数据库中的数据,使用dataworks 中的“数据集成”功能,定时离线同 步到MaxCompute 中; 其他两类数据,以及关系型数据库的Binlog,直接使用了万能的“日志服务 SLS”。WebTracking 支持直接收集HTML、H5、iOS 和 Android 的日志;Logtail 支持收集服务器上的日志文件,以及关系型数据库的Binlog。数据都收集过来之后, 再定时将数据投递到MaxCompute 中; 如上两个步骤,完成了三类数据的收集。比业界常见的Flume+Kafka、Kettle、Logstash 等方式,上手更快、维护更简单。

图 2. 万师傅:数仓的分层模型
万师傅:数仓的分层模型
数据仓库的分层模型,大体的思路和网上烂大街的数仓分层原则相似,总体分 ODS、DW、RPT 三层。具体实践的过程中,根据我们的实际情况,慢慢形成了我们自己的风格。
  • ODS 层,大部分和数据源中的数据一样,也有极少部分经过了简单的 ETL、或者只截取了与统计有关的字段。数据已采用了其他备份方式,所以这里不再需要使用MaxCompute做冷备。
  • DW层是最核心的数据仓库层。由于公司技术正在朝着微服务转型,系统、数据库拆分得越来越细,对数据的统计分析很不利。所以我们依靠数据仓库层,将相关的数据放到一起,便于上层的开发、更有利于日常的临时数据需求的快速响应。数据仓库层的数据结构,不会随着微服务系统和数据的拆分而变化,让系统拆分对于这套离线数据分析的影响终结在这一层,不渗透到更上层。
  • RPT层的具体做法,市面上有很多种。根据我们的实际情况,决定采用按业务划分的方式。曾经我们也尝试过按数据产品划分,但是时间长了,出现了几个严重的问题。首先,不同数据产品中对于相同指标的定义混乱,导致各个部门对于数据没有一个统一的概念。其次,技术上的系统拆分的影响范围,随着数据产品的增多而大面积扩大,极易出现修改遗漏的现象。

配套MaxCompute一起使用的Dataworks,是一个全能型的可视化工具,集成了几乎一切我们使用MaxCompute时所需要配套的功能,也解决了很多开源产品中无法解决的痛点,例如:可视化调度、智能监控告警、数据权限控制等。实际使用时,我们的数据在MaxCompute中的流转,全部是通过MaxCompute SQL节点和机器学习节点进行的。定时依赖+调度依赖+跨周期依赖,也让方案的设计变得更灵活。 业务流程是按实际业务模块划分、没有按照数据产品划分,这样可以解决“找任务难”、“不同团队对相同指标的定义不一致”等问题。 当某个业务有变更时,可以快速定位到需要配合修改的任务都有哪些,有效地避免了遗漏。 技术文档的同步更新一直是业界难以解决的痛点,数据字典也不例外。按照业务模块划分了之后,有新增指标时,更容易发现是否已有相同或相似的指标,即使数据字典更新不及时也不会有大影响。

实时计算

团队初始成员均为Java 出身,并且我们当前没有、未来也不准备拥有自己的 Hadoop 集群。综合考虑,采用了阿里开源的JStorm作为核心的流式计算引擎,同 时也在尝试业界最新的Flink,为未来做准备。至于没有使用阿里云商业版的“实时 计算”,完全是出于成本考虑,在我们的场景下,自建JStorm 集群的成本会远低于 使用“实时计算”。 与核心的流式计算引擎相配套的中间件及数据存储,使用的全部都是阿里云的产品,开箱即用、省去运维烦恼。

选用的产品:
  • 消息队列
    • 日志服务SLS这款产品,大于等于开源组合ELK,不仅有日志采集、搜索引 擎、分析展示,还有消息队列、监控告警等功能,价格也很合理。尤其,这几个功能 的组合,可以轻松实现业务日志告警、nginx监控等等使用传统方式要开发很久的需 求。如果单纯作为消息队列使用,还可以关闭索引,以节省费用。
    • 消息队列RocketMQ的使用,主要看中了“定时延时消息”这一功能,可以 实现很多定时延时任务的需求场景。
  • 缓存:使用Redis进行数据缓存。
  • 数据库
    • RDS for MYSQL,与MYSQL 一致。
    • PolarDB,阿里云自研的云原生数据库,与RDS价格一致。对于使用者来说,它是一个可以支持更高读并发、单实例容量更大的MYSQL。可以帮助我们建立离线数据中心,也解决了“所有数据库的查询都要先经过Redis 缓存”的问题, 节省了少量Redis的费用。
    • TableStore,这款产品的初衷应该是想要对标开源的HBase,主要用于单 一索引、庞大数据量、单条或小范围检索、高并发、低延时的查询场景。在单条查询 时,性能几乎可以媲美Redis,而且也拥有TTL 功能。被我们大量使用在用户画像、 幂等校验等场景中。

数据展示

前端产品的选型原则很简单,由于我们的团队没有专门的前端开发,所以只能选择阿里云的产品,或者免费、可对接的开源产品。

我们使用了以下两款产品进行数据的可视化展示:
  • QuickBI 主要用于日常的数据展示、分析,帮助运营、产品等部门进行决策。
  • DataV 主要用于非交互式的数据展示场景,例如展会、大屏等。

相关产品

  • 大数据计算服务 · MaxCompute

    MaxCompute(原ODPS)是一项大数据计算服务,它能提供快速、完全托管的PB级数据仓库解决方案,使您可以经济并高效的分析处理海量数据。

    更多关于阿里云MaxCompute的介绍,参见MaxCompute产品详情页

  • DataWorks

    DataWorks是一个提供了大数据OS能力、并以all in one box的方式提供专业高效、安全可靠的一站式大数据智能云研发平台。 同时能满足用户对数据治理、质量管理需求,赋予用户对外提供数据服务的能力。

    更多关于阿里云DataWorks的介绍,参见DataWorks 产品详情页

  • 日志服务 SLS

    行业领先的日志大数据解决方案,一站式提供数据收集、清洗、分析、可视化和告警功能。全面提升海量日志处理能力,实时挖掘数据价值,智能助力研发/运维/运营/安全等场景。

    更多关于日志服务的介绍,参见日志服务产品详情页

  • 消息队列 RocketMQ 版

    消息队列 RocketMQ 版是阿里云基于 Apache RocketMQ 构建的低延迟、高并发、高可用、高可靠的分布式消息中间件。该产品最初由阿里巴巴自研并捐赠给 Apache 基金会,服务于阿里集团 13 年,覆盖全集团所有业务。作为双十一交易核心链路的官方指定产品,支撑千万级并发、万亿级数据洪峰,历年刷新全球最大的交易消息流转记录。

    更多关于消息队列 RocketMQ 版的介绍,参见消息队列 RocketMQ 版产品详情页

  • 云数据库 Redis 版

    阿里云数据库Redis版是兼容开源Redis协议标准、提供内存加硬盘混合存储的数据库服务,基于高可靠双机热备架构及可平滑扩展的集群架构,可充分满足高吞吐、低延迟及弹性变配的业务需求。

    更多关于云数据库 Redis 版的介绍,参见云数据库 Redis 版产品详情页

  • 云数据库RDS MySQL版

    MySQL 是全球最受欢迎的开源数据库之一,作为开源软件组合 LAMP(Linux + Apache + MySQL + Perl/PHP/Python)中的重要一环,广泛应用于各类应用场景。

    更多关于云数据库RDS MySQL版的介绍,参见云数据库RDS MySQL版产品详情页

  • 表格存储

    表格存储(Tablestore)是阿里云自研的面向海量结构化数据存储的Serverless NoSQL多模型数据库,被广泛用于社交、物联网、人工智能、元数据和大数据等业务场景。提供兼容HBase的WideColumn模型、消息模型Timeline以及时空模型Timestream,可提供PB级存储、千万TPS以及毫秒级延迟的服务能力。

    更多关于表格存储的介绍,参见表格存储产品详情页

  • DataV数据可视化

    DataV旨在让更多的人看到数据可视化的魅力,帮助非专业的工程师通过图形化的界面轻松搭建专业水准的可视化应用,满足您会议展览、业务监控、风险预警、地理信息分析等多种业务的展示需求。

    更多关于阿里云DataV数据可视化的介绍,参见DataV数据可视化产品详情页

  • Quick BI

    Quick BI 专为云上用户量身打造的新一代智能BI服务平台。

    更多关于Quick BI的介绍,参见Quick BI产品详情页