当前位置: 首页 > news >正文

装饰公司网站模板下载中国机械设备网官网

装饰公司网站模板下载,中国机械设备网官网,程序员网站,正规品牌网站设计价格作者#xff1a;王世发#xff0c;吴艳兴等#xff0c;58同城数据架构部 导读#xff1a; 本文介绍了58同城在其数据探查平台中引入StarRocks的实践#xff0c;旨在提升实时查询性能。在面对传统Spark和Hive架构的性能瓶颈时#xff0c;58同城选择StarRocks作为加速引擎王世发吴艳兴等58同城数据架构部 导读 本文介绍了58同城在其数据探查平台中引入StarRocks的实践旨在提升实时查询性能。在面对传统Spark和Hive架构的性能瓶颈时58同城选择StarRocks作为加速引擎增强数据湖的分析能力。在迁移过程中团队克服了多个兼容性问题并对系统进行了稳定性和易用性的改进特别是在Java UDF支持和SQL黑名单功能方面。 项目实施一年多以来58同城取得了显著的成果 日均迁移SQL数量约 6.5 万条 查询成功率稳定在 98% 以上 。 查询性能较迁移前提升 20 倍以上 平均查询时间缩短至 3.3 秒 P90查询时间为 5 秒 。 1 背景 “数据探查平台”是 58集团统一的 SQL 开发平台旨在提供一个便捷的环境让用户能够轻松编写、调试和执行 SQL 查询并实时查看结果每天超过10万SQL 运行包括 ETLAdHoc 等场景针对存储在 HDFS 上的海量数据查询其底层执行引擎是由我们数据架构部门来提供的技术支持。 1.1 执行引擎原有架构 在引入 StarRocks 引擎之前针对存储在 HDFS 上的海量数据查询底层执行引擎的整体架构如下 在该架构下大部分的探查 SQL 是通过 Spark 来执行的少部分查询会路由到 Hive查询响应时间整体在分钟级随着公司对降本增效需求的日益增长这已经无法满足即席查询Ad-Hoc对快速响应时间的要求因此 Ad-Hoc 查询加速就成为亟待解决的问题。 1.2 探查场景引入 StarRocks 引擎 经过深入调研与评估后我们最终选择了 StarRocks 作为我们数据探查场景的加速引擎主要基于以下几个原因 统一数据湖分析能力 我们只需要简单的创建一个 Hive Catalog即可实现无缝衔接查询 Hive 表的数据无需经过复杂的数据预处理。 MPP 框架与向量化执行引擎 可以大大提升 Ad-Hoc 查询速度综合官方基准测试结果及我们内部 POC 测试结果使用 StarRocks 引擎可以将查询性能提升 10 倍以上。 架构简洁 StarRocks 架构简洁运维成本较低。 引入 StarRocks 引擎后数据探查执行引擎的整体架构如下 当有查询请求到来时Kyuubi 会首先根据路由规则判断是否可以使用 StarRocks 执行。如果查询满足 StarRocks 的执行要求我们将优先使用 StarRocks 进行处理。如果在 StarRocks 执行期间遇到异常情况系统会自动降级到 Spark 执行以确保用户的查询结果不会受到影响。 我们的整体目标是尽可能多地将数据探查 SQL 透明地迁移到 StarRocks 引擎并且该过程对用户来说是无感知的下文将围绕探查 SQL 迁移到 StarRocks 引擎过程中遇到的一系列问题及其解决方案展开详细讲解。 2 StarRocks 兼容 Spark 改造 在推进探查 SQL 迁移过程中遇到的最主要的问题就是 StarRocks 与 Spark 查询结果不一致的问题。为了确保迁移过程对用户透明无感知我们就需要对 StarRocks 进行改造使其能够兼容 Spark的执行逻辑。 虽然不同查询引擎在架构上存在差异但概括起来 SQL 语句的执行流程无外乎如下几个步骤 而在我们迁移过程中遇到的 StarRocks 与 Spark 不兼容问题基本上贯穿了上面整个执行流程下面我将按照上述执行流程依次讲解每个环节中我们发现并解决的不兼容问题。 2.1 语法解析阶段 语法解析阶段主要工作是将查询语句转化成语法树在这个阶段我们遇到的主要问题就是语法不兼容问题概括起来包括以下两类问题 语法不兼容问题 在迁移过程中语法不兼容问题是比较常见的问题。对于一些相对容易解决的问题我们通过直接修改 StarRocks 源码来向 Spark 兼容。例如Spark 对表别名的大小写不敏感而 StarRocks 则是大小写敏感的。针对这种情况我们对 StarRocks 源码进行了相应的修改。 对于另一部分语法不兼容问题我们是通过在 FE 端集成 SQLGlot 插件修复的该插件能够实现查询语句在不同的 SQL 方言之间相互转换。例如一些标识符如 key、show、system、group 等在 Spark 中是可以在 SQL 语句中直接使用的但在 StarRocks 中会被识别为关键字无法直接使用。通过 SQLGlot 插件可以将 SQL 语句中的这些标识符都加上反引号从而使其在 StarRocks 中可以正常执行。 语法不支持问题 对于 Spark 的一些高阶语法如 LATERAL VIEW 语法、GROUP BY ... WITH CUBE 语法以及 GROUP BY ... GROUPING SETS(...) 语法StarRocks 社区版本目前尚不支持但是在我们的线上业务中这部分语法的使用还是很频繁的。针对这些问题我们扩展了 StarRocks 的能力使其能够支持这些语法。 2.2 元数据绑定阶段 在元数据绑定阶段主要工作是将 SQL 语句中的标识符如表名、列名等与数据库的实际元数据进行关联。在这个阶段我们遇到的主要问题是由于 StarRocks 的 Hive Catalog 默认开启了元数据的缓存导致的查询结果不一致问题。 例如当 Hive 表的某个分区数据被重跑后StarRocks 在一段时间内无法感知到分区元数据的变更从而导致查询结果不一致。 针对这一问题经过综合分析后我们最终决定关闭了 Hive Catalog 的所有元数据缓存功能这一决定看似简单粗暴但主要基于以下两点考虑 我们当前所做的工作是将一部分原来由 Spark 执行的查询迁移到 StarRocks 上执行而 Spark 本身也并不缓存 Hive 表的元数据因此即使关闭了 Hive Catalog 的元数据缓存功能也并不会增加 Hive MetaStore 的整体访问量。 当前我们线上业务的查询并发并不高缓存元数据并不会带来显著的收益。相反如果开启了元数据缓存并且查询了一些分区数很多的 Hive 表一般为多级分区表后续元数据缓存功能会周期性的刷新缓存中的元数据这样反而会增加 Hive MetaStore 的负担。 2.3 查询优化阶段 在查询优化阶段主要工作是基于 RBO基于规则的优化和 CBO基于成本的优化对执行计划进行重写以获取最优的执行计划提高查询性能。在这个阶段遇到的主要问题是隐式转换问题。 在 RBO 规则中有一类隐式转换规则可以在优化查询时自动进行数据类型转换。例如假设有一个分区表 t1分区字段 dt 为字符串类型。如果用户在查询 t1 表时使用数值类型的分区过滤条件如 where t1.dt 20241201那么针对这种不规范的用法Spark 和 StarRocks 都会使用各自的隐式转换规则进行数据类型转换。 针对这类问题我们系统的梳理了 Spark 和 StarRocks 在各类表达式中的隐式转换规则并将StarRocks 的隐式转换规则与 Spark 进行了兼容基本上彻底解决了这一类问题。 2.4 查询执行阶段 在查询优化阶段结束后会生成一个由各种算子构成的查询计划树在查询执行阶段主要工作是在执行端执行这一系列的算子例如 Scan 算子负责从存储层读取数据Expr 算子负责进行表达式计算。在这个阶段遇到的兼容性问题也是最多的概括起来主要包括如下两类问题 text 格式的 Hive 表兼容性问题 在我们的生产环境中有相当一部分 Hive 表使用的是 textlzo 存储格式。针对这种存储格式StarRocks 支持的并不完善例如早期 StarRocks 版本不支持查询 lzo 压缩的 text 格式的 Hive 表。为了解决这个问题我们与 StarRocks 社区积极合作扩展了 StarRocks 对 textlzo 存储格式的支持。 另外对于 text 格式的 Hive 表StarRocks 社区版本也不支持查询 Map 类型的字段我们也扩展了StarRocks 的能力使其能够支持对 Map 类型字段的查询。 除此之外我们还遇到了一些其他的兼容性问题例如 hive 表字段分隔符问题 在某些特殊情况下StarRocks 在处理 Hive 表字段分隔符时与 Spark 存在不兼容的情况。 临时文件处理问题 StarRocks 在查询 Hive 表时没有忽略存储目录下的临时文件。 空文件处理问题 StarRocks 在解压缩空文件时会抛出异常。 针对这些问题我们都一一进行了修复确保了 StarRocks 能够正确处理这些特定的场景。 函数不兼容问题 函数不兼容问题也是我们在迁移过程中花费最多精力处理的问题。具体又可以细分为以下两类 Spark 与 StarRocks 都有相同功能的函数但是函数名称不同 这类函数处理起来比较简单只需要在生成执行计划时将 Spark 中的函数映射到 StarRocks 具有相同功能的函数即可。 Spark 支持但 StarRocks 不支持或不兼容的函数 对于这类问题我们采取了两种方式进行处理 逻辑简单的函数 我们通过借助 StarRocks Java UDF 功能创建 UDF 并在生成执行计划时将这些函数映射到自己实现的 Java UDF 函数来解决。 逻辑复杂的函数 我们直接修改 StarRocks 相关函数的代码使其兼容 Spark 函数的处理逻辑。 通过以上方法我们共计解决了 40 多个不兼容的函数主要涉及日期处理字符串处理正则匹配聚合函数等函数基本上彻底解决了生产环境中存在的函数不兼容问题。 3 实践经验总结 在使用 StarRocks 的过程中我们从实践中总结出了关于性能、稳定性和易用性的关键经验。 3.1 性能 我们的 StarRocks 集群开启了 Data Cache 功能以提升查询性能。整体表现令人满意但在个别场景中查询性能受到 HDFS DataNode 慢节点问题的影响出现了性能长尾现象。 针对这一问题我们采用了自研的 HDFS 功能。当系统检测到某个 DataNode 响应缓慢时会自动切换至其他副本读取数据。为实现这一功能我们替换了 StarRocks 依赖的 HDFS JAR 包。经过优化后系统的 P99 查询性能提升了 25%效果显著。 3.2 稳定性 在项目初期我们使用的是 StarRocks 3.0 版本我们遇到了一些挑战例如 FE 卡死或 BE 节点偶发性异常等。通过与 StarRocks 社区的积极交流我们获得了社区的大力支持并在升级至 StarRocks 3.2 后整体系统的稳定性有了明显的提升。 其中一个值得分享的案例是关于 CBO 统计信息的问题。在查询一张包含 3565 列的大宽表时CBO 优化器会生成一个较大的 SQL 来获取统计信息这可能导致 FE 内存占用过高影响集群的正常运行。 针对这一情况我们优化了相关逻辑跳过了部分非必要的统计信息查询。这一改进有效降低了查询负载同时进一步提升了系统的稳定性。 注意稳定性问题在最新版本已优化。 3.3 易用性 为提升系统的操作便利性我们对以下功能进行了优化 Java UDF 支持从 HDFS 下载 JAR 包 增强了 UDF 功能使 JAR 包可通过 HDFS 下载简化了运维流程。 SQL 黑名单持久化 改进黑名单存储方式实现多节点同步和持久化降低了运维成本。 4 StarRocks 上云 4 .1 背景 为了进一步推进公司的降本增效战略我们部门与 58 云平台团队进行通力合作决定将一部分大数据组件迁移到 58 云平台。而对于 StarRocks 本身来说数据探查场景主要借助其数据湖分析能力查询 Hive 表数据集群本身是无状态的并不会存储数据天然就适合上云因此我们决定将数据探查场景的 StarRocks 集群上云。 然而由于各种情况的限制上云使用的宿主机每台只能提供最多 5CORE 15GB 的资源。这给 StarRocks 的上云之路带来了一些挑战。 4 .2 上云架构 上图为 StarRocks 云集群的整体架构 由于每个容器使用的资源限制在 5CORE 15GB而 FE 节点需要存储集群的元数据对内存资源要求较高因此FE节点我们并没有上云仍然使用物理机部署。 BE 集群只是为了存储审计日志表数据需要开启云集群本地存储只部署了少量实例。 CN 集群是主要的计算节点无状态支持快速的扩缩容。 4 .3 面临的挑战 上云过程中遇到的最大挑战就是容器内存资源不足这导致 CN 节点容器频繁发生 OOM被操作系统杀死。为了解决这一问题我们采取了以下措施 1 设置资源组隔离及查询队列 通过设置资源组隔离和查询队列控制查询并发确保资源的合理利用。 2 开启中间结果落盘功能 开启中间结果落盘功能将部分计算结果暂存到磁盘上从而降低内存消耗。 3 减少 CN 进程执行 线程数 CN 进程中有一些与执行线程数相关的参数默认值通常设置为机器 CPU 的核数。而在容器环境下CN 进程识别出的 CPU 核数是宿主机整体的 CPU 核数。因此我们需要根据容器的实际资源配置手动调整这些参数。 4 限制 CN 进程 JVM 内存 在使用 StarRocks 数据湖分析能力查询 Hive 表场景下有一部分功能是通过 JNI 来实现的例如读取 HDFS 文件还有就是一些 JAVA UDF 的使用。然而由于 JVM 默认堆内存的上限是根据物理机的内存自动设置的这种默认行为并不适配容器化环境。因此需要通过设置 CN 进程的 JAVA_OPTS 参数 来限制 JVM 内存的使用从而确保 CN 进程 的整体内存消耗不会超出容器的内存限制。 通过采取以上一系列措施基本上解决了因容器内存溢出导致的系统不稳定问题。 5 整体收益 项目实施一年多以来 目前日均透明迁移到 StarRocks 集群的有效 SQL 数量约为 6.5W 条。 路由到 StarRocks 集群的 SQL整体查询成功率稳定在 98% 以上。 已迁移的 SQL 中平均查询时间在 3.3s 左右P90 查询时间在 5s 左右P99 查询时间在 52s 左右。 与迁移前相比平均查询性能提升了 20 倍以上查询体验得到了很大的提升。 后续我们也将不断进行迭代持续发现并解决 StarRocks 与 Spark 的兼容性问题使得更多的 SQL 能够透明地迁移到 StarRocks 集群。 6 后续规划 统计发现在我们的数据探查场景中有相当一部分 SQL 是直接对明细表进行聚合和关联查询并没有经过数仓建模。这种查询方式不仅效率低下而且类似的复杂查询重复执行也在很大程度上浪费了计算资源。 如果能够根据这些类似的复杂查询自动提取出公共子查询来创建物化视图并借助 StarRocks 的物化视图透明改写能力就可以有效解决这一问题。 事实上我们已经在进行智能物化视图方面的探索并将持续关注社区在这方面的进展尽快完成智能物化视图能力的落地以助力降本增效战略的持续推进。 更多交流联系我们StarRocks
文章转载自:
http://www.morning.zyytn.cn.gov.cn.zyytn.cn
http://www.morning.bmtkp.cn.gov.cn.bmtkp.cn
http://www.morning.rltsx.cn.gov.cn.rltsx.cn
http://www.morning.tdfyj.cn.gov.cn.tdfyj.cn
http://www.morning.xcszl.cn.gov.cn.xcszl.cn
http://www.morning.ghjln.cn.gov.cn.ghjln.cn
http://www.morning.ghrhb.cn.gov.cn.ghrhb.cn
http://www.morning.bnrnb.cn.gov.cn.bnrnb.cn
http://www.morning.gllhx.cn.gov.cn.gllhx.cn
http://www.morning.yrccw.cn.gov.cn.yrccw.cn
http://www.morning.rongxiaoman.com.gov.cn.rongxiaoman.com
http://www.morning.swlwf.cn.gov.cn.swlwf.cn
http://www.morning.jqbmj.cn.gov.cn.jqbmj.cn
http://www.morning.gcbhh.cn.gov.cn.gcbhh.cn
http://www.morning.wtcbl.cn.gov.cn.wtcbl.cn
http://www.morning.cwtrl.cn.gov.cn.cwtrl.cn
http://www.morning.gdgylp.com.gov.cn.gdgylp.com
http://www.morning.xrrjb.cn.gov.cn.xrrjb.cn
http://www.morning.lpskm.cn.gov.cn.lpskm.cn
http://www.morning.xkqjw.cn.gov.cn.xkqjw.cn
http://www.morning.zfhzx.cn.gov.cn.zfhzx.cn
http://www.morning.gbfzy.cn.gov.cn.gbfzy.cn
http://www.morning.wrtbx.cn.gov.cn.wrtbx.cn
http://www.morning.tgtsg.cn.gov.cn.tgtsg.cn
http://www.morning.zrhhb.cn.gov.cn.zrhhb.cn
http://www.morning.tkchg.cn.gov.cn.tkchg.cn
http://www.morning.ylpwc.cn.gov.cn.ylpwc.cn
http://www.morning.mmtjk.cn.gov.cn.mmtjk.cn
http://www.morning.fbqr.cn.gov.cn.fbqr.cn
http://www.morning.wrlcy.cn.gov.cn.wrlcy.cn
http://www.morning.yrddl.cn.gov.cn.yrddl.cn
http://www.morning.zqwp.cn.gov.cn.zqwp.cn
http://www.morning.pqkrh.cn.gov.cn.pqkrh.cn
http://www.morning.xyrss.cn.gov.cn.xyrss.cn
http://www.morning.nfks.cn.gov.cn.nfks.cn
http://www.morning.smmrm.cn.gov.cn.smmrm.cn
http://www.morning.qmbgb.cn.gov.cn.qmbgb.cn
http://www.morning.gslz.com.cn.gov.cn.gslz.com.cn
http://www.morning.fllx.cn.gov.cn.fllx.cn
http://www.morning.pmhln.cn.gov.cn.pmhln.cn
http://www.morning.qfrsm.cn.gov.cn.qfrsm.cn
http://www.morning.qwdqq.cn.gov.cn.qwdqq.cn
http://www.morning.rylr.cn.gov.cn.rylr.cn
http://www.morning.cpgdy.cn.gov.cn.cpgdy.cn
http://www.morning.lydtr.cn.gov.cn.lydtr.cn
http://www.morning.mqbsm.cn.gov.cn.mqbsm.cn
http://www.morning.zbjfq.cn.gov.cn.zbjfq.cn
http://www.morning.darwallet.cn.gov.cn.darwallet.cn
http://www.morning.jghty.cn.gov.cn.jghty.cn
http://www.morning.pdghl.cn.gov.cn.pdghl.cn
http://www.morning.wgkz.cn.gov.cn.wgkz.cn
http://www.morning.cplym.cn.gov.cn.cplym.cn
http://www.morning.tjndb.cn.gov.cn.tjndb.cn
http://www.morning.dkslm.cn.gov.cn.dkslm.cn
http://www.morning.hyhzt.cn.gov.cn.hyhzt.cn
http://www.morning.ggcjf.cn.gov.cn.ggcjf.cn
http://www.morning.ymrq.cn.gov.cn.ymrq.cn
http://www.morning.pqqhl.cn.gov.cn.pqqhl.cn
http://www.morning.rkfh.cn.gov.cn.rkfh.cn
http://www.morning.rfbpq.cn.gov.cn.rfbpq.cn
http://www.morning.lhldx.cn.gov.cn.lhldx.cn
http://www.morning.mgkb.cn.gov.cn.mgkb.cn
http://www.morning.ljyqn.cn.gov.cn.ljyqn.cn
http://www.morning.srbfz.cn.gov.cn.srbfz.cn
http://www.morning.qczjc.cn.gov.cn.qczjc.cn
http://www.morning.kcnjz.cn.gov.cn.kcnjz.cn
http://www.morning.kqxng.cn.gov.cn.kqxng.cn
http://www.morning.dzqyn.cn.gov.cn.dzqyn.cn
http://www.morning.mfsxd.cn.gov.cn.mfsxd.cn
http://www.morning.pfkrw.cn.gov.cn.pfkrw.cn
http://www.morning.fpqq.cn.gov.cn.fpqq.cn
http://www.morning.1000sh.com.gov.cn.1000sh.com
http://www.morning.hmbtb.cn.gov.cn.hmbtb.cn
http://www.morning.mtsgx.cn.gov.cn.mtsgx.cn
http://www.morning.pjwfs.cn.gov.cn.pjwfs.cn
http://www.morning.wcqkp.cn.gov.cn.wcqkp.cn
http://www.morning.jhyfb.cn.gov.cn.jhyfb.cn
http://www.morning.jydky.cn.gov.cn.jydky.cn
http://www.morning.lbpqk.cn.gov.cn.lbpqk.cn
http://www.morning.hdrsr.cn.gov.cn.hdrsr.cn
http://www.tj-hxxt.cn/news/247898.html

相关文章:

  • 中国建设银行官方网站诚聘英才频道贵州省建设厅的网站
  • 类似淘宝网站建设有哪些模板网站图片 优化
  • 贵阳网站优化广西网络优化seo
  • 自己做的网站能卖么重庆建工集团建设网站
  • 永康建设网站广告设计与制作包括哪些内容
  • 大连鑫农建设集团网站寮步仿做网站
  • 网站背景全屏广州安全教育平台账号是多少
  • 找人做的网站怎么看ftp网站栏目设置完整度建设
  • 网站如何留住客户网站开发协议书
  • 上海定制化网站开发公司丹阳做网站的
  • 2015帝国cms网站国际最好的摄影作品网站
  • 苏州做网站推广的免费行情软件app网站下载大全
  • 专业的企业网站优化公司网站空间免备案
  • 建设银行注册网站名咋设置wordpress批量读取excel
  • 伊春市建设局网站wordpress 字体 插件下载地址
  • 静态网站管理系统信主网站
  • 宜宾建设局网站热狗seo顾问
  • 网站备案 godaddy电子版个人简历
  • 电子商务网站建设行情网页设计大专工资一般多少
  • 滨州网站定制搬瓦工搭建wordpress
  • 做兼职在什么网站上找淄博桓台网站建设报价
  • 六安市网站制作吉林商城网站建设
  • 济宁企业做网站如何制作收费网站
  • 全国做网站的内容管理系统软件
  • 怎么查网站有没有做404深圳设计产业园
  • 郑州住房和城乡建设部网站wordpress raw
  • html5网站开发公司在云服务器打建网站
  • 昆明网站建设哪家便宜购物网站的模块
  • 最新网站推广方法wordpress分类目录浏览权限
  • 注册网站如何备案温州建设银行网站