当前位置: 首页 > news >正文

哪个网站可以代做试题wordpress联系方式

哪个网站可以代做试题,wordpress联系方式,h5网站需要哪些技术,h5免费制作平台企业秀文章目录 版权声明一 数据库操作二 Hive数据表操作2.1 表操作语法和数据类型2.2 Hive表分类2.3 内部表Vs外部表2.4 内部表操作2.4.1 创建内部表2.4.2 其他创建内部表的形式2.4.3 数据分隔符2.4.4 自定义分隔符2.4.5 删除内部表 2.5 外部表操作2.5.1 创建外部表2.5.2 操作演示2.… 文章目录 版权声明一 数据库操作二 Hive数据表操作2.1 表操作语法和数据类型2.2 Hive表分类2.3 内部表Vs外部表2.4 内部表操作2.4.1 创建内部表2.4.2 其他创建内部表的形式2.4.3 数据分隔符2.4.4 自定义分隔符2.4.5 删除内部表 2.5 外部表操作2.5.1 创建外部表2.5.2 操作演示2.5.3 演示先建表后移动数据2.5.4 演示先存在数据后建表2.5.5 删除外部表 2.6 Hive内外表转化2.7 Hive数据加载和导出2.7.1 数据加载-LOAD语法2.7.2 数据加载-insert select语法2.7.3 数据加载-两种语法的选择2.7.4 hive表数据导出-insert overwrite方式2.7.5 hive表数据导出-hive shell 2.8 分区表2.8.1 创建分区2.8.2 加载数据2.8.3 查看分区2.8.4 添加分区2.8.5 修改分区位置2.8.6 修改分区值2.8.7 删除分区 2.9 分桶表2.9.1 创建分桶表2.9.2 分桶表数据加载2.9.3 原因解释2.9.4 分桶表的性能提升 2.10 修改表2.11 复杂类型2.11.1 array类型2.11.2 map类型2.11.3 struct类型2.11.4 三种结构总结 版权声明 本博客的内容基于我个人学习黑马程序员课程的学习笔记整理而成。我特此声明所有版权属于黑马程序员或相关权利人所有。本博客的目的仅为个人学习和交流之用并非商业用途。我在整理学习笔记的过程中尽力确保准确性但无法保证内容的完整性和时效性。本博客的内容可能会随着时间的推移而过时或需要更新。若您是黑马程序员或相关权利人如有任何侵犯版权的地方请您及时联系我我将立即予以删除或进行必要的修改。对于其他读者请在阅读本博客内容时保持遵守相关法律法规和道德准则谨慎参考并自行承担因此产生的风险和责任。 一 数据库操作 创建数据库create database if not exists myhive; use myhive;查看数据库详细信息desc database myhive;数据库本质上就是HDFS上的文件夹。默认数据库的存放路径位于HDFS的/user/hive/warehouse内创建数据库并指定hdfs存储位置 # 使用location关键字指定数据库在HDFS的存储路径 create database myhive2 location /myhive2 ;删除一个空数据库如果数据库下面有数据表那么就会报错 drop database myhive;强制删除数据库包含数据库下面的表一起删除 drop database myhive2cascade;二 Hive数据表操作 2.1 表操作语法和数据类型 CREATE [EXTERNAL] TABLE[IF NOT EXISTS] tabLe_name[(col_namedata_type [COMMENT col_comment], ...)][COMMENT table_comment][PARTITIONED BY (col_name data_type [CoMMENTcol_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]EXTERNAL创建外部表PARTITIONED BY分区表CLUSTERED BY分桶表STORED AS存储格式LOCATION存储位置 2.2 Hive表分类 在Apache Hive中可以创建不同类型的表包括内部表Managed Table、外部表External Table、分区表Partitioned Table和分桶表Bucketed Table。 内部表Managed Table 内部表也称为托管表是Hive的默认表类型。数据和元数据都由Hive管理存储在Hive的默认文件系统通常是Hadoop分布式文件系统中。当删除内部表时Hive也会删除相关的数据和元数据。内部表适合于数据集完全由Hive管理和控制的情况。 外部表External Table 外部表是指数据和元数据都存储在外部存储系统中例如Hadoop分布式文件系统HDFS或云存储服务如Amazon S3。与内部表不同当删除外部表时Hive只删除元数据而不会删除实际的数据。这种特性使得外部表适合于与其他系统共享数据或将已有数据引入Hive的场景。 分区表Partitioned Table 分区表将数据按照一或多个分区键如日期、地区等切分成不同的分区存储这样可以更高效地管理和查询数据。分区表允许用户在查询时只加载特定分区的数据而不必加载整个表。分区表适用于按照某种规则对数据进行组织和查询的场景。 分桶表Bucketed Table 分桶表是在分区表的基础上进一步细分数据的方法。分桶表将每个分区划分为固定数量的桶buckets其中数据根据特定的列哈希算法进行分桶。分桶表可以改善查询性能特别是当你经常需要基于某个列进行连接操作时。分桶表通常与分区表结合使用。 总结 内部表适合完全由Hive管理的数据集外部表适合与其他系统共享或引入数据分区表适合按照特定规则组织和查询数据而分桶表则是进一步细分数据以改善查询性能的一种方式。 2.3 内部表Vs外部表 内部表Managed Table外部表External Table创建语法CREATE TABLE table_name …CREATE EXTERNAL TABLE table_name … LOCATION …存储位置由Hive管理存储在Hive默认文件系统中可在任何位置通过LOCATION关键字指定元数据和数据Hive管理和控制元数据和数据仅Hive管理元数据不控制实际数据删除表时的行为删除表会同时删除元数据和存储的数据仅删除表的元数据不删除实际数据适用场景数据集完全由Hive管理和控制的情况与其他系统共享数据引入已有数据的场景与其他工具的共享性不适合与其他工具共享数据可以随意临时连接到外部数据上 内部表Managed Table是由Hive管理和控制的表数据和元数据由Hive存储和管理。删除内部表时会删除相关的数据和元数据。适合数据完全由Hive管理和控制的场景。外部表External Table是关联到外部数据的表数据存储位置可以在任何地方通过LOCATION关键字指定。删除外部表时仅删除元数据不会删除实际数据。适合与其他系统共享数据或引入已有数据的场景。 2.4 内部表操作 2.4.1 创建内部表 内部表创建语法CREATE TABLE table_name ...演示 创建一个基础的表 create database if not exists myhive; use myhive; create table if not exists stu(id int, name string); insert into stu values ( 1,zhangsan)(2 wangwu); select *from stu;查看表的数据存储 hadoop fs -ls /user/hive/warehouse/myhive.db/stu hadoop fs -cat /user/hive/warehouse/myhive.db/stu/*2.4.2 其他创建内部表的形式 基于查询结果建表 CREATE TABLE table_name as -- 示例 create table stu3 as select * from stu2;基于已存在的表结构建表 CREATE TABLE table_namelike -- 示例 create table stu4 like stu2;使用DESCFORMATTEDtable_name查看表类型和详情 DESC FORMATTED Stu2;2.4.3 数据分隔符 数据在HDFS上也是以明文文件存在的。奇怪的是列ID和列NAME好像没有分隔符而是挤在一起的。默认的数据分隔符是:\001是一种特殊字符是ASCII值键盘是打不出来在某些文本编辑器中是显示为SOH的。 2.4.4 自定义分隔符 create table if not exists stu2(id int ,name string) row format delimited fields terminated by \t ;row format delimited fields terminated by \t ;表示使用\t分隔 2.4.5 删除内部表 删除内部表时会删除相关的数据和元数据 drop table table_name;2.5 外部表操作 2.5.1 创建外部表 创建外部表语法 CREATE EXTERNAL TABLE table_name ... LOCATION ... 外部表创建表被EXTERNAL关键字修饰从概念是被认为并非Hive拥有的表只是临时关联数据去使用。外部表和数据是相互独立的即: 可以先有表然后把数据移动到表指定的LOCATION中。也可以先有数据然后创建表通过LOCATION指向数据 2.5.2 操作演示 在Linux上创建新文件test_external.txt并填入如下内容数据列使用\t分隔: 1 hello 2 world 3 hadoop2.5.3 演示先建表后移动数据 演示先创建外部表然后移动数据到LOCATION目录 首先检查: hadoop fs -ls /tmp确认不存在/tmp/test_ext1目录创建外部表: create external table test_ext1(id intname string) row format delimited fields terminated by \t location /tmp/test_ext1;创建成功后查看表数据内容为空 select * from test_ext1上传数据即可看到数据结果 hadoop fs -put test_external.txt /tmp/test_ext1. select * from test_ext12.5.4 演示先存在数据后建表 hadoop fs -mkdir /tmp/test_ext2 hadoop fs -put test_external.txt /tmp/test_ext2/ create external table test_ext2(id int,name string) row format delimited fieldsterminated by \t location /tmp/test_ext2; select * from test_ext2; 2.5.5 删除外部表 删除外部表语句 DROP TABLE table_name;注意DROP TABLE语句仅会删除表的元数据不会删除外部表所关联的实际数据。 执行这个语句后Hive会删除指定的外部表的元数据信息包括表结构、分区信息和位置等但并不会删除外部表所关联的实际数据。如果你想要同时删除外部表的数据可以手动删除存储在外部位置的数据文件或目录。 2.6 Hive内外表转化 查看表类型: desc formatted table_name; Hive可以很简单的通过SQL语句转换内外部表。 内部表转外部表 alter table table_name set tblproperties(EXTERNALTRUE);外部表转内部表 alter table table_name set tblproperties(EXTERNALFALSE);要注意:(‘EXTERNAL’‘FALSE’)或(‘EXTERNAL’‘TRUE’)为固定写法区分大小写! ! ! 2.7 Hive数据加载和导出 2.7.1 数据加载-LOAD语法 语法 注意基于HDFS进行load加载数据源数据文件会消失(本质是被移动到表所在的目录中) 示例load data local inpath /home/hadoop/search_log.txt into table myhive.test_load; load data inpath /tmp/search_log.txt overwrite into table myhive.test_load;2.7.2 数据加载-insert select语法 语法 INSERT [OVERWRITE | INTO] TABLE tablename1 [PARTITION (partcolvall, partcol2val2 ...) [TF NOTEXISTS]] select_statement1 FROM from_statement;将SELECT查询语句的结果插入到其它表中被SELECT查询的表可以是内部表或外部表。 2.7.3 数据加载-两种语法的选择 2.7.4 hive表数据导出-insert overwrite方式 语法: insert overwrite [local] directory path select_statement1 FROM from_statement;将hive表中的数据导出到其他任意目录例如linux本地磁盘例如hdfs例如mysq|等等 将查询的结果导出到本地使用默认列分隔符 insert overwrite local directory /home/hadoop/export1 select * from test_load ;将查询的结果导出到本地指定列分隔符 insert overwrite local directory /home/hadoop/export2 row format delimited fields terminated by \t select * from test_load;将查询的结果导出到HDFS上(不带local关键字) insert overwrite directory /tmp/export row format delimited fields terminated by \t select * from test_load;2.7.5 hive表数据导出-hive shell 基本语法(hive -f/-e 执行语句或者脚本 file) bin/hive -e select * from myhive.test_load; /home/hadoop/export3/export4.txt bin/hive -f export.sql /home/hadoop/export4/export4.txt2.8 分区表 在Hive中分区表Partitioned Table是一种将数据按照特定列的值进行逻辑分区的表。分区表可以加速查询和提高数据的管理效率。 同时Hive也支持多个字段作为分区多分区带有层级关系 2.8.1 创建分区 创建分区表语法CREATE TABLE table_name (column1 data_type,column2 data_type,... ) PARTITIONED BY (partition_column1 data_type, partition_column2 data_type, ...);演示create tables core(sid string,cid string,sscore int) partitioned by(month string) row format delimited fields terminated byt;创建一个表带多个分区create table score2 (sid string,c_id string,sscore int) partitioned by(year string,month string,day string) row format delimited fields terminated by\t;2.8.2 加载数据 加载数据到分区表中load data local inpath /export/server/hivedatas/score.txt into table score partition (month202006);加载数据到一个多分区的表中去load data local inpath /export/server/hivedatas/score.txt into table score2 partition(year2020,month06,day01);插入数据到分区表INSERT INTO TABLE table_name PARTITION (partition_column1 value1, partition_column2 value2, ...) VALUES (value1, value2, ...);INSERT INTO TABLE sales PARTITION (year 2023, month 9) VALUES (1, Product A, 2023-09-08, 100.0);2.8.3 查看分区 查看分区show partitions score;2.8.4 添加分区 添加一个分区alter table score add partition(month202005)同时添加多个分区alter table score add partition(month202004) partition(month202003);注意添加分区之后就可以在hdfs文件系统当中看到表下面多了一个文件夹 2.8.5 修改分区位置 ALTER TABLE table_name PARTITION (partition_column1 value1, partition_column2 value2, ...) SET LOCATION /new/partition/location;2.8.6 修改分区值 alter table table_name partition(month2002005) rename to partition(month201105)2.8.7 删除分区 alter table table_name drop partition(month202006);对分区的修改和删除操作实际是修改源数据表并不会修改hdfs中的数据内容【不建议修改分区】 2.9 分桶表 分桶和分区一样也是一种通过改变表的存储模式从而完成对表优化的一种调优方式。但和分区不同分区是将表拆分到不同的子文件夹中进行存储而分桶是将表拆分到固定数量的不同文件中进行存储。 2.9.1 创建分桶表 开启分桶的自动优化自动匹配reducetask数量和桶数量一致 set hive.enforce.bucketingtrue;创建分桶表 create table course (c_id string,c_name string,t_id string ) clustered by(c_id) into 3 buckets row format delimited fields terminated by \t;2.9.2 分桶表数据加载 桶表的数据加载通过load data无法执行只能通过insert select. 创建一个临时表外部表或内部表均可)通过load data加载数据进入表然后通过insert select 从临时表向桶表插入数据 创建普通表 create table course_common (c_id string,c_name string,t_id string ) rowformat delimited fields terminated by t;普通表中加载数据load data local inpath /export/server/hivedatas/course.txt into table course_common;通过insert overwrite给桶表中加载数据insert overwrite table course select * from course_common cluster by(cid);2.9.3 原因解释 桶表的数据加载通过load data无法执行只能通过insert select. 如果没有分桶设置插入加载数据只是简单的将数据放入到 表的数据存储文件夹中没有分区 表指定分区的文件夹中带有分区 一旦有了分桶设置比如分桶数量为3那么表内文件或分区内数据文件的数量就限定为3当数据插入的时候需要一分为3进入三个桶文件内。 问题如何将数据分成三份划分的规则是什么 数据的三份划分基于分桶列的值进行hash取模来决定。由于load data不会触发MapReduce也就是没有计算过程无法执行Hash算法只是简单的移动数据而已所以无法用于分桶表数据插入。 2.9.4 分桶表的性能提升 分区表的性能提升是在指定分区列的前提下减少被操作的数据量从而提升性能。分桶表的性能提升是基于分桶列的特定操作如:过滤、JOIN、分组均可带来性能提升。 2.10 修改表 表重命名 alter table old_table_namerename to new_table_name;修改表属性 ALTER TABLE table_name SET TBLPROPERTIES table_properties; table_properties:(property_nameproperty_value,property_nameproperty_value,...)如ALTER TABLE table_name SETTBLPROPERTIESEXTERNALTRUE)修改内外部表属性如ALTER TABLE table_name SETTBLPROPERTIEScommentnew_comment修改表注释添加列 alter table table_name add columns(v1 int,v2 string); 修改列名 alter table table_name change v1 v1new int;删除表 drop table table_name;清空表 -- 只能清空内部表 truncate table table_name;2.11 复杂类型 2.11.1 array类型 Hive支持的数据类型很多除了基本的: int、string、varchar、timestamp等还有一些复杂的数据类型array数组类型、map(映射类型)、struct(结构类型) data_for_array_type.txt文件内容如下 zhangsan beijing,shanghai,tianjin,hangzhou wangwu changchun,chengdu,wuhan,beijin说明:name与locations之间制表符分隔locations中元素之间逗号分隔 建表语句 create table myhive.test_array(name stringwork_locations arraystring) row format delimited fields terminated by \t COLLECTION ITEMS TERMINATED BY ,;row format delimited fields terminated by \t′表示列分隔符是\t.COLLECTION ITEMS TERMINATED BY ,’表示集合(array)元素的分隔符是逗号 导入数据 load data local inpath /home/ hadoop/data_for_array_type.txt overwrite into table myhive.test_array;常用array类型查询: -- 查询所有数据 select * from myhive.test_array; -- 查询loction数组中第一个元素 select name, work_locations[0] location from myhive.test_array; -- 查询location数组中元素的个数 select name, size(work_locations) location from myhive.test_array; -- 查询location数组中包含tianjin的信息 select * from myhive.test_array where array_contains(work_locations,tianjin);2.11.2 map类型 map类型是: Key-Value型数据格式。 有如下数据文件其中members字段是key-value型数据字段与字段分隔符: “,”;需要map字段之间的分隔符:“#” ; map内部k-v分隔符:“:” 1,林杰均,father:林大明#mother:小甜甜#brother:小甜,28 2,周杰伦,father:马小云#mother:黄大奕#brother:小天,22 3,王葱,father:王林#mother:如花#sister:潇潇,29 4,马大云,father:周街轮#mother:美美,26建表语句 create table myhive.test_map(id int, name string, members map, age int) row format delimited fields terminated by , COLLECTION ITEMS TERMINATED BY # MAP KEYS TERMINATED BY ;;MAP KEYS TERMINATED BY表示key-value之间用:分隔 导入数据 load data local inpath /home / hadoop/data_for_map_type.txt overwrite into table myhive.test_map;常用查询 #查询全部 select * from myhive.test_map; #查询father、mother这两个map的key select id, name, members[father] father, members[mother] mother, age from myhive.test_map; #查询全部map的key使用map_keys函数结果是array类型 select id, name, map_keys(members) as relation from myhive.test_map; #查询全部map的value使用mapvalues函数结果是array类型 select id, name, map_values(members) as relation from myhive.test_map; #查询map类型的KV对数量 select id,name,size(members) num from myhive.test_map; #查询map的key中有brother的数据 select * from myhive.test_map where array_contains(map_keys(members), brother);2.11.3 struct类型 struct类型是一个复合类型可以在一个列中存入多个子列每个子列允许设置类型和名称。 有如下数据文件说明:字段之间#分割,struct之间冒号分割 1#周杰轮:11 2#林均杰:16 3#刘德滑:21 4#张学油:26 5#蔡依临:23建表语句create table myhive.test struct(id string, info struct) row format delimited fields terminated by # COLLECTION ITEMS TERMINATED BY :;导入数据load data local inpath /home /hadoop/data_for_struct_type.txt into table常用查询select * from hive struct; #直接使用列名。子列名即可从struct中取出子列查询 select ip,info.name from hive struct;2.11.4 三种结构总结
http://www.zqtcl.cn/news/574579/

相关文章:

  • 汕头网站建设开发软件开发属于哪个专业
  • 企业网站建设规划书阿里云虚拟机怎么做多个网站
  • 营销平台网站建设做视频怎么做
  • 吉林房地产网站开发icp网站授权函
  • 深圳公司网站建设哪家好郑州短视频培训机构
  • 网络培训班答案百度seo收录软件
  • 中核工建设集团有限公司网站网站建设管理中se是什么意思
  • 网站如何做关键词引流网站怎么快速做收录
  • 网站建设文案网站设计要学哪些
  • 品牌网站建设gs平台搭建工具
  • 怎么把自己做的网站弄到域名上柳州游戏网站建设
  • 做衣服类网站策划书高端建设网站企业
  • 珠海网站建设公司有哪些代替做网站推广
  • 泰安的网站建设公司旅游网站建设规划报告怎么写
  • 如何建设淘宝客网站什么是网络营销常用的网络营销方法有哪些
  • 大连华南网站建设深圳网站建设公司的外文名是
  • 做招投标网站云南昆明网站建设价格
  • 越秀区网站建设公司微网站菜单
  • vs2017网站开发广州网站建设易得
  • 长沙企业网站建设价格陕西省门户网站建设政策
  • 龙华营销型网站制作wordpress最近评论
  • 嘉兴微信网站做一个招聘信息的网站_用什么做网站的软件
  • 各种购物网站大全上海市建设工程检测网
  • 网站推广沈阳php网站开发接口开发
  • 莱芜 做网站 公司官网开发
  • tomcat做网站做自媒体查找素材的网站
  • 信阳建设企业网站公司软件开发平台公司
  • 营销型网站建设营销型设计家官网视频
  • 部门网站建设目的加猛挣钱免费做网站软件
  • 洛阳制作网站哪家好wordpress是英文