上海高端网站开发公安邦消防安全技术服务有限公司

news/2025/10/1 20:32:01/文章来源:
上海高端网站开发公,安邦消防安全技术服务有限公司,建网站商城平台,申请网站网站Hive是一个数据仓库基础的应用工具#xff0c;在Hadoop中用来处理结构化数据#xff0c;它架构在Hadoop之上#xff0c;通过SQL来对数据进行操作#xff0c;了解SQL的人#xff0c;学起来毫不费力。Hive 查询操作过程严格遵守Hadoop MapReduce 的作业执行模型#xff0c;… Hive是一个数据仓库基础的应用工具在Hadoop中用来处理结构化数据它架构在Hadoop之上通过SQL来对数据进行操作了解SQL的人学起来毫不费力。Hive 查询操作过程严格遵守Hadoop MapReduce 的作业执行模型Hive 将用户的Hive SQL 语句通过解释器转换为MapReduce 作业提交到Hadoop 集群上Hadoop 监控作业执行过程然后返回作业执行结果给用户。Hive 并非为联机事务处理而设计Hive 并不提供实时的查询和基于行级的数据更新操作。Hive 的最佳使用场合是大数据集的批处理作业例如网络日志分析。下面我们就为大家总结了一些Hive的常用 SQL语法[ ]括起来的代表我们可以写也可以不写的语句。创建数据库CREATE DATABASE name;显示命令show tables;show databases;show partitions ;show functions;describe extended table_name dot col_name;DDL(Data Defination Language)数据库定义语言建表CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name [(col_name data_type [COMMENT col_comment], ...)] [COMMENT table_comment] [PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)] [CLUSTERED BY (col_name, col_name, ...) [SORTED BY (col_name [ASC|DESC], ...)] INTO num_buckets BUCKETS] [ROW FORMAT row_format] [STORED AS file_format] [LOCATION hdfs_path]CREATE TABLE 创建一个指定名字的表。如果相同名字的表已经存在则抛出异常用户可以用 IF NOT EXIST 选项来忽略这个异常EXTERNAL 关键字可以让用户创建一个外部表在建表的同时指定一个指向实际数据的路径(LOCATION)LIKE 允许用户复制现有的表结构但是不复制数据COMMENT可以为表与字段增加描述ROW FORMATDELIMITED [FIELDS TERMINATED BY char] [COLLECTION ITEMS TERMINATED BY char]        [MAP KEYS TERMINATED BY char] [LINES TERMINATED BY char]   | SERDE serde_name [WITH SERDEPROPERTIES (property_nameproperty_value, property_nameproperty_value, ...)]STORED ASSEQUENCEFILE            | TEXTFILE            | RCFILE                | INPUTFORMAT input_format_classname OUTPUTFORMAT output_format_classname如果文件数据是纯文本可以使用 STORED AS TEXTFILE。如果数据需要压缩使用 STORED AS SEQUENCE 。创建简单表CREATE TABLE person(name STRING,age INT); 创建外部表:CREATE EXTERNAL TABLE page_view(viewTime INT, userid BIGINT,     page_url STRING, referrer_url STRING,     ip STRING COMMENT IP Address of the User,     country STRING COMMENT country of origination) COMMENT 这里写表的描述信息 ROW FORMAT DELIMITED FIELDS TERMINATED BY \054 STORED AS TEXTFILE LOCATION ;创建分区表CREATE TABLE par_table(viewTime INT, userid BIGINT,     page_url STRING, referrer_url STRING,     ip STRING COMMENT IP Address of the User) COMMENT This is the page view table PARTITIONED BY(date STRING, pos STRING)ROW FORMAT DELIMITED ‘\t’   FIELDS TERMINATED BY \nSTORED AS SEQUENCEFILE;创建分桶表CREATE TABLE par_table(viewTime INT, userid BIGINT,     page_url STRING, referrer_url STRING,     ip STRING COMMENT IP Address of the User) COMMENT This is the page view table PARTITIONED BY(date STRING, pos STRING) CLUSTERED BY(userid) SORTED BY(viewTime) INTO 32 BUCKETS ROW FORMAT DELIMITED ‘\t’   FIELDS TERMINATED BY \nSTORED AS SEQUENCEFILE;创建带索引字段的表CREATE TABLE invites (foo INT, bar STRING) PARTITIONED BY (dindex STRING); 复制一个空表CREATE TABLE empty_key_value_storeLIKE key_value_store;显示所有表SHOW TABLES;按正则表达式显示表hive SHOW TABLES .*s;表中添加一个字段ALTER TABLE pokes ADD COLUMNS (new_col INT);添加一个字段并为其添加注释hive ALTER TABLE invites ADD COLUMNS (new_col2 INT COMMENT a comment);删除列hive ALTER TABLE test REPLACE COLUMNS(id BIGINT, name STRING);更改表名hive ALTER TABLE events RENAME TO 3koobecaf;增加、删除分区#增加ALTER TABLE table_name ADD [IF NOT EXISTS] partition_spec [ LOCATION location1 ] partition_spec [ LOCATION location2 ] ...      partition_spec:  : PARTITION (partition_col partition_col_value, partition_col partiton_col_value, ...)#删除ALTER TABLE table_name DROP partition_spec, partition_spec,...改变表的文件格式与组织ALTER TABLE table_name SET FILEFORMAT file_formatALTER TABLE table_name CLUSTERED BY(userid) SORTED BY(viewTime) INTO num_buckets BUCKETS#这个命令修改了表的物理存储属性创建和删除视图#创建视图CREATE VIEW [IF NOT EXISTS] view_name [ (column_name [COMMENT column_comment], ...) ][COMMENT view_comment][TBLPROPERTIES (property_name property_value, ...)] AS SELECT#删除视图DROP VIEW view_nameDML(Data manipulation language):数据操作语言主要是数据库增删改三种操作DML包括INSERT插入、UPDATE更新、DELETE删除。向数据表内加载文件LOAD DATA [LOCAL] INPATH filepath [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1val1, partcol2val2 ...)]#load操作只是单纯的复制/移动操作将数据文件移动到Hive表对应的位置。#加载本地LOAD DATA LOCAL INPATH ./examples/files/kv1.txt OVERWRITE INTO TABLE pokes;#加载HDFS数据同时给定分区信息hive LOAD DATA INPATH /user/myname/kv2.txt OVERWRITE INTO TABLE invites PARTITION (ds2008-08-15);将查询结果插入到Hive表INSERT OVERWRITE TABLE tablename1 [PARTITION (partcol1val1, partcol2val2 ...)] select_statement1 FROM from_statement;#多插入模式FROM from_statementINSERT OVERWRITE TABLE tablename1 [PARTITION (partcol1val1, partcol2val2 ...)] select_statement1[INSERT OVERWRITE TABLE tablename2 [PARTITION ...] select_statement2] ...#自动分区模式INSERT OVERWRITE TABLE tablename PARTITION (partcol1[val1], partcol2[val2] ...) select_statement FROM from_statement;将查询结果插入到HDFS文件系统中INSERT OVERWRITE [LOCAL] DIRECTORY directory1 SELECT ... FROM ...        FROM from_statement        INSERT OVERWRITE [LOCAL] DIRECTORY directory1 select_statement1     [INSERT OVERWRITE [LOCAL] DIRECTORY directory2 select_statement2]INSERT INTOINSERT INTO  TABLE tablename1 [PARTITION (partcol1val1, partcol2val2 ...)] select_statement1 FROM from_statement;insert overwrite和insert into的区别insert overwrite 会覆盖已经存在的数据假如原始表使用overwrite 上述的数据先现将原始表的数据remove再插入新数据。insert into 只是简单的插入不考虑原始表的数据直接追加到表中。最后表的数据是原始数据和新插入数据。DQL(data query language)数据查询语言 select操作SELECT查询结构SELECT [ALL | DISTINCT] select_expr, select_expr, ...FROM table_reference[WHERE where_condition][GROUP BY col_list [HAVING condition]][   CLUSTER BY col_list  | [DISTRIBUTE BY col_list] [SORT BY| ORDER BY col_list]][LIMIT number]使用ALL和DISTINCT选项区分对重复记录的处理。默认是ALL表示查询所有记录DISTINCT表示去掉重复的记录Where 条件 类似我们传统SQL的where 条件ORDER BY 全局排序只有一个Reduce任务SORT BY 只在本机做排序LIMIT限制输出的个数和输出起始位置将查询数据输出至目录hive INSERT OVERWRITE DIRECTORY /tmp/hdfs_out SELECT a.* FROM invites a WHERE a.ds;将查询结果输出至本地目录hive INSERT OVERWRITE LOCAL DIRECTORY /tmp/local_out SELECT a.* FROM pokes a;将一个表的结果插入到另一个表FROM invites a INSERT OVERWRITE TABLE events SELECT a.bar, count(1) WHERE a.foo 0 GROUP BY a.bar;INSERT OVERWRITE TABLE events SELECT a.bar, count(1) FROM invites a WHERE a.foo 0 GROUP BY a.bar;JOINFROM pokes t1 JOIN invites t2 ON (t1.bar  t2.bar) INSERT OVERWRITE TABLE events SELECT t1.bar, t1.foo, t2.foo;将多表数据插入到同一表中FROM srcINSERT OVERWRITE TABLE dest1 SELECT src.* WHERE src.key 100INSERT OVERWRITE TABLE dest2 SELECT src.key, src.value WHERE src.key 100 and src.key 200INSERT OVERWRITE TABLE dest3 PARTITION(ds2008-04-08, hr12) SELECT src.key WHERE src.key 200 and src.key 300INSERT OVERWRITE LOCAL DIRECTORY /tmp/dest4.out SELECT src.value WHERE src.key  300;‍Hive 只支持等值连接(equality joins)、外连接(outer joins)和(left semi joins)。Hive 不支持所有非等值的连接因为非等值连接非常难转化到 map/reduce 任务。LEFTRIGHT和FULL OUTER关键字用于处理join中空记录的情况LEFT SEMI JOIN 是 IN/EXISTS 子查询的一种更高效的实现join 时每次 map/reduce 任务的逻辑是这样的reducer 会缓存 join 序列中除了最后一个表的所有表的记录再通过最后一个表将结果序列化到文件系统实际应用过程中应尽量使用小表join大表join查询时应注意的点#只支持等值连接SELECT a.* FROM a JOIN b ON (a.id b.id)SELECT a.* FROM a JOIN b     ON (a.id b.id AND a.department b.department)#可以 join 多个表SELECT a.val, b.val, c.val FROM a JOIN b     ON (a.key b.key1) JOIN c ON (c.key b.key2)#如果join中多个表的 join key 是同一个则 join 会被转化为单个 map/reduce 任务LEFTRIGHT和FULL OUTER关键字#左外连接SELECT a.val, b.val FROM a LEFT OUTER JOIN b ON (a.keyb.key)#右外链接SELECT a.val, b.val FROM a RIGHT OUTER JOIN b ON (a.keyb.key)#满外连接SELECT a.val, b.val FROM a FULL OUTER JOIN b ON (a.keyb.key)LEFT SEMI JOIN关键字#LEFT SEMI JOIN 的限制是 JOIN 子句中右边的表只能在 ON 子句中设置过滤条件在 WHERE 子句、SELECT 子句或其他地方过滤都不行SELECT a.key, a.value   FROM a   WHERE a.key in    (SELECT b.key     FROM B);#可以被写为SELECT a.key, a.val    FROM a LEFT SEMI JOIN b on (a.key  b.key)UNION 与 UNION ALL#用来合并多个select的查询结果需要保证select中字段须一致select_statement UNION ALL select_statement UNION ALL select_statement ...#UNION 和 UNION ALL的区别#UNION只会查询到两个表中不同的数据相同的部分不会被查出#UNION ALL会把两个表的所有数据都查询出

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

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

相关文章

2025 年望远镜厂家 TOP 企业品牌推荐排行榜,助你精准选购性价比高的望远镜推荐这十家公司!

引言在当前的望远镜市场中,消费者面临着诸多选择难题。随着户外活动、天文观测等需求的不断增长,望远镜的市场需求日益扩大,但市场上的产品质量却参差不齐。部分品牌为了追求短期利益,在生产过程中偷工减料,导致产…

地旺建设官方网站wordpress后台乱码

DNS:因特网的目录服务 在因特网上,主机和人类都一样,可以用很多种方式进行标识,主机的一种标识方法是它的主机名。 但是主机名一般是用IP来表示,IP是由四个字节组成,并且有严格的层次结构,不利…

Coze源码分析-资源库-删除数据库-后端源码-安全与错误处理 - 详解

Coze源码分析-资源库-删除数据库-后端源码-安全与错误处理 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "…

wordpress新建网站注册监理工程师注册查询系统

给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 示例: 输入: [-2,1,-3,4,-1,2,1,-5,4] 输出: 6 解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。 进阶: 如果你已经实现…

动手动脑实验性问题总结

动手动脑1 使用算法生成随机整数 使用 System.nanoTime() 作为初始种子,确保每次运行生成不同的随机序列。 必须校验输入参数(如 count > 0),避免无效调用。实现简单、计算高效,适合对随机性要求不高的场景 动…

揭阳网站制作托管苏州网站建设caiyiduo

一、Bootstrap弹出框使用过JQuery UI应该知道,它里面有一个dialog的弹出框组件,功能也很丰富。与jQuery UI的dialog类似,Bootstrap里面也内置了弹出框组件。打开bootstrap 文档可以看到它的dialog是直接嵌入到bootstrap.js和bootstrap.css里面…

火锅网站建设家政服务网站建设方案

单例模式,是设计模式的一种。 在计算机这个圈子中,大佬们针对一些典型的场景,给出了一些典型的解决方案。 目录 单例模式 饿汉模式 懒汉模式 线程安全 单例模式 单例模式又可以理解为是单个实例(对象) 在有些场…

链表实现双端队列

链表实现双端队列定义链表class ListNode: def __init__(self, value): self.val = value # 节点存储的值 self.prev = None # 指向前一个节点的指针 self.next = None # 指向后一个节点的指针定义双端队列clas…

专门做朋友圈小视频的网站网站怎么做404

PHP是一种服务器端、跨平台、html嵌入式的脚本语言执行速度快:PHP是一种强大的CGI脚本语言,语法混合了C、Java、Perl和PHP式的新语法,执行网页比CGI、Perl和ASP更快,这是它的第一个突出的特点。 (推荐学习:PHP视频教程…

怎么做58同城网站西安英文旅游网站建设

本文实例讲述了Java模拟计算机的整数乘积计算功能。分享给大家供大家参考,具体如下:计算机计算整数乘积的原理:实现代码:package math;public class two {/*** Fundamental method* f(n) O(n^2)* param a* param b* return*/publ…

网站建设开发制作免费游戏网站制作

哈喽小伙伴们大家好,本系列是一个专门针对前端开发岗的面试题系列,每周将会不定期分享一些面试题,希望对大家有所帮助. 面试官:token 一般在客户端存在哪儿 求职者:Token一般在客户端存在以下几个地方: (1)Cookie:Token可以存储在客户端的Cookie中。服…

深入解析:数字和字节:Linux 中的内存如何工作?

深入解析:数字和字节:Linux 中的内存如何工作?pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas",…

FFmpeg和ZLMediaKit 实现本地视频推流

目录1 本地视频推流1.1 简介1.1.1 FFmpeg1.1.2 ZLMediaKit1.2 环境准备1.2.1 ZLMediaKit 安装配置1.2.2 FFmpeg 安装(可选)1.3 整合1.3.1 pom和配置1.3.2 推流配置类1.3.3 推流服务类1.3.4 前端部分 1 本地视频推流 …

SQL 多表查询速查:JOIN、子查询一文全掌握 - 详解

SQL 多表查询速查:JOIN、子查询一文全掌握 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas"…

MySQL复合查询(重点) - 详解

MySQL复合查询(重点) - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco"…

网站备案期间可以建站荣欣建设集团有限公司网站

目录 1.应用场景2.类似的数据同步工具3.DataX 与 Canal 有什么区别 DataX是阿里巴巴开源的一款数据同步工具,使用Java语言开发的。它提供了从各类数据源读取数据以及向各类数据源写入数据的功能,支持包括MySQL、Oracle、SQLServer、PostgreSQL、HDFS、HB…

14.单臂路由(2025年9月29日) - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

AtCoder Beginner Contest 424 425 部分题解

ABC424E注意到,若两根木棍长度相同,那么它们被操作的顺序也是相邻的。于是,若两根木棍“来源”相同,那么它们始终在同一“批次”中被操作。例如:\([1] \to [1/2, 1/2] \to [1/4, 1/4, 1/2] \to [1/4, 1/4, 1/4, 1…

网站怎么识别PC 手机装修设计灵感网站

文章目录 串的模式匹配 考纲内容 复习提示 1.简单的模式匹配算法 知识回顾 2.串的模式匹配算法——KMP算法 2.1字符串的前缀、后缀和部分匹配值 2.2KMP算法的原理是什么 3.KMP算法的进一步优化 串的模式匹配 考纲内容 字符串模式匹配 复习提示 本章是统考大纲第6章内…

【C++】Visual Studio+CMake 开发 C++ 入门指南:从环境搭建到项目实战 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …