更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【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 的具体实践,为大家详细介绍离线加速和实时分析这两个典型应用场景。
客户 A 是国内旅游行业中领先的休闲旅游公司,提供了包括自助、景区门票以及公司旅游、机票、酒店等在内的丰富产品和服务。在国内疫情影响逐渐消散的背景下,旅游业迎来了复苏的春天。客户 A 的业务场景迎来了比较大的机会点,对数据处理的也提出了更高的要求。
公司提供了一款面向企业内部业务人员,进行数据集成、数据清洗、数据可视化分析的产品。该产品打通各类业务数据,为业务人员提供多种数据分析方法,协助业务线提升数据分析效率,进而促活留存、增加营收,主要包含以下功能:
用户整体的数据集中在离线场景中,主要在面向应用系统时存在一些离线加速需求。
场景一:多维分析
业务原有的多维分析的框架主要是基于 Kylin+Saiku 的多维分析平台,会产生日报表和月报表。由于 Kylin 是预计算模型,需要事先构建维度模型,调度任务,然后持久化到 HBase 中。这套历史框架给客户带来了许多困扰:
场景二:Ad-hoc+自助分析
在 Hive 离线场景中,大数据量、低 QPS 的场景下,原有的架构上直接使用基于 Hive+Presto 的计算引擎选型。在这个数据架构下,客户遇到如下的问题和挑战:
针对如上的问题和挑战,我们的目标是寻求尽可能少的 OLAP 引擎,利用在明细表上现场计算来解决 ETL 任务、数仓表过多等问题,同时兼顾在数据规模、查询 QPS、响应耗时等查询方面的需求。
StarRocks 数据库提供了兼容 MySQL 协议的能力,对 BI 工具的接入十分友好,同时提供了 Hive 外表+Multi Catalog 的方式,对离线数仓的 In-place 查询也在逐步的完善当中,提供了 CN 节点的模式。
在近半年的使用过程中,多维分析的场景下,火山引擎 EMR StarRocks 在保持甚至超过 Kylin 性能的同时,极大降低了客户的运维压力,简化了数据开发的链路,并降低了存储和计算成本。
在 Ad-hoc 查询场景里,原来经常使用的 Presto 方案,在这个场景使用 StarRocks 的性能存在极大的提升,但是因为语法兼容和鉴权统一的问题,在逐步的使用 StarRocks 来分担一些热查询的流量。
客户 B 是一家一站式的信息流广告投放公司,对接支持了国内外各种广告平台,包括抖音,快手等等。
公司内部研发了集合分析投放一体的运营平台,在投放策略的生效过程中,会存在一些维度数据需要实时更新,来保证策略的有效性,并且更新的 QPS 和时延要求都比较高。另外还会存在实时更新的数据与聚合分析的信息做一些 join 关联查询。
业务诉求:
现有架构面临的挑战:
目前客户 B 在我们的建议下采用了新的架构,在新架构中使用火山引擎 EMR StarRocks 作为 GreenPlum 的升级方案。这样的方案主要是有以下几个方面:
火山引擎 EMR StarRocks 在实时场景上有很好的业务满足能力。StarRocks 的主键能力,向量化查询都逐步在提升支撑实时数仓场景的效能,同时 StarRocks 也很好处理了与大数据生态的关联,增加了很多垂直领域上的数据源对接,这样的设计丰富了引擎本身的生态圈,并且会逐步实现极速统一的目标。
目前火山引擎 EMR 产品上线 StarRocks 集群,增强了企业级能力,包括监控告警,集群运维,以及作业管理等能力,并共同见证了火山引擎 EMR StarRocks 在用户场景上不断发挥越来越重要的作用。未来我们会持续地投入社区共建中,开展多方面的引擎优化合作,并推进相关功能的商业化落地。
深化云原生能力:例如不同角色的存算分离,包括 FE Stateless,BE 存算分离等;弹性伸缩能力,通过配置弹性策略自动调整集群计算资源,提高用户集群资源使用率,大幅降低用户成本;
进一步与 EMR Hadoop/Spark 生态打通: 例如数据湖场景(包括 Hive 表)的结合,实时高 QPS 的能力构建(深度结合 ElasticSearch/HBase 的场景读写);
元数据+Query Profile 的企业级能力构建:例如将 StarRocks 的信息以更有优势的方式透传给客户,做数据治理和查询分析;
可视化 Query Profiler 和 SQL 诊断模块:针对在线报表和数据仓库场景的查询语句具有关联表多、扫描数据量大、耗时长等特点,帮助用户识别慢查询,给出物化视图、索引、参数调优等查询加速建议。