更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群

日前 ,火山引擎数智平台(VeDI)旗下产品 E-MapReduce(简称“EMR”)正式上线 StarRocks 集群,为企业客户带来业界领先的引擎性能和产品使用体验。

StarRocks 在业务侧可支撑报表系统的加速和查询,常用于广告投放效果分析、运营数据报表分析、DashBorad 看板等。 在用户画像分析的场景下,利用 Bitmap 位图技术,可以解析前端圈群过程,对复杂人群圈选进行提速。在实时数仓方面,通过内置的 routine load 导入功能可直接消费 Kafka 的消息队列,摄入到 StarRocks 提供给实时监控大屏等数仓应用场景,也可以同步 MySQL 等数据库的 Binlog 变更,实时同步到 Primary key 主键模型中同时提供高并发的查询服务。

此外,StarRocks 还支持联邦查询,可以无缝同步外部 Catalog,包括 Hive、Iceberg、Hudi、Delta lake 的外表,实现离线和实时的统一、湖和仓的联邦分析,满足跨引擎查询的功能。StarRocks 极速全场景数据分析,可提升整体分析效率,实现数据价值最大化。

在充分集成 StarRocks 技术特性的基础上,火山引擎 EMR StarRocks 提供了丰富的监控告警、扩容、参数和日志管理等功能,帮助用户提升运维易用性。作为 EMR 数据湖的加速引擎,EMR StarRocks 开箱即用,支持与火山引擎大数据开发套件 DataLeap、全域数据集成 DataSail 等云上生态产品无缝对接,满足用户一站式的数据开发和集成需求。

接下来,我们将用两个基于火山引擎 EMR StarRocks 的具体实践,为大家详细介绍离线加速和实时分析这两个典型应用场景。

案例 1:旅游行业中离线加速场景

业务背景

客户 A 是国内旅游行业中领先的休闲旅游公司,提供了包括自助、景区门票以及公司旅游、机票、酒店等在内的丰富产品和服务。在国内疫情影响逐渐消散的背景下,旅游业迎来了复苏的春天。客户 A 的业务场景迎来了比较大的机会点,对数据处理的也提出了更高的要求。

公司提供了一款面向企业内部业务人员,进行数据集成、数据清洗、数据可视化分析的产品。该产品打通各类业务数据,为业务人员提供多种数据分析方法,协助业务线提升数据分析效率,进而促活留存、增加营收,主要包含以下功能:

  1. 决策看板:面向管理者的业务运行北极星指标
  2. 自助分析:面向各个业务市场运营自动分析报表
  3. Ad-hoc 查询:数仓部门对数据的探索

业务痛点

用户整体的数据集中在离线场景中,主要在面向应用系统时存在一些离线加速需求。

场景一:多维分析

业务原有的多维分析的框架主要是基于 Kylin+Saiku 的多维分析平台,会产生日报表和月报表。由于 Kylin 是预计算模型,需要事先构建维度模型,调度任务,然后持久化到 HBase 中。这套历史框架给客户带来了许多困扰:

  1. Cube 定义成本高:增加一个 Cube 数据的成本较高,需要配置各种任务;
  2. 运维成本高:Kylin 依赖组件多,需要管理 Hive/Spark,HBase,调度平台的可用性;
  3. 存储膨胀:因为所有维度的数据都要生成,最全的场景会形成 2^n 的维度,造成在 HBase 和 Hive 中的存储资源占用特别多;
  4. 计算延迟大:用户原有的构建流程,Kylin 每天调度超 500 minutes,到月初调度时会超过 12h。

场景二:Ad-hoc+自助分析

在 Hive 离线场景中,大数据量、低 QPS 的场景下,原有的架构上直接使用基于 Hive+Presto 的计算引擎选型。在这个数据架构下,客户遇到如下的问题和挑战:

  1. 当离线批任务和 MPP 计算引擎是在混布模式下,MPP 对内存的使用要求较高,经常会带来节点不稳定性,并且没有统一的资源分配,会发生抢占,对稳定性是一个较大的挑战;
  2. 在大数据量的场景上,Presto 的查询性能不满足要求,存在有几十秒的延迟响应。

基于火山引擎 EMR StarRocks 的"极速统一"解决方案

针对如上的问题和挑战,我们的目标是寻求尽可能少的 OLAP 引擎,利用在明细表上现场计算来解决 ETL 任务、数仓表过多等问题,同时兼顾在数据规模、查询 QPS、响应耗时等查询方面的需求。

StarRocks 数据库提供了兼容 MySQL 协议的能力,对 BI 工具的接入十分友好,同时提供了 Hive 外表+Multi Catalog 的方式,对离线数仓的 In-place 查询也在逐步的完善当中,提供了 CN 节点的模式。

  • MySQL 协议
  1. Saiku 作为一个比较历史悠久的 BI 系统,兼容了 Kylin 与 MySQL 等一些引擎,从 Kylin 上迁移到 StarRocks 的计算引擎上依然能够无缝的使用 Saiku 上的配置。
  • In-place 查询
  1. Multi Catalog:只需要创建一个 Hive 的 Catalog,与 Presto 的使用方式一致,然后直接可以读 Hive 上的表信息。
  2. External Table:建立一个 Hive 外表,然后可以通过 Hive 外表进行对部分表的查询。
  3. 这里目前的鉴权系统因为 StarRocks 与 Hive 本身的鉴权系统不兼容,所以基于 Catalog 的这种方式会查到所有的表,如果需要有权限限制的话,需要用外表的形式。
  4. 该场景主要用于外表导入到内表 走 insert into select from table 的方式,和 Presto 原地查询的场景替换。
  • 多维查询
  1. StarRocks 的向量化引擎充分利用 CPU 的性能,可以做到在明细表不做预聚合的情况下,部分场景的性能比 Kylin 预聚合场景下的性能还要有优势。
  2. StarRocks 本身的也有物化视图和聚合表模型,可以利用这些功能做进一步的内表性能提升。

案例总结

在近半年的使用过程中,多维分析的场景下,火山引擎 EMR StarRocks 在保持甚至超过 Kylin 性能的同时,极大降低了客户的运维压力,简化了数据开发的链路,并降低了存储和计算成本。

在 Ad-hoc 查询场景里,原来经常使用的 Presto 方案,在这个场景使用 StarRocks 的性能存在极大的提升,但是因为语法兼容和鉴权统一的问题,在逐步的使用 StarRocks 来分担一些热查询的流量。

案例 2 - 广告行业中的实时分析场景

业务背景

客户 B 是一家一站式的信息流广告投放公司,对接支持了国内外各种广告平台,包括抖音,快手等等。

公司内部研发了集合分析投放一体的运营平台,在投放策略的生效过程中,会存在一些维度数据需要实时更新,来保证策略的有效性,并且更新的 QPS 和时延要求都比较高。另外还会存在实时更新的数据与聚合分析的信息做一些 join 关联查询。

业务痛点

业务诉求:

  1. 根据用户 id 在 ElasticSearch 中筛选查询明细数据,在 ElasticSearch 中用户 id 相关记录的更新 QPS 达到了十万级;
  2. 对一些明细数据需要做秒级响应关联或聚合查询。

现有架构面临的挑战:

  1. ElasticSearch 与 GreenPlum 的数据之间需要面临着数据同步的链路,增加了开发的成本;
  2. GreenPlum 本身的查询性能无法达到预期,尤其是在高 QPS 的场景下,master 节点无法扩展,容易碰见单点瓶颈;
  3. GreenPlum 本身的运维成本太大,扩容代价比较大,随着数据量增多,这种问题凸显。

基于火山引擎 EMR StarRocks 的实时场景解决方案

目前客户 B 在我们的建议下采用了新的架构,在新架构中使用火山引擎 EMR StarRocks 作为 GreenPlum 的升级方案。这样的方案主要是有以下几个方面:

  1. StarRocks 在写入和查询性能上都有比较好的表现;
  2. StarRocks 的主键能力能够承担部分 ElasticSearch 的点查点更新的场景;
  3. StarRocks 有 Connector 能力,能够直接将 ElasticSearch 作为外表关联进行一些数据探索的能力,同时也支持了谓词下推等能力,使 StarRocks 与 ElasticSearch 的数据之间产生了很好的联系;
  4. 因为在非常高的 QPS 的情况下,StarRocks 的能力还未能满足 QPS 和 latency 的要求,所以目前只是部分的更新和点查场景交给了 StarRocks,依然保留了 ElasticSearch 与 StarRocks 共存的场景;
  5. StarRocks 的扩缩容能力较好,面对不断变化的业务负载有很好的管理。

案例总结

火山引擎 EMR StarRocks 在实时场景上有很好的业务满足能力。StarRocks 的主键能力,向量化查询都逐步在提升支撑实时数仓场景的效能,同时 StarRocks 也很好处理了与大数据生态的关联,增加了很多垂直领域上的数据源对接,这样的设计丰富了引擎本身的生态圈,并且会逐步实现极速统一的目标。

后续规划

目前火山引擎 EMR 产品上线 StarRocks 集群,增强了企业级能力,包括监控告警,集群运维,以及作业管理等能力,并共同见证了火山引擎 EMR StarRocks 在用户场景上不断发挥越来越重要的作用。未来我们会持续地投入社区共建中,开展多方面的引擎优化合作,并推进相关功能的商业化落地。

  1. 深化云原生能力:例如不同角色的存算分离,包括 FE Stateless,BE 存算分离等;弹性伸缩能力,通过配置弹性策略自动调整集群计算资源,提高用户集群资源使用率,大幅降低用户成本;

  2. 进一步与 EMR Hadoop/Spark 生态打通: 例如数据湖场景(包括 Hive 表)的结合,实时高 QPS 的能力构建(深度结合 ElasticSearch/HBase 的场景读写);

  3. 元数据+Query Profile 的企业级能力构建:例如将 StarRocks 的信息以更有优势的方式透传给客户,做数据治理和查询分析;

  4. 可视化 Query Profiler 和 SQL 诊断模块:针对在线报表和数据仓库场景的查询语句具有关联表多、扫描数据量大、耗时长等特点,帮助用户识别慢查询,给出物化视图、索引、参数调优等查询加速建议。

点击火山引擎EMR跳转了解更多

火山引擎 EMR StarRocks 场景案例分享的更多相关文章

  1. 火山引擎 A/B 测试产品——DataTester 私有化架构分享

    作为一款面向 ToB 市场的产品--火山引擎A/B测试(DataTester)为了满足客户对数据安全.合规问题等需求,探索私有化部署是产品无法绕开的一条路. 在面向 ToB 客户私有化的实际落地中,火 ...

  2. 火山引擎 DataLeap 的 Data Catalog 系统公有云实践

      Data Catalog 通过汇总技术和业务元数据,解决大数据生产者组织梳理数据.数据消费者找数和理解数的业务场景.本篇内容源自于火山引擎大数据研发治理套件 DataLeap 中的 Data Ca ...

  3. 火山引擎 DataLeap:一家企业,数据体系要怎么搭建?

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 导读:经过十多年的发展,数据治理在传统行业以及新兴互联网公司都已经产生落地实践.字节跳动也在探索一种分布式的数据治 ...

  4. 【案例分享】SpreadJS金融行业应用实践,开发基于Web Excel的指标补录平台

    SpreadJS作为一款基于 HTML5 的纯前端电子表格控件,以“高速低耗.高度类似Excel.可无限扩展”为产品特色,提供移动跨平台和浏览器支持,可同时满足 .NET.Java.App 等应用程序 ...

  5. 火山引擎MARS-APM Plus x 飞书 |降低线上OOM,提高App性能稳定性

    通过使用火山引擎MARS-APM Plus的memory graph功能,飞书研发团队有效分析定位问题线上case多达30例,线上OOM率降低到了0.8‰,降幅达到60%.大幅提升了用户体验,为飞书的 ...

  6. 还原火山引擎 A/B 测试产品——DataTester 私有化部署实践经验

      作为一款面向ToB市场的产品--火山引擎A/B测试(DataTester)为了满足客户对数据安全.合规问题等需求,探索私有化部署是产品无法绕开的一条路.   在面向ToB客户私有化的实际落地中,火 ...

  7. 火山引擎 DataLeap:3 个关键步骤,复制字节跳动一站式数据治理经验

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,并进入官方交流群 DataLeap 是火山引擎数智平台 VeDI 旗下的大数据研发治理套件产品,帮助用户快速完成数据集成.开发.运维.治理. ...

  8. Office 2010 KMS激活原理和案例分享

    Office 2010 KMS激活原理和案例分享     为了减低部署盗版(可能包含恶意软件.病毒和其他安全风险)的可能性,Office 2010面向企业客户推出了新的批量激活方式:KMS和MAK.这 ...

  9. Office 2010 KMS激活原理和案例分享 - Your Office Solution Here - Site Home - TechNet Blogs

    [作者:葛伟华.张玉工程师 ,  Office/Project支持团队, 微软亚太区全球技术支持中心 ] 为了减低部署盗版(可能包含恶意软件.病毒和其他安全风险)的可能性,Office 2010面向企 ...

  10. 性能调优案例分享:Mysql的cpu过高

    性能调优案例分享:Mysql的cpu过高   问题:一个系统,Mysql数据库,数据量变大之后.mysql的cpu占用率很高,一个测试端访问服务器时mysql的cpu占用率为15% ,6个测试端连服务 ...

随机推荐

  1. 聊聊Transform模型

    摘自<BERT基础教程:Transformer大模型实战 > 概述 循环神经网络和长短期记忆网络已经广泛应用于时序任务,比如文本预测.机器翻译.文章生成等.然而,它们面临的一大问题就是如何 ...

  2. Gradio-Lite: 完全在浏览器里运行的无服务器 Gradio

    Gradio 是一个经常用于创建交互式机器学习应用的 Python 库.在以前按照传统方法,如果想对外分享 Gradio 应用,就需要依赖服务器设备和相关资源,而这对于自己部署的开发人员来说并不友好. ...

  3. [ABC311G] One More Grid Task

    Problem Statement There is an $N \times M$ grid, where the square at the $i$-th row from the top and ...

  4. [CF1788F] XOR, Tree, and Queries

    题目描述 You are given a tree of $ n $ vertices. The vertices are numbered from $ 1 $ to $ n $ . You wil ...

  5. [AGC59C] Guessing Permutation for as Long as Possible

    Problem Statement A teacher has a hidden permutation $P=(P_1,P_2,\ldots,P_N)$ of $(1,2,\cdots,N)$. Y ...

  6. javaAPI操作hbase对表格的增删改查

    package org.example; import org.apache.hadoop.hbase.NamespaceDescriptor; import org.apache.hadoop.hb ...

  7. C++学习笔记四:变量与数据类型(布尔型与字符型)

    今天来整理一下布尔型和字符型变量的基本使用方法1)布尔型变量1. 声明和初始化一个布尔类型的变量占据1 Byte空间,数值0代表false,其他非0数值代表true bool red_light {f ...

  8. C++学习笔记二:变量与数据类型(整型)

    1.int(整型数据): 1.1 进制的表示:十进制,八进制,16进制,二进制 int number1 = 15; // Decimal int number2 = 017; // Octal int ...

  9. 华企盾DSC忘记了数据库解锁密码

    解决方法:登录数据库控制台,找到DSE所使用数据库默认名字"DSEDB",打开表"FileEncryptKey_TABLE",如下图所示: ​ 第一行,自动生成 ...

  10. 生产升级JDK 17 必读手册

    原文点这里,查看更多优质文章 DK 17 在 2021 年 9 月 14 号正式发布了!根据发布的规划,这次发布的 JDK 17 是一个长期维护的版本(LTS). Java 17 提供了数千个性能.稳 ...