This is an automated email from the ASF dual-hosted git repository. jiafengzheng pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/doris-website.git
The following commit(s) were added to refs/heads/master by this push: new 031432abe39 fix 031432abe39 is described below commit 031432abe39af9d968519e31a9e5c4499ef8442f Author: jiafeng.zhang <zhang...@gmail.com> AuthorDate: Thu Dec 8 15:21:46 2022 +0800 fix --- .../xiaomi_vector.md | 24 +++++++++++----------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/i18n/zh-CN/docusaurus-plugin-content-blog/xiaomi_vector.md b/i18n/zh-CN/docusaurus-plugin-content-blog/xiaomi_vector.md index 552dc09758b..130153b2b1b 100644 --- a/i18n/zh-CN/docusaurus-plugin-content-blog/xiaomi_vector.md +++ b/i18n/zh-CN/docusaurus-plugin-content-blog/xiaomi_vector.md @@ -35,7 +35,7 @@ under the License. 因分析业务的增长,小米集团于 2019 年首次引入了 Apache Doris 。经过三年时间的发展,目前 Apache Doris 已经在广告投放、新零售、增长分析、数据看板、用户画像、天星数科、小米有品、等小米内部数十个业务和品牌中得到广泛应用,并且在小米内部已经围绕 Apache Doris 为核心建设了数据生态。 - + 当前 Apache Doris 在小米内部已经具有数十个集群、总体达到数百台 BE 节点的规模,其中单集群最大规模达到近百台节点,拥有数十个实时数据同步任务,每日单表最大增量 120 亿、支持 PB 级别存储,单集群每天可以支持 2W 次以上的多维分析查询。 @@ -49,7 +49,7 @@ under the License. - 存储层:在存储层中进行冷热数据分离。热数据存放在 Kudu 中,冷数据则会存放在 HDFS 上。同时在存储层中进行分区,当分区单位为天时,每晚会将一部分数据转冷并存储到 HDFS 上。 - 计算层/查询层:在查询层中,使用 SparkSQL 对 Kudu 与 HDFS 上数据进行联邦查询,最终把查询结果显示在前端页面。 - + 在当时的历史背景下,初代版本的增长分析平台帮助我们解决了一系列用户运营过程中的问题,但同时在历史架构中也存在了两个问题: @@ -70,7 +70,7 @@ Doris是Apache基金会顶级项目,主要定位是高性能的、支持实时 ## 基于 Apache Doris 的新版架构 新版架构从数据源获取埋点数据后,数据接入后写入 Apache Doris 后可以直接查询结果并在前端进行显示。真正实现了通过Doris统一了计算、存储,和资源管理yarn相关工具。 - + 我们选择 Doris 原因: - Doris 具有优秀的查询性能,能够满足业务需求。 @@ -80,7 +80,7 @@ Doris是Apache基金会顶级项目,主要定位是高性能的、支持实时 ## 新旧架构性能对比 - + 我们选取了日均数据量大约 10 亿的业务,分别在不同场景下对Doris进行了性能测试,其中包含 6 个事件分析场景,3 个留存分析场景以及 3 个漏斗分析场景。经过与【SparkSQL+Kudu+HDFS】的旧方案对比后,我们发现: - 在事件分析的场景下,平均查询所耗时间降低了 85%。 @@ -91,7 +91,7 @@ Doris是Apache基金会顶级项目,主要定位是高性能的、支持实时 ## 数据导入 - + 小米内部主要通过 Stream Load 与 Broker Load 以及少量 Insert 方式来导入数据到Doris。数据一般会先写入到消息队列中,分为实时数据和离线数据两个部分。 实时数据如何写入到Apache Doris 中:一部分实时数据通过 Flink数据处理 后, 并通过 Doris 社区提供的 Flink Doris Connector 组件写入到 Doris 中。另一部分数据通过 Spark Streaming 组件写入。这两种写入方式的底层都依赖的是社区提供的 Stream Load。 @@ -99,7 +99,7 @@ Doris是Apache基金会顶级项目,主要定位是高性能的、支持实时 ## 数据查询 - + 用户通过数据工场将数据导入至 Doris 后即可进行查询。在小米内部,可以通过自研的数鲸平台进行查询的。用户可以通过数鲸平台对 Doris 进行可视化的查询,并展开用户行为分析和用户画像分析。其中,为帮助业务进行事件分析、留存分析、漏斗分析、路径分析等行为分析,我们为 Doris 添加了相应的 UDF (User Defined Function)和 UDAF (User Defined Aggregate Function)。 在即将发布的 1.2 版本中,Doris添加了外表元数据同步的功能,支持 Hive/Hudi/Iceberg 外表并增加了 Multi Catalog。查询外部表提升了性能,接入外表大幅增加了易用性。在未来,我们考虑直接通过 Doris 查询 Hive 与 Iceberg 数据,构建湖仓一体的架构。 @@ -122,11 +122,11 @@ Doris是Apache基金会顶级项目,主要定位是高性能的、支持实时 #### 单 SQL 串行查询测试 在该测试场景中,我们选取了小米A/B 实验场景中 7 个典型的查询 Case,针对每一个查询 Case,我们将扫描的数据时间范围分别限制为 1 天、7 天和 20 天进行查询测试,其中单日分区数据量级大约为 31 亿(数据量大约 2 TB),测试结果如图所示: - + - + - + 根据以上小米 A/B 实验场景下的单 SQL 串行查询测试结果所示,Doris 1.1.2 版本相比小米线上 Doris 0.13 版本至少有 3~5 倍的性能提升,效果显著。 @@ -136,17 +136,17 @@ Doris是Apache基金会顶级项目,主要定位是高性能的、支持实时 #### 测试 1 我们选择了 A/B 实验场景中一批典型的用户去重、指标求和以及协方差计算的查询 Case(SQL 总数量为 3245)对两个版本进行并发查询测试,测试表的单日分区数据大约为 31 亿(数据量大约 2 TB),查询的数据范围会覆盖最近一周的分区。测试结果如图所示,Doris 1.1.2 版本相比 Doris0.13版本,总体的平均延迟降低了大约 48%,P95 延迟降低了大约 49%。在该测试中,Doris 1.1.2 版本相比 Doris0.13 版本的查询性能提升了接近 1 倍。 - + #### 测试 2 我们选择了 A/B实验场景下的 7 份 A/B 实验报告对两个版本进行测试,每份 A/B 实验报告对应小米 A/B实验平台页面的两个模块,每个模块对应数百或数千条查询 SQL。每一份实验报告都以相同的并发向两个版本所在的集群提交查询任务。测试结果如图所示,Doris 1.1.2 版本相比 Doris 0.13 版本,总体的平均延迟降低了大约 52%。在该测试中,Doris 1.1.2 版本相比 Doris 0.13 版本的查询性能提升了超过 1 倍。 - + #### 测试 3 为了验证调优后的 Apache Doris 1.1.2 版本在小米 A/B 实验场景之外的性能表现,我们选取了小米用户行为分析场景进行了 Doris 1.1.2 版本和 Doris 0.13 版本的并发查询性能测试。我们选取了 2022年10月24日、25日、26日和 27日这 4 天的小米线上真实的行为分析查询 Case 进行对比查询,测试结果如图所示,Doris 1.1.2 版本相比 Doris 0.13 版本,总体的平均延迟降低了大约7 7%,P95 延迟降低了大约 83%。在该测试中,Doris 1.1.2 版本相比 Doris 0.13 版本的查询性能有 4~6 倍的提升。 - + # 总结 自从 Apache Doris 从 2019 年上线第一个业务至今,目前 Apache Doris 已经在小米内部服务了数十个业务及子品牌、集群数量达到数十个、节点规模达到数百台。每天完成数万次用户在线分析查询,承担了包括增长分析和报表查询等绝大多数在线分析的需求。 --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org