配置单元视图表结构[配置单元视图表结构]

,数据文件是part开头的格式,同一个分区的数据用Hive&#039s分桶策略copy语句使用*通配符将原表目录中的所有文件复制到新表路径中,并查看新表的hdfs路径中的数据文件

面对信息时代,如果我们不';不要去关注它,这样我们就可以通过及时补充知识来与时俱进。今天给大家带来一篇关于蜂巢查看表结构和蜂巢查看表结构的文章,相信会给大家带来很大的帮助!

摘要:Hive,Shell

Hive复制表包括两种类型

对于非分区表,如果要将一个表完全复制到另一个表,可以直接使用CREATETABLE…AS语句。例如,将一个表的两个字段和字段的值复制到另一个表

对于已分区表,如果使用CREATETABLE…AS语句,分区将无效,但可以执行而不报错,字段和数据都可以完全复制

上面有一个分区表,使用dt字段作为分区,使用CREATETABLE…AS复制整个表

检查表的结构和表的数据量没有问题

检查分区,报告表不是分区表。不是已分区表,但表结构中存在原始分区字段dt。此时dt字段的分区函数无效,但数据仍然是

复制带分区的分区表全名的操作方法需要使用LIKE语句复制到分区信息。具体步骤如下:

第一步,用原表

的表结构和分区信息复制一个空表。

接下来,使用hdfs命令操作,将hdfs中原表的存储路径复制到新表的路径中。表的存储路径是一个目录,这个目录下有子目录。每个子目录代表一个分区,数据文件在分区目录下。,数据文件是part开头的格式,同一个分区的数据用Hive's分桶策略

copy语句使用*通配符将原表目录中的所有文件复制到新表路径中,并查看新表

的hdfs路径中的数据文件。

此时,虽然新表在对应的仓库目录下有数据文件,但是在Hive客户端中仍然没有发现数据为空,因为新表的元数据中并不存在每个数据分区,数据是按分区目录聚合的。,新表可以';目前找不到分区,所以数据不能';不被自然发现

接下来,修复表的分区元数据,并使用MSCK修复表命令

从输出的执行过程可以看出,MSCK修复表命令首先检查元数据中是否存在该表的分区信息,然后修复不存在的分区信息,修复后该表可以正常使用

MSCK修复表的功能是只需要一个命令就可以快速自动地添加(修复)所有分区。如果分区表首先在Hive中构建,,并将数据复制到相应的HDFS目录作为初始化,需要手动添加分区才能使用。如果分区太多,使用ALTERTABLEADDPARTITION是极其不变的。让';让我们做一个测试,看看ALTERTABLEADDPARTITION是否可以完成分区表

的完整复制接下来,手动添加一个分区dt=�'

经验证可以完成手动分区,MSCK修复表只自动扫描清单目录中的分区信息(dt=�'到dt=�').如果编写一个Shell脚本,可以实现如下

。运行这个Shell脚本后,可以达到同样的效果,但是这个脚本已经执行了15分钟,需要频繁地启动和关闭Hive进程

hive语法和sql语法基本相同。让';让我们把它们一个一个地写出来。简单介绍一下存储原理:

hive与hdfs交互,与本地linux交互。,分为本地文件和hdfs文件,要讲区别,底层是在磁盘上,要讲区别,hdfs分布式文件管理系统有自己独特的文件存储结构,也就是可以和分布式文件交互的独特存储方式。linux本地文件是存储在Linux操作系统中的文件,所以hive的功能是在Linux上与Linux本地文件和hdfs文件交互,我可以将本地文件上传到hive文件。当然hive只是一个在hdfs上处理文件的工具,但是hive也有自己独特的文件存储,表结构信息和创建的表信息,都存储在hdfs上的hive文件夹中。

2,语法:

1。将本地文件加载到hive创建的表中(例如:createtableTB_user(IDint,namestring);)你在hive里面创建的是一个结构化的表。,然后是由命令创建的表名:loaddatalocalinpath'路径';成表;

2,将hdfs上的文件加载到hive:loadpath中的数据';HDFS之路';into表创建了表

3。,exportreservetabletohdfs:exporttablenametohdfspath;

4,将hdfs上的表导入hive表:从(hdfs表)导入表(hive表);(导入表TB_kkfrom'/data/a';)当导入的表不存在时,会自动创建。,用于备份或数据传输。表的字段名称与导入的字段名称相同。

5,通过查询hive表中的数据并将查询到的数据导出到本地:insertoverwritelocaldirectory';本地路径';select*fromstudent

6。通过查询hive表中的数据并将查询到的数据导出到HDFS:insertoverwritedirectory';HDFS之路';

select*fromstudent;

7.Insertthequeryresultintothecurrentreservetable:insertthestudentpartitionoftheoverlaytable(month='201708')selectid,namefromstudentwheremonth='201709'

8.Createatableandloadthequerieddata:ifitdoesnotexist,createatabletb_textasaselect*fromtb_text(thesameasakeyword)

.

9.Specifytheloadingdatapathbylocationwhencreatingatable:createatabletb_text(idint,namestring)toseparatefields,anduse''Location'Directoryattheendof/hdfs',(记住目录)。

10、创建分区表,可以分别存储不同的数据,查询时只需要查询指定的分区。,可以加快查询效率:创建表TB_text(idint,namestring)partitionedby(monthstring)(//我这里用month作为分区条件。分区字段不能是表中已有的字段,可以视为表的伪列。,不参与实字段)rowformat分隔的字段以';'看一下将数据加载到分区表中的列,以便更好地理解。,localdatainpath'/opt/module/datas/dept.txt'Loadintothetabledefault.dept_partition(month='201709');//Finally,assignpartitionvaluestopseudocolumnfields.,这是分区的文件名。

11、查表结构,这个需要理解清楚:desctb_text查基本表信息,desc格式化tb_text查详细信息。

12、当数据库中存在强制删除数据时,可以作为:dropdatabasedb_hivecascade

13、数据库没有数据时:dropdatabasedb_hive

14、默认创建的表是管理表,也叫内部表。数据和表结构是在一起的,也就是说,当我删除表的时候,底层数据也会随之删除。设计为一个表代表一个数据,以保证数据的安全性。

15、外部表只存储表的元数据和结构信息,而不是表的路径。删除外部表不会删除内部数据,只会删除表的元数据信息,不会影响数据本身,通常作为共享数据使用。Thesyntaxfordesigninganexternaltableis:createanexternaltabletb_text(idint,namestring);

16。创建表时复制表结构:创建表TB_textliketb_text01

3、外部表和内部表之间的转换:

1,修改内部表为外部表:altertableTB_textsetTBL属性(';外部';='真';);

2.modifytheexternaltableintotheinternaltable:altertableTB_textsetTBLproperties('EXTERNAL'='FALSE');-Requirethecaseofkilovolts,('External'='True')and('External'='False')isafixedwritingmethod.,区分大小写!

语法:

(1)loaddata:表示加载数据

(2)local:表示将数据从本地加载到hive表;否则,将数据从HDFS加载到配置单元表

(3)inpath:表示加载数据的路径

;(4)覆盖:表示表中已有数据;否则,添加

;(5)intotable:指明要加载哪个表。

(6)学生:表示具体表

(7)分区:表示上传到指定分区

案例:

?2)导入本地数据

?3)查看人员表

的数据?2)清除人员表数据;截断表人;

?3)检查清空人员表(没有数据)

?4)将HDFS数据导入人员表

?5)重新查询人员表看数据

?2)导入HDFS,不添加本地

?3)Fieldsseparatedbyalineformatendingin"t"

Syntax:Inserttablenamequerystatement

Case:

Createanewtable:Ifitdoesn'texist,createthetableperson2(idint,namestring,phonestring);

将人员表中id为1和3的数据插入到人员2表中。

查询人员2表的数据

方法2:进入覆盖

语法:insertoverwritetable表名查询语句

在测试之前再次准备一个表

将数据添加到person6表中。

数据结果

注意:使用insertoverwrite后必须添加表,否则会出现错误

注意

语法:createtable[如果不存在]表名作为查询语句

描述:根据查询结果创建表(查询结果将添加到新创建的表中)

案例:

根据人员表的结果创建人员3表

查询人员3

注意:使用查询结果创建数据表时,需要添加关键字

Managetable

Syntax:Createtable[ifitdoesn'texist]Tablename(fieldinformation)Thefieldsseparatedbytherowformatendatthepositionoftheseparatorandloadthedatapath.

案例:加载person表的数据。

查询加载人员数据的地址

创建人员4表,设置人员表的数据路径。

查询人员4表的信息;person4中的所有表数据都来自person表。

外部表

创建管理表t1

向管理表t1添加一条数据

创建t2并指定t1数据的加载地址

查询t2表

删除t1表

再次查询t2表

验证t1为外部表时,删除t1表。,数据是否会被删除。

重新创建t1表

向t1添加数据3

创建t2(原表已删除)并将其指定为外部表,加载t1的数据路径

查询t1表结构(验证外部表

是否查询t2数据(带数据2)删除t1表

查询t2表(数据不删除)

更深入地理解管理表和外部表的区别。

语法:导入表的全新表名来自';由export导出的地址';

查询person_import表

查看主目录,用000000_0文件

生成aaa目录。

查看000000_0文件;恰好是person表中的数据。

注意:此处覆盖不是可选的(可选)。此处必须添加覆盖,否则将报告错误。

查看000000_0文件;选项卡用于格式化数据。

查看/aaa/000000_0文件

查看person_bak文件

语法:hive-e"sql语句"输出路径

案例:

查看主目录中的person_bak

语法:将表格名称导出到';HDFS地址';

案例:将人员表的数据导出到“HDFS/人员2

查看/person2

查看/person2/data/person

总结spark、hive、impala、hdfs的常用命令如下。欢迎补充他们。!

1。Spark的使用:

以通过SecureCRT访问IP地址:10.10.234.198为例:

enter:ll//查询集群是否配备spark

suMr

/home/Mr/spark/bin/beeline-u";JDBC:蜂巢2:/大数据198:18000/";先生-p";"

显示数据库;//显示数据库,比如

使用bigmax//使用数据库bigmax

显示表格;//查询目录

descformattedtablename中的所有表;//显示表的详细信息,包括分区、字段、地址等信息

desc表名;//显示表中的字段和分区信息

selectcount(*)fromtablename;//显示表格中的数据量,可以用来判断表格是否为空。

DeletetableTableName//Deletetableinformation

dropbigmax//Deletedatabasebigmax

描述数据库zxvmax//查询数据库zxVMAX信息

创建表

第一步:

Iftheexternaltabledoesnotexist,createtheexternaltablelte_Amaze//createatablenamedlte_Amaze

.

(//括号中每个行为表中的字段名及其数据类型用空格分隔

日期时间字符串,

millisecint,

网络int,

eNodeBIDint,

CIDint,

IMSI字符串,

数据类型int,

AoAint,

ServerRsrpint,

ServerRsrqint,

Taint,

CQi0tinyint,

cqi1tinyint//注意最后一个字段后面没有逗号

]。

partitionbasis(p_datestring,p_hourINT)//Takep_dateandoneo'clockintheafternoonaspartition

行格式分隔的字段以';'/**表中的行结构使用逗号作为分隔符,这与上表中字段以逗号结尾的情况一致*/

存储为文本文件;//保存为文本格式

第二步:添加分区,指定分区的位置

更改表LTE_Amaze添加分区(p_date=񟭏-01-27'p_hour=0)位置';/LTE/NDS/Mr/LTE_NDS_CDT_UEdetail/p_date=2015-01-27/p_hour=0';

//在lte_Amaze表中添加分区信息并赋值。

//并使分区对应的目录/lte/nds/mr对应的分区信息如下表lte_nds_cdt_uedetail

第三步:查看添加的结果

显示分区LTE_Amazie//显示表

2的分区信息。hdfs用法:

#suhdfs//切换到hdfs用户,

#HadoopFSLS//查看进程

#cd/hdfs/bin//进入HDFS安装包目录。

Hadoopfs-ls/umtsd/CDT/询问/umtsd/cdt/Documents目录(XY002)

Hadoopfs-mkdir/umtsd/test//在/umtsd目录下创建试验目录

Hadoopfs-put/home/data/u1002。CSV/impala/data/u5002//将home/data/u1002.csv这个文件放到hdfs文件目录上。从put到hdfs的数据文件用逗号(csv)隔开,数据不管是什么类型,直接就是没有双引号和单引号的数据

Hadoopfs-RM/umtsd/test/test。txt//删除umtsd/测试目录下的测试。文本文件(textfile)文件

Hadoopfs-cat/umtsd/test/test.txt//Viewthecontentsofthetest.txtfileunderumtsd/testdirectory

3Configurationunitoperationanduse:

#sumr//切换到Mr用户

#hive//进入hive查询操作界面

hivehow表;//查询当前创建的所有表

hiveshow数据库;//查询当前创建的数据库

hivedescriptetable_name;{或desctable_name}//查看表格的字段定义和分区信息,区分清楚(在impala下,该命令以字段的形式显示分区信息。,没那么好区分)

Hive显示分区Table_name//查看该表对应数据的已有分区信息。黑斑羚

下没有这个命令。

hive退出;//退出hive操作界面

hivedesc格式化table_name查看表格结构、分隔符和其他信息

hivealtertable史策更改ididint修改表的列数据类型//将id数据类型改为int。注意有两个id

配置单元显示表。*s'根据正条件显示表格(正则表达式),

[Mr@aico~]$exit;退出mr用户界面,进入[root@aico]界面。

impala操作用法:

#sumr//切换到Mr用户

#cdimpala/bin//进入impala安装bin目录

#/黑斑羚/bin黑斑羚-壳。sh-10。10.234.166/localhost//进入黑斑羚查询操作界面

[10.10.234.166:21000]显示数据库;//查询当前创建的数据库

[10.10.234.166:21000]使用数据库名;//选择使用数据库。默认情况下,使用默认数据库

[10.10.234.166:21000]显示表格;//查询当前数据库下创建的所有表

[10.10.234.166:21000]描述表名;//查看表中字段的定义,包括分区信息,没有明确区分

[10.10.234.166:21000]描述格式化的table_name//查看表对应的格式化信息,包括分区、数据库、用户创建、创建时间等详细信息。

[10.10.234.166:21000]刷新table_name//刷新以确保元数据是最新的

[10.10.234.166:21000]更改表U107添加分区(报告日期="2013年9月27日",rncid=487)位置'/umts/cdt/

Mremittable/20130927/RNCID=487';//添加分区信息,以及具体表和数据的对应关系

[10。10.234.166:21000]更改表U100删除分区(报告日期="2013年9月25日",rncid=487);//删除现有的分区,数据与表的关联

[10.10.234.166:21000]退出;//退出impala操作界面

[Mr@aicodbin]$impala-shell;Gettheinformationofwelcomeimpala,entertheimpalaqueryoperationinterface

[aicod:21000]andpressthetabbuttontwice.,seetheavailablecommands

tochangetheshellvalueofthedescriptionhelpprofile

.

ConnectionDiscardHistoryExitDisplayVersion

CreateExitInsertSelection

tocancelthesetting.

descuses

1

toexplainthatHADOOPshouldbestartedbeforetheloadsetentersthereserve,becausethereserveisbasedonHADOOP.。所有的MR计算都在HADOOP上完成。

2

在命令行输入:hive。这时候就可以顺利进入蜂巢了。当然,如果你想直接执行HQL脚本文件,你可以这样做:hive。

-f

https://www.Baidu.com/more/hql.

3

进入hive后,默认一个通用的默认数据库如果切换数据库,您构建的所有表都将位于默认数据库中xxxxx

4

创建数据库的语法是:create

database

database_name;很简单,其实hive和mysql的语法挺像的。为什么??请继续

5

切换数据库时,可以输入:use

database_name;

查看所有数据库时,可以输入:show

数据库;

查看所有表格时,可以输入:显示

表格

6

查看表格结构时,可以输入:描述

tab_name;

hive视图表结构和hive视图表结构介绍完毕。不知道你有没有从中找到你需要的信息?如果你想了解更多这方面的内容,记得关注这个网站。

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 931614094@qq.com 举报,一经查实,本站将立刻删除。
配置单元视图表结构[配置单元视图表结构]文档下载: PDF DOC TXT