在这里给大家做一个简单的介绍,
创建表:1、新建数据库xytestdatabase2、编写建表脚本createtablecreatetableifnotexistsxytestdatabase.employee(namestring,salaryfloat,familysarray<string>,propertiesmap<string,string>,addressstruct<street:string,city:string>)3、在hive命令行下执行建表脚本source/root/xytest/hivehql/createtable
4、查看表的详细信息describexytestdatabase.employee;describeextenedxytestdatabase.employee;
可以查看在hdfs中表保存的位置
5、可以用更加美观的方式查看表信息describeformattedxytestdatabase.employee;
拷贝表:createtableifnotexistsxytestdatabase.employee2likexytestdatabase.employee;
管理表(内部表)和外部表管理表和外部表的主要区别是表中数据的归属,可以近似的理解为管理表的数据归hive所有,而外部表的数据不归hive所有。更直白的说法是当hive删除表时,管理表的数据会同时别删除,但是外部表的数据不会被删除,只会删除表的定义(表的定义保存在mysql中)。
下面是创建外部表的脚本createexternaltableifnotexistsxytestdatabase.employeeout(namestring,salaryfloat,familysarray<string>,propertiesmap<string,string>,addressstruct<street:string,city:string>)rowformatdelimitedfieldsterminatedby’,’location’/data/xytestdatabase.employeeout’执行建表语句\
查看表详情describeformattedxytestdatabase.employeeout;
分区表:管理表和外部表都可以创建分区成为分区表,也就是管理分区表和外部分区表。分区表的本质就是在保存表中数据的时候保存到如下的文件夹中:ployeepartition/street=a/country=bployeepartition/street=a/country=c分区表的作用是优化查询的效率,不用每次都进行所有文件的扫描,只需要扫描指定的文件夹即可。创建分区表的语句。createtableifnotexistsxytestdatabase.employeepartition(namestring,salaryfloat,familysarray<string>,propertiesmap<string,string>,addressstruct<street:string,city:string>)partitionedby(streetstring,countrystring)
查看分区表详情:
能够通过showpartitions查看分区情况。
自定义表存储格式:表存储时能够指定使用的分隔符。
createtableifnotexistsxytestdatabase.employeeselfdelimiter(namestring,salaryfloat,familysarray<string>,propertiesmap<string,string>,addressstruct<street:string,city:string>)rowformatdelimitedfieldsterminatedby’\001′collectionitemsterminatedby’\002′mapkeysterminatedby’\003′linesterminatedby’\n’storedastextfile;
查看分隔符信息
修改表:修改表名称:altertabletestrenametotest001;把表test的名称修改为test001。
修改表中的列,添加列、修改列、删除列。altertabletestaddcolumns(name:string,age:int)
增加分区altertableemployeepartitionaddifnotexistspartition(street=’aa’,country=’bb’)partition(street=’ee’,country=’ff’)
运行后结果:
删除表:droptableifexistsxytestdatabase.employee2;
有什么不详之处跪求大神指点
首页 >
Hive如何创建表格、删除表格、导入数据? – 网络|
没学过离散数学如何才能看懂《数据结构与算法分析C语言描述》? - 网络| | 没学过离散数学如何才能看懂《数据结构与算法分析C语言描述》? - 网络| ...
在职场中,培训和实训有什么区别么?想从事it行业怎么进入比较快? - 网络| | 在职场中,培训和实训有什么区别么?想从事it行业怎么进入比较快? - 网络| ...