友情链接:
基于统一化平台建设背景,某银行构建了一个统一的标签画像平台,实现了全行标签数据的统一加工和应用,使数据在业务流转中发挥精准性、完整性、规范性、实效性的业务价值,满足了在营销、风控、运营、内部管理等标签数据方面的需求。
但是,该项目上线后,随着数据不断增长,企业面临一些性能瓶颈,比如业务混合使用,传统的数据处理方案存在局限性,数据安全管理等方面也在面临着全新的挑战。
本次大数据基础平台升级是结合各数据应用系统建设情况,从技术领先、灵活扩展、保证安全、产品性价比等方面统筹考虑数据存储、数据加工、数据查询、数据服务、数据应用、数据安全等多个层面的需求进行的升级。平台升级后,技术架构领先、计算能力的动态灵活扩展,能够形成算力更强、架构更完善的全行级数据中台服务体系。实现数据的统一管理控制、统一调度配置、资源集约共享,并通过专业的大数据同步及脱敏工具搭建大数据灾备体系及准生产环境,强化数据使用安全。
本篇文章将为读者解析ArgoDB如何针对该项目所面临的实际业务指标查询下的场景进行优化。希望能为读者在后续遇到相似场景下的优化问题时提供思路,更高效高质量的解决问题,如果对您有所帮助,欢迎多多点赞支持~🤝
更多有关ArgoDB的产品功能请查看:ArgoDB官方文档站
针对该银行的不同指标查询业务,星环统一采取了以下四个方面的措施进行优化,本节将详细为读者介绍具体的优化措施及操作步骤,以帮助读者更好的理解和操作。
概览
在传统部署中,ArgoDB 的 TDDMS 组件通常承担着为大数据处理平台提供统一的数据存储服务。
TDDMS是星环自研的一个分布式数据管理系统,该系统搭建了一个通用的分布式存储处理框架,提供了数据的分布管理、元信息管理、分布式事务、分布式一致性协议以及数据高可用保障。TDDMS 支持多种不同的数据模型,并为不同的数据模型提供了格式化的数据读写接口,便于分布式计算引擎进行数据读写等操作,真正实现了多源数据的高效融合。
更多介绍请查看:TDDMS是什么
但是,在企业日常生产运行过程中,伴随着多样化的数据类型以及业务的不断扩展和数据量的激增,单一集群往往需要同时处理日常的批量数据处理任务和即时查询业务,可能引发计算和存储资源的抢占,进而影响业务的执行效率。
用户可以在统一的存储基础上划分出多个逻辑上独立的集群,专注于各自的业务,实现存储和计算资源的隔离。例如,我们可以单独为查询业务划分出只读集群中,该集群中仅存储表的副本数据,同时按需分配计算资源,从而保证日常的批处理业务和查询业务能够高效、无干扰地运行。
将16个计算节点改建为13+3双数据中心,其中主数据中心(DC1)用于执行跑批以及大部分业务,高并发查询数据中心(DC2)用于专门执行高并发的指标查询业务。
Holodesk 中,事务是以一批文件的方式提交的,每次 Quark 执行 SQL 任务生成的数据文件,会被提交给TDDMS。如果存在分桶,则会根据每个分桶对应的 tablet 存储位置,将数据保存对应 tablet 副本的磁盘上。
在这之后,Quark 在读取 Holodesk 数据时,有两种方式:
而 Quark Executor 能直接读到 Holodesk 数据文件,也是因为在配置服务时,就将 TDDMS 的数据目录挂载进 Quark Executor 的容器中了。如果进到 Quark Executor 的容器中,可以看到只挂载了ngmr.localdir 和tabletserver.store.datadirs 配置的数据目录。
综上所述,本地读对比远程读二者的性能差异主要源于以下维度:
因为远程读数据是是需要 TDDMS Tablet Server读数据文件,因此 TDDMS Tablet Server也会有较高的内存占用。
而针对此案例,由于使用了 Linac-Localfast 执行模式将结果集缓存在了 Quark Server 中,所以区别于传统的是使用 Quark Executor 进行本地读,业务上可以直接使用 Quark Sevrer 读取存储在 Server本地的数据,进一步提高了指标查询性能。
set use.linac=true;
set ngmr.local.fast.enabled=true;
set ngmr.windrunner.enabled=true;
在 ArgoDB 5.2 中,我们推出了细粒度索引功能,使用更宽泛的条件来返回比常规索引更多行数据的存储引擎技术。ArgoDB 中的细粒度索引是基于 KV(key-value)的索引,提供高速的 KV 服务,索引文件的 Key存储索引键,Value 存储相同索引键的值。它类似于一种聚簇索引,可以把大量相似的数据细分成更小的边界,从而使文件的查找变得更快更有效率。
在这个指标查询案例中,都涉及到对表以及表中字段的等值查询,添加细粒度索引可以把数据分割成更小的单元,通过扫描小批量数据实现高效数据检索。
指标查询场景 | 场景说明 | 优化前耗时 | 优化后耗时 | 性能提升 |
---|---|---|---|---|
4个指标查询客户经理每日数据 | 查询 30 天内每天的数据 | 2.165s | 0.309s | 性能提升 6 倍 |
4个指标查询客户经理每日数据 | 查询 30 天内的总数据量 | 1.958s | 0.492s | 性能提升 3 倍 |
4个指标查询客户经理 1日数据 | 查询当天的数据 | 0.448s | 0.169s | 性能提升 1.7 倍 |
4个指标查询客户经理每月末数据 | 查询半年内每月末 6天的数据 | 1.244s | 0.212s | 性能提升近 5 倍 |
4个指标查询客户经理每月末数据 | 查询半年内每月末 6天内的总数据量 | 1.332s | 0.214s | 性能提升 5 倍 |
4个指标查询每季度末数据 | 查询半年内,两个季度末共 2 天的数据 | 0.595s | 0.157s | 性能提升近 3 倍 |
4个指标查询每年末数据 | 查询今年及去年年末共 2天的数据 | 0.327s | 0.159s | 性能提升 1 倍 |
5个指标查询机构 1日数据 | 查询当天数据 | 0.470s | 0.311s | 性能提升 0.5 倍 |
2个指标查询客户经理 1日数据 | 查询当天数据 | 0.205s | 0.134s | 性能提升 0.5 倍 |
6个指标查询客户经理每日数据 | 查询 30 天内每天的数据 | 2.327s | 0.265s | 性能提升 7.8 倍 |
6个指标查询客户经理每日数据 | 查询 30 天内的总数据量 | 3.526s | 0.241s | 性能提升 13.6 倍 |
6个指标查询机构每日数据 | 查询 30 天内每天的数据 | 2.789s | 0.412s | 性能提升 5.8 倍 |
6个指标查询机构每日数据 | 查询 30 天内的总数据量 | 2.232s | 0.389s | 性能提升 4.7 倍 |
6个指标查询客户经理 180天总数据量 | 查询 180天内的总数据量 | 19.1s | 0.386s | 性能提升 48.5 倍 |
6个指标查询机构 180天总数据量 | 查询 180天内的总数据量 | 5.291s | 0.585s | 性能提升 8 倍 |
单指标查询机构每日数据 | 查询 30天内每天的数据量 | 0.534s | 0.153s | 性能提升 2.5 倍 |
单指标查询机构每日数据 | 查询 30天内每天的数据量 | 0.356s | 0.193s | 性能提升近 1 倍 |
单指标查询客户经理1 日数据 | 查询当日数据 | 0.142s | 0.097s | 性能提升 0.5 倍 |
更多有关ArgoDB的产品功能请查看:ArgoDB官方文档站
友情链接:
基于统一化平台建设背景,某银行构建了一个统一的标签画像平台,实现了全行标签数据的统一加工和应用,使数据在业务流转中发挥精准性、完整性、规范性、实效性的业务价值,满足了在营销、风控、运营、内部管理等标签数据方面的需求。
但是,该项目上线后,随着数据不断增长,企业面临一些性能瓶颈,比如业务混合使用,传统的数据处理方案存在局限性,数据安全管理等方面也在面临着全新的挑战。
本次大数据基础平台升级是结合各数据应用系统建设情况,从技术领先、灵活扩展、保证安全、产品性价比等方面统筹考虑数据存储、数据加工、数据查询、数据服务、数据应用、数据安全等多个层面的需求进行的升级。平台升级后,技术架构领先、计算能力的动态灵活扩展,能够形成算力更强、架构更完善的全行级数据中台服务体系。实现数据的统一管理控制、统一调度配置、资源集约共享,并通过专业的大数据同步及脱敏工具搭建大数据灾备体系及准生产环境,强化数据使用安全。
本篇文章将为读者解析ArgoDB如何针对该项目所面临的实际业务指标查询下的场景进行优化。希望能为读者在后续遇到相似场景下的优化问题时提供思路,更高效高质量的解决问题,如果对您有所帮助,欢迎多多点赞支持~🤝
更多有关ArgoDB的产品功能请查看:ArgoDB官方文档站
针对该银行的不同指标查询业务,星环统一采取了以下四个方面的措施进行优化,本节将详细为读者介绍具体的优化措施及操作步骤,以帮助读者更好的理解和操作。
概览
在传统部署中,ArgoDB 的 TDDMS 组件通常承担着为大数据处理平台提供统一的数据存储服务。
TDDMS是星环自研的一个分布式数据管理系统,该系统搭建了一个通用的分布式存储处理框架,提供了数据的分布管理、元信息管理、分布式事务、分布式一致性协议以及数据高可用保障。TDDMS 支持多种不同的数据模型,并为不同的数据模型提供了格式化的数据读写接口,便于分布式计算引擎进行数据读写等操作,真正实现了多源数据的高效融合。
更多介绍请查看:TDDMS是什么
但是,在企业日常生产运行过程中,伴随着多样化的数据类型以及业务的不断扩展和数据量的激增,单一集群往往需要同时处理日常的批量数据处理任务和即时查询业务,可能引发计算和存储资源的抢占,进而影响业务的执行效率。
用户可以在统一的存储基础上划分出多个逻辑上独立的集群,专注于各自的业务,实现存储和计算资源的隔离。例如,我们可以单独为查询业务划分出只读集群中,该集群中仅存储表的副本数据,同时按需分配计算资源,从而保证日常的批处理业务和查询业务能够高效、无干扰地运行。
将16个计算节点改建为13+3双数据中心,其中主数据中心(DC1)用于执行跑批以及大部分业务,高并发查询数据中心(DC2)用于专门执行高并发的指标查询业务。
Holodesk 中,事务是以一批文件的方式提交的,每次 Quark 执行 SQL 任务生成的数据文件,会被提交给TDDMS。如果存在分桶,则会根据每个分桶对应的 tablet 存储位置,将数据保存对应 tablet 副本的磁盘上。
在这之后,Quark 在读取 Holodesk 数据时,有两种方式:
而 Quark Executor 能直接读到 Holodesk 数据文件,也是因为在配置服务时,就将 TDDMS 的数据目录挂载进 Quark Executor 的容器中了。如果进到 Quark Executor 的容器中,可以看到只挂载了ngmr.localdir 和tabletserver.store.datadirs 配置的数据目录。
综上所述,本地读对比远程读二者的性能差异主要源于以下维度:
因为远程读数据是是需要 TDDMS Tablet Server读数据文件,因此 TDDMS Tablet Server也会有较高的内存占用。
而针对此案例,由于使用了 Linac-Localfast 执行模式将结果集缓存在了 Quark Server 中,所以区别于传统的是使用 Quark Executor 进行本地读,业务上可以直接使用 Quark Sevrer 读取存储在 Server本地的数据,进一步提高了指标查询性能。
set use.linac=true;
set ngmr.local.fast.enabled=true;
set ngmr.windrunner.enabled=true;
在 ArgoDB 5.2 中,我们推出了细粒度索引功能,使用更宽泛的条件来返回比常规索引更多行数据的存储引擎技术。ArgoDB 中的细粒度索引是基于 KV(key-value)的索引,提供高速的 KV 服务,索引文件的 Key存储索引键,Value 存储相同索引键的值。它类似于一种聚簇索引,可以把大量相似的数据细分成更小的边界,从而使文件的查找变得更快更有效率。
在这个指标查询案例中,都涉及到对表以及表中字段的等值查询,添加细粒度索引可以把数据分割成更小的单元,通过扫描小批量数据实现高效数据检索。
指标查询场景 | 场景说明 | 优化前耗时 | 优化后耗时 | 性能提升 |
---|---|---|---|---|
4个指标查询客户经理每日数据 | 查询 30 天内每天的数据 | 2.165s | 0.309s | 性能提升 6 倍 |
4个指标查询客户经理每日数据 | 查询 30 天内的总数据量 | 1.958s | 0.492s | 性能提升 3 倍 |
4个指标查询客户经理 1日数据 | 查询当天的数据 | 0.448s | 0.169s | 性能提升 1.7 倍 |
4个指标查询客户经理每月末数据 | 查询半年内每月末 6天的数据 | 1.244s | 0.212s | 性能提升近 5 倍 |
4个指标查询客户经理每月末数据 | 查询半年内每月末 6天内的总数据量 | 1.332s | 0.214s | 性能提升 5 倍 |
4个指标查询每季度末数据 | 查询半年内,两个季度末共 2 天的数据 | 0.595s | 0.157s | 性能提升近 3 倍 |
4个指标查询每年末数据 | 查询今年及去年年末共 2天的数据 | 0.327s | 0.159s | 性能提升 1 倍 |
5个指标查询机构 1日数据 | 查询当天数据 | 0.470s | 0.311s | 性能提升 0.5 倍 |
2个指标查询客户经理 1日数据 | 查询当天数据 | 0.205s | 0.134s | 性能提升 0.5 倍 |
6个指标查询客户经理每日数据 | 查询 30 天内每天的数据 | 2.327s | 0.265s | 性能提升 7.8 倍 |
6个指标查询客户经理每日数据 | 查询 30 天内的总数据量 | 3.526s | 0.241s | 性能提升 13.6 倍 |
6个指标查询机构每日数据 | 查询 30 天内每天的数据 | 2.789s | 0.412s | 性能提升 5.8 倍 |
6个指标查询机构每日数据 | 查询 30 天内的总数据量 | 2.232s | 0.389s | 性能提升 4.7 倍 |
6个指标查询客户经理 180天总数据量 | 查询 180天内的总数据量 | 19.1s | 0.386s | 性能提升 48.5 倍 |
6个指标查询机构 180天总数据量 | 查询 180天内的总数据量 | 5.291s | 0.585s | 性能提升 8 倍 |
单指标查询机构每日数据 | 查询 30天内每天的数据量 | 0.534s | 0.153s | 性能提升 2.5 倍 |
单指标查询机构每日数据 | 查询 30天内每天的数据量 | 0.356s | 0.193s | 性能提升近 1 倍 |
单指标查询客户经理1 日数据 | 查询当日数据 | 0.142s | 0.097s | 性能提升 0.5 倍 |
更多有关ArgoDB的产品功能请查看:ArgoDB官方文档站