不多说,直接上干货!
• 执行计划
– 查询sql执行之前,先对该sql做一个分析,列出需要完成这一项查询的详细方案
– 命令:explain sql、profile
要点:
• 1、SQL优化,使用之前调用执行计划
• 2、选择合适的文件格式进行存储
• 3、避免产生很多小文件(如果有其他程序产生的小文件,可以使用中间表)
• 4、使用合适的分区技术,根据分区粒度测算
• 5、使用compute stats进行表信息搜集
• 6、网络io的优化:
– a.避免把整个数据发送到客户端
– b.尽可能的做条件过滤
– c.使用limit字句
– d.输出文件时,避免使用美化输出
• 7、使用profile输出底层信息计划,在做相应环境优化
• 8、如果是刷新表的新增元数据要使用refresh 表名 来刷新,不要使用impala-shell -r 或 invalidate metadata
• 9、如果执行SQL的结果内容较多的话可以使用 impala-shell -B 将一些不必要的样式输出去掉