【Impala】学习笔记
Impala学习笔记
- 【一】Impala介绍
- 【1】简介
- (1)简介
- (2)优点
- (3)缺点
- 【2】架构
- (1)Impalad(守护进程)
- (2)Statestore(存储状态)
- (3)metadata(元数据)/metastore(元存储)
- 【三】Impala安装
- 【四】Impala接口
- 【五】Impala查询处理
- 【1】database
- 【2】table
- 【3】条件
【一】Impala介绍
【1】简介
(1)简介
Impala是Cloudera公司主导开发的新型查询系统,提供SQL语义,能查询存储在Hadoop的HDFS和Hbase中的PB级大数据。已有的Hive系统虽然也提供了sql语义,但是由于Hive底层之心使用的是MapReduce引擎,仍然是一个批处理过程,难以满足查询的交互性。相比之下,Impala的最大特点也是最大卖点就是它的快速。
Impala是建立砸Hadoop生态圈的交互式sql解析、执行引擎,Impala的sql语法和Hive高度兼容,并且提供标准的ODBC和JDBC接口。
Impala本身不提供数据的存储服务,其底层数据可来自HDFS、Kudu、Hbase
Impala是一个MPP(大规模并行处理)SQL查询引擎:
1-是一个用C ++和Java编写的开源软件;
2-用于处理存储在Hadoop集群中大量的数据;
3-性能最高的SQL引擎(提供类似RDBMS的体验),提供了访问存储在Hadoop分布式文件系统中的数据的最快方法。
(2)优点
(1)基于内存运算,不需要把中间结果写入磁盘,省掉了大量的I/O开销。
(2)无需转换为Mapreduce,直接访问存储在HDFS,HBase中的数据进行作业调度,速度快。
(3)使用了支持Data locality的I/O调度机制,尽可能地将数据和计算分配在同一台机器上进行,减少了网络开销。
(4)支持各种文件格式,如TEXTFILE 、SEQUENCEFILE 、RCFile、Parquet。
(5)可以访问hive的metastore,对hive数据直接做数据分析。
(3)缺点
1-不提供任何对序列化和反序列化的支持;
2-只能读取文本文件,而不能读取自定义二进制文件;
3-每当新的记录/文件被添加到HDFS中的数据目录时,该表需要被刷新。
【2】架构
impala主要由以下三个组件组成:
(1)Impala daemon(守护进程);
(2)Impala Statestore(存储状态);
(3)Impala元数据或metastore(元数据即元存储)。
(1)Impalad(守护进程)
daemon安装在Impala的每个节点上运行,它接受来自各种接口的查询,然后将工作分发到Impala集群中的其它Impala节点来并行化查询,结果返回到中央协调节。
可以将查询提交到专用Impalad或以负载平衡方式提交到集群中的另一Impalad
(2)Statestore(存储状态)
Statestore负责检查每个Impalad的运行状况,然后经常将每个Impala Daemon运行状况中继给其他守护程序,如果由于任何原因导致节点故障的情况下,Statestore将更新所有其他节点关于此故障,并且一旦此类通知可用于其他Impalad,则其他Impala守护程序不会向受影响的节点分配任何进一步的查询。
(3)metadata(元数据)/metastore(元存储)
Impala使用传统的MySQL或PostgreSQL数据库来存储表定义和列信息这些元数据。
当表定义或表数据更新时,其它Impala后台进程必须通过检索最新元数据来更新其元数据缓存,然后对相关表发出新查询。
【三】Impala安装
【四】Impala接口
Impala提供了三种方式去做查询处理:
(1)Impala-shell :命令窗口中键入impala-shell命令来启动Impala shell;
(2)Hue界面 :您可以使用Hue浏览器处理Impala查询;
(3)ODBC / JDBC驱动程序 :与其他数据库一样,Impala提供ODBC / JDBC驱动程序。
了解impala的数据类型:
【五】Impala查询处理
【1】database
(1)创建数据库
-- 示例:
CREATE DATABASE IF NOT EXISTS database_name;
(2)删除数据库
-- 语法:
DROP (DATABASE|SCHEMA) [IF EXISTS] database_name [RESTRICT |
CASCADE] [LOCATION hdfs_path];-- 示例:
DROP DATABASE IF EXISTS samp`在这里插入代码片`le_database;
(3)选择数据库
-- 语法:
USE db_name;
【2】table
(1)创建表
-- 语法:
create table IF NOT EXISTS database_name.table_name (column1 data_type,column2 data_type,column3 data_type,………columnN data_type
);-- 示例:
CREATE TABLE IF NOT EXISTS my_db.student(name STRING, age INT, contact INT );
(2)插入表
-- 语法:
insert into table_name (column1, column2, column3,...columnN) values (value1, value2, value3,...valueN);
insert overwrite table_name values (value1, value2, value2);-- 示例:
insert into employee (ID,NAME,AGE,ADDRESS,SALARY)VALUES (1, 'Ramesh', 32, 'Ahmedabad', 20000 );
insert overwrite employee values (1, 'Ram', 26, 'Vishakhapatnam', 37000 );
(3)查询表
-- 语法:
SELECT column1, column2, columnN from table_name;--示例:
select name, age from customers;
(4)表描述
-- 语法:
describe table_name;-- 示例:
describe customer;
(5)修改表(重命名表案例,其它自行查阅):
-- 语法:
ALTER TABLE [old_db_name.]old_table_name RENAME TO [new_db_name.]new_table_name-- 示例:
ALTER TABLE my_db.customers RENAME TO my_db.users;
(6)删除表
-- 语法:
DROP table database_name.table_name;--示例:
drop table if exists my_db.student;
(7)截断表
-- 语法:
truncate table_name;-- 示例:
truncate customers;
(8)显示表
show tables
(9)创建视图
-- 语法:
Create View IF NOT EXISTS view_name as Select statement
-- 示例:
CREATE VIEW IF NOT EXISTS customers_view AS select name, age from customers;
(10)修改视图
-- 语法
ALTER VIEW database_name.view_name为Select语句
-- 示例
Alter view customers_view as select id, name, salary from customers;
(11)删除视图
-- 语法:
DROP VIEW database_name.view_name;
-- 示例:
Drop view customers_view;
【3】条件
(1)order by 子句
--语法
select * from table_name ORDER BY col_name [ASC|DESC] [NULLS FIRST|NULLS LAST]
--示例
Select * from customers ORDER BY id asc;
(2)group by 字句
-- 语法
select data from table_name Group BY col_name;
-- 示例
Select name, sum(salary) from customers Group BY name;
(3)having子句
--语法
select * from table_name ORDER BY col_name [ASC|DESC] [NULLS FIRST|NULLS LAST]
-- 示例
select max(salary) from customers group by age having max(salary) > 20000;
(4)limit限制
-- 语法:
select * from table_name order by id limit numerical_expression;
(5)offset偏移
-- 示例:
select * from customers order by id limit 4 offset 0;
(6)union聚合
-- 语法:
query1 union query2;
-- 示例:
select * from customers order by id limit 3
union select * from employee order by id limit 3;
(7)with子句
-- 语法:
with x as (select 1), y as (select 2) (select * from x union y);
-- 示例:
with t1 as (select * from customers where age>25), t2 as (select * from employee where age>25) (select * from t1 union select * from t2);
(8)distinct去重
-- 语法:
select distinct columns… from table_name;
-- 示例:
select distinct id, name, age, salary from customers;
相关文章:

【Impala】学习笔记
Impala学习笔记 【一】Impala介绍【1】简介(1)简介(2)优点(3)缺点 【2】架构(1)Impalad(守护进程)(2)Statestore(存储状态…...

视频汇聚平台EasyCVR接入移动执法记录仪,视频无法播放且报错500是什么原因?
GB28181国标视频汇聚平台EasyCVR视频管理系统以其强大的拓展性、灵活的部署方式、高性能的视频能力和智能化的分析能力,为各行各业的视频监控需求提供了优秀的解决方案。视频智能分析平台EasyCVR支持多协议接入,兼容多类型的设备,包括IPC、NV…...

【Linux基础】Linux基本指令(二)
目录 🚀前言一,mv指令二,more & less指令2.1 more 指令2.1 less指令 三,重定向技术(重要)3.1 echo指令3.2 输出重定向 >3.3 追加重定向 >>3.4 输入重定向 < 四,head & tail指令4.1 head 指令4.2 t…...

全面介绍 Apache Doris 数据灾备恢复机制及使用示例
引言 Apache Doris 作为一款 OLAP 实时数据仓库,在越来越多的中大型企业中逐步占据着主数仓这样的重要位置,主数仓不同于 OLAP 查询引擎的场景定位,对于数据的灾备恢复机制有比较高的要求,本篇就让我们全面的介绍和示范如何利用这…...
Python pandas常见函数
Pandas库 基本概念读取数据数据处理数据输出其他常用功能 pip install pandas基本概念 数据结构 Series: 一维数据结构 import pandas as pd data pd.Series([10, 20, 30, 40], index[a, b, c, d]) print(data)DataFrame: 二维数据结构 data {Name: [Alice, Bob, Charlie],Ag…...

行业落地分享:阿里云搜索RAG应用实践
最近这一两周看到不少互联网公司都已经开始秋招提前批了。 不同以往的是,当前职场环境已不再是那个双向奔赴时代了。求职者在变多,HC 在变少,岗位要求还更高了。 最近,我们又陆续整理了很多大厂的面试题,帮助一些球友…...

【SQL】温度比较
目录 题目 分析 代码 题目 表: Weather ------------------------ | Column Name | Type | ------------------------ | id | int | | recordDate | date | | temperature | int | ------------------------ id 是该表具有唯…...
Istio 项目会往用户的 Pod 里注入 Envoy 容器,用来代理 Pod 的进出流量,这是什么设计模式?
Istio 项目会往用户的 Pod 里注入 Envoy 容器,用来代理 Pod 的进出流量,这是什么设计模式? A. 装饰器 B. sidecar C. 工厂模式 D. 单例 选择B Sidecar模式是一种设计模式,它将应用程序的一部分功能作为单独的进程实现ÿ…...
(24)(24.1) FPV和仿真的机载OSD(三)
文章目录 前言 5 呼号面板 6 用户可编程警告 7 使用SITL测试OSD 8 OSD面板列表 前言 此面板允许在机载 OSD 屏幕上显示业余无线电呼号(或任何其他单个字符串)。它将从 SD 卡根目录下名为“callsign.txt”的文件中读取字符串。 5 呼号面板 此面板允…...

测试开发岗面试总结
某基金管理公司线下测试开发面试题总结。 测开题目如下 可以尝试自己先写,写完之后再去看参考解法哦 ~ 1、编写一段代码,把 list 的数平方(语言不限) ListA [1, 3, 5, 7, 9, 11] 2、使用 Python 语言编写一个日志装饰器 3、进程、线程、协程有什么…...
编程-设计模式 7:桥接模式
设计模式 7:桥接模式 定义与目的 定义:桥接模式将抽象部分与它的实现部分分离,使得它们都可以独立地变化。目的:该模式的主要目的是解耦一个类的抽象部分与其实现部分,使得这两部分可以独立地发展和变化。 实现示例…...
C语言----结构体
结构体 结构体的含义 自定义的数据类型 它是由很多的数据组合成的一个整体,结构型数据 其中的每一个数据,都是结构体的成员 书写的位置: 函数的里面:局部位置,只能再本函数中使用 函数的外面:全局位置,在所有的函数中都可以…...

基于HKELM混合核极限学习机多输出回归预测 (多输入多输出) Matlab代码
基于HKELM混合核极限学习机多输出回归预测(多输入多输出)Matlab代码 每个输出都有以下线性拟合图等四张图!!!具体看图,独家图像!!! 程序已经调试好,替换数据集根据输出个数修改out…...

经纬恒润荣获小米汽车优秀质量奖!
小米SU7上市已超百天,在品质经过客户严选的同时,产量与交付量屡创新高,6-7月连续两个月交付量均超过10000台。为奖励对小米汽车质量和交付做出卓越贡献的合作伙伴团队及个人,小米向质量表现突出的供应商授予了优秀质量奖。经纬恒润…...

Linux 软件编程学习第十一天
1.管道: 进程间通信最简单的形式 2.信号: 内核层和用户层通信的一种方式 1.信号类型: 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 1…...
hive udtf 函数:输入一个字符串,将这个字符串按照特殊的逻辑处理之后,输出4个字段
这里要继承GenericUDTF 这个抽象类,直接上代码: package com.xxx.hive.udf; import org.apache.commons.lang.StringUtils; import org.apache.hadoop.hive.ql.exec.Description; import org.apache.hadoop.hive.ql.exec.UDFArgumentException; import …...

【实现100个unity特效之16】unity2022之前或者之后版本实现全屏shader graph的不同方式 —— 适用于人物受伤红屏或者一些其他状态效果
最终效果 文章目录 最终效果前言unity2022版本 Fullscreen shader graph首先,请注意你的Inity版本,是不是2022.2以上,并且项目是URP项且基本配置 修改shader graph边缘效果动起来优化科幻风制作一些变量最终效果最终节点图代码控制 2022之前版…...

比特币使用ord蚀刻符文---简单笔记
说明 毕竟符文热度过了,今年四月份做的笔记分享出来 蚀刻符文需要先同步完区块数据,和index文件,不然蚀刻会失败,在testnet和signet网络也一样。 创建钱包(会输出助记词): ord --bitcoin-da…...

大数据-74 Kafka 高级特性 稳定性 - 控制器、可靠性 副本复制、失效副本、副本滞后 多图一篇详解
点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…...
c# 什么是扩展方法
官方解释 扩展方法使你能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。 扩展方法是一种静态方法,但可以像扩展类型上的实例方法一样进行调用。 对于用 C#、F# 和 Visual Basic 编写的客户端代码&#x…...

51c自动驾驶~合集58
我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...

【OSG学习笔记】Day 18: 碰撞检测与物理交互
物理引擎(Physics Engine) 物理引擎 是一种通过计算机模拟物理规律(如力学、碰撞、重力、流体动力学等)的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互,广泛应用于 游戏开发、动画制作、虚…...

Module Federation 和 Native Federation 的比较
前言 Module Federation 是 Webpack 5 引入的微前端架构方案,允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...

【配置 YOLOX 用于按目录分类的图片数据集】
现在的图标点选越来越多,如何一步解决,采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集(每个目录代表一个类别,目录下是该类别的所有图片),你需要进行以下配置步骤&#x…...
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...
Web 架构之 CDN 加速原理与落地实践
文章目录 一、思维导图二、正文内容(一)CDN 基础概念1. 定义2. 组成部分 (二)CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 (三)CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 …...
Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信
文章目录 Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket(服务端和客户端都要)2. 绑定本地地址和端口&#x…...
C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)
名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...
GitHub 趋势日报 (2025年06月06日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 590 cognee 551 onlook 399 project-based-learning 348 build-your-own-x 320 ne…...
Python Einops库:深度学习中的张量操作革命
Einops(爱因斯坦操作库)就像给张量操作戴上了一副"语义眼镜"——让你用人类能理解的方式告诉计算机如何操作多维数组。这个基于爱因斯坦求和约定的库,用类似自然语言的表达式替代了晦涩的API调用,彻底改变了深度学习工程…...