《Impala中的性能优化.pdf》由会员分享,可在线阅读,更多相关《Impala中的性能优化.pdf(38页珍藏版)》请在三个皮匠报告上搜索。
1、DataFunSummit2023Impala在数据湖中的性能优化黄权隆-Cloudera-Staff Software EngineerImpala与数据湖Iceberg相关优化Codegen优化未来展望DataFunSummit2023Impala与数据湖数据湖概览 SQL查询引擎,面向交互式查询场景 数据/元数据都在外部存储上,无状态 MPP架构,内存计算,C+内核 Open Storage HDFS、Ozone、Kudu、S3、ADLS、HBase等 Open File Format Parquet、ORC、Avro、Text等 Open Table Format Iceberg、Hu
2、di、Hive ACID等 企业级的Security集成 授权、鉴权、血缘、审计、脱敏等都有集成 如Kerberos、LDAP、JWT、SSL、Ranger、Atlas集成等 企业级应用广泛 1400 个客户,97000 台机器 单集群规模 500 节点Impala简介 Coordinator处理查询请求,可有多个 Parse,Analyze,Plan,Optimize 元数据缓存 准入控制/并发控制,调度 Executor 分布式执行Impala架构Query CompilerQuery CoordinatorLocal Metadata CacheQuery ExecutorHive Me
3、tastoreStorage Master NodesStateStoreFE(Java)BE(C+)HDFS/OzoneKuduS3/ADLS/GCPHBaseImpala CoordinatorImpala ExecutorsMetadata&Control ExecutionStorageRangerQuery ExecutorQuery ExecutorQuery ExecutorQuery ExecutorQuery ExecutorQuery ExecutorQuery ExecutorQuery ExecutorQuery ExecutorQuery ExecutorQuery
4、ExecutorQuery ExecutorCatalog ServerCached Table Metadata外部系统元数据/调度/集群管控执行层 所有查询都能查看,包括正在运行或失败的查询,以及DDL/DML等Impala WebUI Queries页面 图形化的query plan,开源版本即可拥有Impala WebUI Query Plan可视化Impala WebUI Query Timeline 4.3.0:计划中 4.2.0:2022-12-08 4.1.0:2022-06-01 4.0.0:2021-07-12 3.4.0:2020-04-24 3.3.0:2019-08-
5、22 3.2.0:2019-03-28(CDH6.3 版本)3.1.0:2018-12-06 3.0.1:2018-10-24 3.0.0:2018-05-07 2.12.0:2018-04-24(CDH5.16 版本)2.11.0:2017-12-28Impala 发布历史Benckmark测试建议使用新版本 对数据的假设/管控有限 数据源、数据导入方式、文件格式、表格式多样 存算分离,支持开放存储 数据湖/湖仓优化 vs.传统数仓优化 数据预排序 需要数据生产者支持 若保证有序,简单的min()/max()查询可只读首/末行,可实现直接merge-join等优化 不保证有序,只能基于文件m
6、in-max索引做谓词下推,数据有序时,min-max索引更有效 字典编码、索引等 文件级别可以有字典编码,但难以维护全局字典 难以自定义文件格式 数据位置不可控,难以做colocated优化等 数据湖查询引擎的挑战 开放性(Openness)数据湖查询引擎可做的优化 为支持开放性、存算分离等,不能对数据做过多假设,但仍有许多优化点可做:查询计划层 谓词推导/下推、常量传播、Join顺序、子查询改写等 结合执行层:Pre-aggregation、Runtime Filter、Broadcast vs Partitioned(Shuffle)执行层 JIT Codegen、向量化、SIMD、Pr