应用场景

阿里云开源大数据平台E-MapReduce(简称EMR)具有广泛的应用场景。本文为您介绍EMR的主要应用场景。

数据湖场景

DataLake集群类型提供了数据湖分析场景所需的服务和相关湖格式,包括Hadoop、OSS-HDFS、Hive、Spark、Presto等。通过选择OSS-HDFS,集群的YARN服务不再依赖集群本地的HDFS,也不需要使用Core节点组,从而提高了集群的弹性和灵活性。此外,您还可以选择数据湖构建DLF作为数据目录服务,DLF可以提供统一的元数据服务,并支持湖上数据的管理,通过DLF可以简化和加速湖上数据的治理过程。

在数据湖场景下,通过采集程序,将用户的埋点日志近实时写入到OSS-HDFS,并使用Sqoop定时将业务数据库的数据同步到OSS-HDFS。在EMR集群中,利用Hive和Spark对原始数据进行清洗和加工,提取业务所需的指标,例如日活跃用户、用户留存、某SKU的新增订单等。白天可以通过弹性伸缩机制,只保留部分节点。同时,可以启动一个包含Trino或Presto的环境,以满足白天数据分析师或运营团队对数据的查询需求。

image

数据分析场景

OLAP集群类型提供了StarRocks、Doris、ClickHouse等服务。这些服务都具有高效的数据压缩、列式存储和并行查询等特性,使其在大数据分析场景中表现出色。可以用于用户画像、人群圈选、BI报表和业务分析等一系列的业务场景。

实时数据分析场景解决方案

image

步骤如下:

  1. 实时摄入:通过直接读取Kafka数据来实现。提供了Flink-Connector来支持Flink数据流的直接写入,并保证了exactly-once语义。此外,还支持Flink CDC来捕捉TP数据更新,并实时地将结果更新到StarRocks中。

  2. 数据分析:实现了实时数据分析生成的数据可以直接用于Serving,从而实现了实时和离线数据的统一融合。

  3. 实时数据建模:提供了实时数据建模聚合表,以支持实时聚合能力。强大的引擎和优化器保证了数据库在实时数据建模时的高效性。

  4. 实时更新:采用了delete-and-insert的实时更新策略,且在读取时无需进行主键合并,相较于采用了merge-on-read(unique)的合并策略,性能提升了3~15倍。

湖仓分析场景解决方案

  • 查询层:复用了当前StarRocks的CBO和查询引擎能力,使得查询计算性能达到了Trino的3~5倍。

  • 元数据管理:

    • 支持Multi-Catalog管理,无缝对接HMS,同时支持自定义Catalog,便于和云厂商的DLF对接。

    • 支持通用的Parquet、ORC、CSV等标准格式,实现了延迟物化和小文件合并读写。

    • 支持多种数据湖格式,例如Hudi、Iceberg、DeltaLake和Paimon。

image

步骤如下:

  1. 实时摄入:屏蔽了底层数据源的细节,支持异构数据源数据联合分析,同时支持实时和离线数据的联合分析。

  2. 查询加速:采用了就近计算策略,例如表达式下推和聚合下推,以及分布式读取/数据源针对性优化策略。支持向量化解释ORC、Parquet格式,字典过滤、延迟物化等技术。

  3. 测试结果:进行了TPC-H和Hive查询等测试,与Presto(OR)相比,在同等条件下,性能提升了3~5倍以上,并且仅使用Presto资源的1/3即可获得相同的性能体验。

实时数据流场景

DataFlow集群类型提供了Flink、Kafka、Paimon等服务,主要用于解决实时计算端到端的各类问题,广泛应用于实时数据ETL和日志采集分析等场景。

通过采集程序将业务数据、日志和埋点数据等投递到EMR Kafka,利用Flink的实时计算功能将数据写入不同的分析系统,例如EMR StarRocks、EMR Hbase和阿里云的实时数仓Hologres,以提供实时分析、点查调用和BI报表分析等操作。

image

数据服务场景

DataServing集群类型提供了HBase、Phoenix和OSS-HDFS等的服务。通过选择HBase和OSS-HDFS,您可以将HBase的数据存储到湖上,并根据您的选择将HBase的WAL日志继续写入集群本地HDFS或OSS-HDFS。采用这种计算与存储分离的架构,可以减轻集群上的存储压力。一旦您的数据保存到湖上,恢复HBase集群将变得更加容易。

在数仓场景下,经过ETL计算,可以获取指定用户的标签信息,包括兴趣标签、兴趣话题、搜索关键词等,除了基本信息。通过编写程序,将每日新增或修改的用户信息写入EMR HBase集群。利用该集群提供的用户画像数据,可以建立圈选服务,并根据业务促销情况,有选择性地投放广告给一定范围的用户。同时,由于数据基于湖存储OSS-HDFS,可以创建一个新的EMR HBase集群,将其指向与主集群相同的HFile路径,以作为只读集群,从而分担主集群的读写压力。

image