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

期末成绩怎么做网站cc wordpress

期末成绩怎么做网站,cc wordpress,怎样做 网站的快捷链接,网站开发工作室简介在优化多层嵌套子查询的 Hive SQL 时,除了常见的谓词下推、分区裁剪、WITH 子句复用和动态分区优化,还可以通过 抽象语法树(AST)分析 和 基于历史的优化(HBO) 进一步优化。以下是结合所有技术方向的完整方案…

在优化多层嵌套子查询的 Hive SQL 时,除了常见的谓词下推、分区裁剪、WITH 子句复用和动态分区优化,还可以通过 抽象语法树(AST)分析基于历史的优化(HBO) 进一步优化。以下是结合所有技术方向的完整方案:


一、传统优化手段补充

1. 谓词下推(Predicate Pushdown)
  • 原理:将过滤条件尽可能下推到靠近数据源的子查询中,减少中间结果集。

  • 示例

    -- 优化前(外层过滤)
    SELECT * FROM (SELECT user_id, SUM(amount) AS total FROM orders GROUP BY user_id
    ) t1 WHERE total > 1000;
    ​
    -- 优化后(内层过滤)
    SELECT user_id, SUM(amount) AS total 
    FROM orders 
    GROUP BY user_id
    HAVING SUM(amount) > 1000;  -- 减少数据传递
2. 分区裁剪(Partition Pruning)
  • 原理:利用分区键过滤无关分区,减少数据扫描量。

  • 关键配置:确保分区键在 WHERE 条件中显式使用,并启用 hive.optimize.ppd=true

3. WITH 子句复用(CTE)
  • 原理:避免重复计算相同子查询。

    WITH user_summary AS (SELECT user_id, SUM(amount) AS total FROM orders GROUP BY user_id
    )
    SELECT a.user_id, a.total 
    FROM user_summary a 
    JOIN user_summary b ON a.user_id = b.user_id;

4. 动态分区优化
  • 配置:避免小文件问题。

    SET hive.exec.dynamic.partition=true;
    SET hive.exec.dynamic.partition.mode=nonstrict;
    SET hive.exec.max.dynamic.partitions=10000;


二、AST(抽象语法树)分析优化

1. 解析执行计划
  • 操作:使用 EXPLAINEXPLAIN FORMATTED 查看 SQL 的 AST 和执行计划。

    EXPLAIN FORMATTED
    SELECT * FROM (SELECT user_id, COUNT(*) FROM orders GROUP BY user_id
    ) t1 WHERE t1.user_id > 1000;

  • 关注点

    • Operator 层级:检查是否有冗余的 SELECTGROUP BY 操作。

    • 数据流路径:识别未下推的谓词或未裁剪的分区。

2. 优化 AST 结构
  • 场景:多层嵌套子查询可能被解析为多个 TableScanReduceSink 操作。

  • 优化方法

    • 扁平化嵌套查询:将多层子查询合并为单层操作。

      -- 优化前(三层嵌套)
      SELECT * FROM (SELECT * FROM (SELECT * FROM orders) t1) t2;
      ​
      -- 优化后(单层扫描)
      SELECT * FROM orders;
    • 消除冗余操作:移除无意义的 SELECT * 或重复聚合。

3. 手动重写复杂逻辑
  • 示例:将 IN 子查询转换为 JOIN

    -- 优化前(IN 子查询)
    SELECT * FROM users 
    WHERE user_id IN (SELECT user_id FROM orders);
    ​
    -- 优化后(JOIN)
    SELECT users.* 
    FROM users JOIN orders ON users.user_id = orders.user_id;

三、HBO(基于历史的优化)

1. 统计信息收集
  • 原理:Hive 通过统计信息(表大小、列基数)优化执行计划。

  • 操作

    ANALYZE TABLE orders COMPUTE STATISTICS;              -- 表级统计
    ANALYZE TABLE orders COMPUTE STATISTICS FOR COLUMNS;  -- 列级统计
  • 作用:优化器根据统计信息选择更优的 Join 顺序或聚合策略。

2. 基于成本的优化(CBO)
  • 启用配置

    SET hive.cbo.enable=true;
    SET hive.compute.query.using.stats=true;
  • 优化场景

    • Join 顺序调整:小表优先 Join,减少数据 Shuffle 量。

    • Map Join 自动选择:根据小表统计信息自动触发 Map Join。

3. 历史执行日志分析
  • 工具:结合 Hive 日志或第三方工具(如 Apache Atlas、Tez UI)分析历史任务。

  • 优化方向

    • 资源倾斜:针对 GROUP BYJOIN 的倾斜 Key 添加随机前缀。

    • 长尾任务:调整 hive.exec.reducers.bytes.per.reducer 控制 Reducer 数量。


四、综合优化案例

问题 SQL
SELECT *
FROM (SELECT user_id, COUNT(*) AS cnt FROM (SELECT * FROM orders WHERE dt BETWEEN '2023-01-01' AND '2023-01-31') t1 GROUP BY user_id
) t2 
WHERE cnt > 100
ORDER BY cnt DESC 
LIMIT 10;
优化步骤
  1. AST 分析:发现外层 WHERE cnt > 100 可下推到内层 HAVING

  2. 统计信息:收集 orders 表的 dt 分区和 user_id 基数信息。

  3. 逻辑重构

    WITH filtered_orders AS (SELECT user_id FROM orders WHERE dt BETWEEN '2023-01-01' AND '2023-01-31'  -- 分区裁剪
    )
    SELECT user_id, COUNT(*) AS cnt 
    FROM filtered_orders 
    GROUP BY user_id 
    HAVING cnt > 100  -- 谓词下推
    ORDER BY cnt DESC 
    LIMIT 10;

  4. HBO 调优:根据历史执行数据,增加 Reducer 并行度。

    SET mapreduce.job.reduces=20;


五、总结

优化维度具体手段
传统优化谓词下推、分区裁剪、CTE 复用、动态分区
AST 分析扁平化嵌套、消除冗余 Operator、手动重写逻辑
HBO统计信息收集、CBO 调优、历史日志分析

最终通过 减少数据扫描量、降低计算复杂度、利用统计信息 实现性能提升。例如:

  • 通过 AST 分析将执行计划的 Operator 从 15 层减少到 8 层;

  • 结合 HBO 自动选择 Map Join,使 Shuffle 数据量减少 70%。


文章转载自:

http://gfAUPDWt.xrwsg.cn
http://msfPK5w2.xrwsg.cn
http://nhZxqlUi.xrwsg.cn
http://63i6Dk3k.xrwsg.cn
http://SSnAFPgA.xrwsg.cn
http://VNsMDCCC.xrwsg.cn
http://Zl6QtXMr.xrwsg.cn
http://ypJU9bsP.xrwsg.cn
http://7sr6mD47.xrwsg.cn
http://v4umqp58.xrwsg.cn
http://z9IPEGiu.xrwsg.cn
http://gefPNG2R.xrwsg.cn
http://eaqfxyxo.xrwsg.cn
http://4pmhaQLs.xrwsg.cn
http://PMeLgPhr.xrwsg.cn
http://XXBYKZqN.xrwsg.cn
http://U2OKcLIp.xrwsg.cn
http://6m6plRx0.xrwsg.cn
http://PK2WJtWM.xrwsg.cn
http://dp9tg5IC.xrwsg.cn
http://jmTNGHjN.xrwsg.cn
http://aqFLmlrT.xrwsg.cn
http://hup6xmJW.xrwsg.cn
http://GPvidm48.xrwsg.cn
http://wurQ2Vlx.xrwsg.cn
http://yuo0YYL5.xrwsg.cn
http://oY9uKvov.xrwsg.cn
http://MBcFKRqY.xrwsg.cn
http://OyLt5C9C.xrwsg.cn
http://1AlaaZGW.xrwsg.cn
http://www.dtcms.com/wzjs/704404.html

相关文章:

  • 工装公司十大排名网站优化推广方法
  • 深圳市建设管理中心网站潍坊可以做网站的公司
  • 小企网站建设解决方案南充城市建设投诉网站
  • 网站排名推广自己怎么做微信微网站制作
  • 网站做一半能退吗有哪些做农产品的网站有哪些
  • 微信与网站对接长沙市人才招聘网最新招聘信息
  • 个人网站可以放广告吗南京网站建设方案
  • 网站开发协议范本开发app制作公司
  • 网站在国内服务器在国外免费网页app一键生成软件
  • 分类信息网站开发网络培训平台有哪些
  • 酷站素材wordpress 漏洞 利用
  • wordpress 不能查看站点公众号里原文单发到dede网站上
  • 制作网站首页psd深圳十大品牌设计公司
  • 网站建设论文开题报告福州网站建设托管
  • 网站美观界面网站不做备案
  • 保定中小企业网站制作dede自适应网站注意事项
  • 如何做网站网页网站模版 蓝色
  • 怎么创建网站?百度合作的网盟网站
  • 合肥网站建设推荐 晨飞网络html博客网页完整代码
  • 怎么健免费网站吗最新新闻热点事件国际
  • 在小型网站建设小组网页服务器一年多少钱
  • 网站正在建设模板电影网站网页设计
  • 中小型网站建设的基本流程百度收录文章
  • 怎么建设个人博客网站wordpress 修改上传路径
  • 沭阳各乡镇做网站营销型网站郑州
  • 做网站用百度地图和天地图软件定制一般多少钱
  • 电子商务网站建设与管理小论文wordpress云盘
  • 可以投稿的写作网站dede 转wordpress
  • 如何给网站增加内链建设工程合同管理论文
  • 建设官方网站需要注意什么Wordpress host