【Impala】学习笔记

news2025/1/12 0:56:15

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 columnsfrom table_name;
-- 示例:
select distinct id, name, age, salary from customers; 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1997054.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【智能控制】第8章 典型神经网络 ,单神经元网络,BP神经网络,RBF神经网络,Hopfield神经网络(北京航天航空大学)

目录 第8章 典型神经网络 1. 单神经元网络 2. BP神经网络 3. RBF神经网络 4. Hopfield神经网络 第8章 典型神经网络 根据神经网络的连接方式,神经网络可分为三种形式:前馈型神经网络、反馈型神经网络和自组织网络,。典型的前馈型神经…

嵌入式边缘计算软硬件开发实训室解决方案

一、 引言 随着5G通信技术、人工智能算法和大数据分析方法的迅猛发展,物联网(IoT)设备的数量正以前所未有的速度增长,这些设备每天产生着海量的数据。据预测,到2025年,全球将有超过750亿个连接的IoT设备。这些设备不仅包括常见的智…

ArcGIS基础:标注转注记及简单处理

注记是一个静态的标签图层,能够独立的保存为文件,并且具有计算功能; 标注是一个动态的标签图形,无法以文件的形式进行存储和计算; 2者各有优势和劣势,根据具体需求进行选择 需要注意的是注记要存储在GDB…

Spring-MyBatis整合:No qualifying bean of type ‘XXX‘ available: ...

1.看一下核心配置中有没有导入myBatis配置 2.看一下service和dao有没有相应注解 3.看一下MyBatisConfig中有没有对sqlSessionFactory和mapperScannerConfigurer注释成bean对象以及有没有配置映射文件路径

天机学堂 第七天 积分系统

签到 签到最核心的包含两个要素: 谁签到:用户id 什么时候签的:签到日期 同时要考虑一些功能要素,比如: 补签功能,所以要有补签标示 按照年、月统计的功能:所以签到日期可以按照年、月、日分…

2024年TI杯E题-三子棋游戏装置方案分享-jdk123团队-第一弹赛题的选择与前期方案的准备

赛前准备 本来我们团队前几个月的准备都在小车上,赛前也完成了 STM32,树莓派4B,Openmv等几款常见主控板来对小车完成基本的模块封装控制。我们团队的大部分精力以及预算都准备在了小车上面。 赛题选择 由于在赛题公布的的那一天,我们发现H…

张邱建 百鸡问题 python 求解

“百鸡问题”是一个著名的古典数学问题,来源于中国古代数学著作《张邱建算经》。问题是这样的:公鸡每只5钱,母鸡每只3钱,小鸡3只1钱,用100钱买100只鸡,问公鸡、母鸡、小鸡各有多少只? from sym…

【学习笔记】卫星网络(NTN)的窄带物联网(NB-IoT)/增强型机器类型通信(eMTC)研究 -- 3GPP TR 36.763(一)

引言 在RAN#86会议上,针对物联网非陆地网络(IoT NTN)批准了一个新的研究项目,并在RAN#91中进行了修订[4]。在RAN#91中,有一封关于[91E][42][NTN_IoT_Roadmap]的电子邮件讨论,其中包括主持人的总结和GTW输入…

NOI Linux 2.0 的安装说明以及使用指南

关于 NOI Linux 2.0 NOI Linux 是 NOI 竞赛委员会基于 Ubuntu 操作系统开发的一款 Linux 桌面发行版,是一套免费的、专门为信息学奥林匹克竞赛选手设计的操作系统,是 NOI 系列赛事指定操作系统,适用于常见笔记本电脑和桌面电脑。 新建虚拟机…

lvs加keepalive高可用集群

lvs集群当中的高可用架构只是针对调度器的高可用 基于vrrp来实现调度器的主和备 高可用的HA架构 主调度器和备调度器(多台) 在主调度器正常工作的时候,备完全处于冗余状态(待命),不参与集群的运转&…

深入解析Nginx限流策略:如何高效控制访问频率

摘要:本文将详细介绍Nginx限流模块的使用方法,包括基于IP地址的限流、基于并发连接的限流以及如何应对突发流量。通过实际案例,帮助读者掌握Nginx限流策略,确保服务器在高并发场景下的稳定运行。 一、引言 在高并发场景下&#x…

Vscode下ESP32工程函数定义无法跳转

1.删除.vscode 2.按下 ctrlshiftp,搜索 ESP-IDF:Add vscode Configuration Folder

SwinIR速读

SwinIR发表在ICCV21,它核心创新在于使用了SwinTransformer(同年ICCV best paper)进行图像修复,由ETH的CVL提出,大组还是抓前沿抓得好,不仅能想到,还能做出来性能,而且性能还是稳定的增益,通用性强。 目前&a…

TCP Window Full TCP Zero Window

TCP window Full & TCP Zero Window 注: 192.168.60.67 是客户端IP10.250.251.223是服务端IP 当客户端向服务发送多个280大小应用层数据时,在No 45帧数据时发生TCP Window Full,应用发送280字节,实际发出去只有67个字节。28…

机器学习——逻辑回归(学习笔记)

目录 一、认识逻辑回归 二、二元逻辑回归(LogisticRegression) 1. 损失函数 2. 正则化 3. 梯度下降 4. 二元回归与多元回归 三、sklearn中的逻辑回归(自查) 1. 分类 2. 参数列表 3. 属性列表 4. 接口列表 四、逻辑回归…

11.面试题——消息队列RabbitMQ

1.RabbitMQ是什么?特点是什么? RabbitMQ是一种开源的消息队列中间件,用于在应用程序之间进行可靠的消息传递。它实现了AMQP(Advanced Message Queuing Protocol)协议,提供了强大的消息处理能力。RabbitMQ的…

DVWA—SQL Injection

DVWA—SQL Injection实例 1. low等级 进入界面后,可以看到它是一个ID的查找内容的输入框,我们输入数字1、2可以看到是从后端返回数据库相应的数据,但是我们作为SQL注入的最终目标是得到更多有关的信息,所以我们需要通过构造payl…

【生成式人工智能-九-大型语言模型的幻觉、偏见等安全性问题】

大型语言模型的安全性 幻觉对语言模型的输出做核查 偏见消除偏见的方法 鉴别是否是人工智能输出prompt hacking 语言模型被骗做事情jailbreakingjailbreaking的危害 prompt injection 今天还是先来谈一下有哪些安全性问题,以及简单介绍有那些应对方案。 幻觉 看过大…

BugKu CTF Misc:

前言 BugKu是一个由乌云知识库(wooyun.org)推出的在线漏洞靶场。乌云知识库是一个致力于收集、整理和分享互联网安全漏洞信息的社区平台。 BugKu旨在提供一个实践和学习网络安全的平台,供安全爱好者和渗透测试人员进行挑战和练习。它包含了…

写一个Vue2和vue3的自定义指令(以复制指定作为示例)

文章目录 一、自定义指令是什么?二、自定义指令有啥用?三、自定义指令怎么用?1.自定义指令的参数2.自定义指令的钩子函数(1)五个钩子函数的说明(2)钩子函数的参数(主要参数:el和valu…