impala学习笔记

1 概述

  • 介绍

(1)交互式:基于内存计算,性能够高,速度快

(2)基于Hive:跟Hive共用一个MetaStore

  • Impala的优缺点

  • 架构

    (1)Catalog:将impala表的metadata分发到各个impalad

    (2)Statestore:收集metadata,以及各个impalad的资源信息等,以及query的协调调度(执行impala语句后,各组件之间的协调关系)

    (3)Impalad:包含Query Planner(负责语句的解析)、Query Coordinator(负责调度)、Query Executor(负责执行)

  • 运行原理

    1. 执行impala语句之前,会先在集群上开启impalad进程
    2. impalad进程向Statestore发送注册信息
    3. 客户端发送SQL给impalad进程,由Query Planner解析SQL,由Query Coordinator获取相关元数据和数据地址,并给其他的impalad分配具体的执行任务(可能分配给自己)
    4. impalad的Query Executor去访问具体的数据并执行SQL,同时与其他的impalad交换执行信息
    5. 由第一个分配任务的impalad的Query Coordinator收集执行结果并返回给客户端

2 使用

  • 使用方式一:可以通过hue连接impala进行sql语句的编写

  • 使用方式二:外部shell

    bash 复制代码
    # 连接到其他机器的impala
    impala-shell -i 主机号:端口号
    
    # 不进入shell直接执行sql
    impala-shell -q sql语句
    
    # 不进入shell执行文件中的sql语句
    impala-shell -f sql文件
    
    # 把查询结果输出到文件 -o
    impala-shell -q sql语句 -o 输出文件
    
    # 以格式化形式输出 -B
    impala-shell -q sql语句 -B -o 输出文件
    
    # 打印表头 --print_header
    impala-shell -q sql语句 -B --print_header -o 输出文件
    
    # 指定输出每列之间的分隔符 --output_delimiter
    impala-shell -q sql语句 -B --output_delimiter=";" -o 输出文件
    
    # 进入shell后执行每一条sql都展示sql的执行详情
    impala- shell -p
    
    # 查看impala版本
    impala-shell -v
    
    # 刷新元数据库,当hive表插入新数据时,impala需要刷新元数据库才能读取到,全量刷新,刷新所有的数据库表的元数据(尽量不用 )
    impala-shell -r
    
    # 在sql执行错误时跳过当前语句继续执行后续语句 -c
    impala-shell -c -f sql文件
  • 使用方式三:内部shell

    bash 复制代码
    # 打开impala,使用时sql跟hive基本一样
    impala-shell
    
    # 输出表结构
    describe/desc 表名
    
    # 查看执行计划
    explain sql语句
    
    # 输出上一条sql语句的详细执行计划
    profile
    
    # 使用外部命令行,但不推出impala-shell
    shell shell命令 
    
    # sql查询,跟hive一样
    select
    
    # 切换数据库
    use 数据库名
    
    # 查看版本
    version
    
    # 连接其他impala
    connect ip地址
    
    # 退出到命令行
    exit / quit
    
    # 查看历史命令
    history
    
    # 设置属性/取消属性
    set/uset
    
    # 全量刷新元数据库,等同于impala-shell -r
    invalidate metadata
    
    # 增量刷新元数据库,只刷新指定表
    refresh 表名
  • DDL操作

    (1)创建数据库

    (2)显示数据库

    (3)删除数据库

    (4)创建表

    (5) 添加表数据

    (6)分区相关操作

  • DML操作

3 数据结构

  • impala和hive数据结构对比

4 函数

  • 自定义函数跟hive一样

5 压缩和优化

  • impala支持的文件格式 ,Parquet和Text在impala中支持插入和查询,而RCFile和SequenceFile在impala中只支持查询,需要在hive中插入数据
  • 优化操作

相关推荐
川石课堂软件测试6 分钟前
零基础小白如何学习自动化测试
python·功能测试·学习·测试工具·jmeter·压力测试·harmonyos
2301_8090511419 分钟前
Linux 数据库开发 学习笔记
笔记·学习·数据库开发
爱喝水的鱼丶30 分钟前
SAP-ABAP:SAP 简单报表输出开发系列(共6篇)第三篇:SAP ALV 报表样式定制:字段布局与交互功能配置
服务器·开发语言·学习·交互·sap·abap
很楠爱上35 分钟前
Node.js 模块化学习笔记
笔记·学习·node.js
mnasd44 分钟前
RockyLinux 9.5 部署 Kubernetes1.35 集群
笔记
毕竟是shy哥1 小时前
CLIP:从自然语言监督中学习可迁移的视觉模型
学习
川石课堂软件测试1 小时前
作为一名测试工程师如何学习Kubernetes(k8s)技能
学习·测试工具·容器·职场和发展·kubernetes·测试用例·harmonyos
tryqaaa_1 小时前
学习日志(五)【php反序列化全加例题】【pop链,字符逃逸,session,伪协议】
android·学习·php·web·pop·session
li星野1 小时前
FastAPI 参数详解:路径参数、查询参数与请求体 —— 从入门到实战
服务器·学习·fastapi
東隅已逝,桑榆非晚1 小时前
编译和链接
c语言·笔记