加入收藏 | 设为首页 | 会员中心 | 我要投稿 开发网_郴州站长网 (http://www.0735zz.com/)- 云通信、区块链、物联设备、云计算、站长网!
当前位置: 首页 > 站长资讯 > 传媒 > 正文

大数据开发人员按需收藏

发布时间:2021-04-22 13:49:01 所属栏目:传媒 来源:互联网
导读:use xxdb; create table xxx; # 内部表 create table xxx like xxx; # 创建一个表,结构与其他一样 use xxdb; create external table xxx; # 外部表 use xxdb; create external table xxx (l int) partitoned by (d string); # 分区表 alter table table_nam


  • use xxdb; create table xxx; # 内部表
  • create table xxx like xxx; # 创建一个表,结构与其他一样
  • use xxdb; create external table xxx; # 外部表
  • use xxdb; create external table xxx (l int) partitoned by (d string); # 分区表
  • alter table table_name set TBLPROPROTIES ('EXTERNAL'='TRUE'); # 内部表转外部表
  • alter table table_name set TBLPROPROTIES ('EXTERNAL'='FALSE');# 外部表转内部表

3、字段类型

  • 基本类型: tinyint, smallint, int, bigint, float, decimal, boolean, string
  • 复合类型:struct, array, map

二、常用函数

  • length() # 返回字符串长度
  • trim() # 去除两边空格
  • lower(), upper() # 大小写转换
  • reverse() # 反转字符串
  • cast(expr as type) # 类型转换
  • substring(string A, int start, int len) # 字符串截取
  • split(string str, string pat) # 按照pat字符串分割str,返回分割后的字符串数组
  • coalesce(v1, v2, v3, ...) # 返回列表中第一个非空元素,如果所有值都为空,则返回null
  • from_unixtime(unix_timestamp(), 'yyyy-MM-dd HH:mm:ss') # 返回当前时间
  • instr(string str, string search_str) # 返回第二个参数在待查找字符串中的位置(找不到返回0)
  • concat(string A, string B, string C, ...) # 字符串连接
  • concat_ws(string sep, string A, string B, string C, ...) # 自定义分隔符sep的字符串连接
  • str_to_map(string A, string item_pat, string dict_pat) # 将字符串转为map
  • map_keys(map m) # 提取出map的key, 返回key的array
  • datediff(date1, date2) # 日期比较函数,返回相差天数,datediff('${cur_date},d)
  • explode(colname) # explode就是将hive一行中复杂的array或者map结构拆分成多行

三、相关概念

1、hive

hive是基于hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库库表,并提供类SQL查询功能。

2、基本组成

用户接口:CLI,shell命令行;JDBC/ODBC是hive的java实现;webGUI是通过浏览器访问hive;元数据存储:通常是存储在关系数据库如mysql, derby中;hive的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表),表的数据所在目录等。

解释器,编译器,优化器完成HQL查询语句从词法分析,语法分析,编译,优化以及查询计划的生成。生成的查询存储在HDFS中,并随后有mapreduce调用执行。因此,hive与Hadoop的关系可以理解为用户发出SQL查询语句,hive将查询存储在HDFS中,然后由mapreduce调用执行。

3、table

Hive 中的 Table 和数据库中的 Table 在概念上是类似的,每一个 Table 在 Hive 中都有一个相应的目录存储数据。例如,一个表 pvs,它在 HDFS 中的路径为:/wh/pvs,其中,wh 是在 hive-site.xml 中由 ${hive.metastore.warehouse.dir} 指定的数据仓库的目录,所有的 Table 数据(不包括 External Table)都保存在这个目录中。

4、partition

Partition 对应于数据库中的 Partition 列的密集索引,但是 Hive 中 Partition 的组织方式和数据库中的很不相同。在 Hive 中,表中的一个 Partition 对应于表下的一个目录,所有的 Partition 的数据都存储在对应的目录中。

5、buckets

Buckets 对指定列计算 hash,根据 hash 值切分数据,目的是为了并行,每一个 Bucket 对应一个文件。将 user 列分散至 32 个 bucket,首先对 user 列的值计算 hash,对应 hash 值为 0 的 HDFS 目录为:/wh/pvs/ds=20090801/ctry=US/part-00000;hash 值为 20 的 HDFS 目录为:/wh/pvs/ds=20090801/ctry=US/part-00020

6、external table

External Table 指向已经在 HDFS 中存在的数据,可以创建 Partition。它和 Table 在元数据的组织上是相同的,而实际数据的存储则有较大的差异。

Table 的创建过程和数据加载过程(这两个过程可以在同一个语句中完成),在加载数据的过程中,实际数据会被移动到数据仓库目录中;之后对数据对访问将会直

  • use xxdb; create table xxx; # 内部表
  • create table xxx like xxx; # 创建一个表,结构与其他一样
  • use xxdb; create external table xxx; # 外部表
  • use xxdb; create external table xxx (l int) partitoned by (d string); # 分区表
  • alter table table_name set TBLPROPROTIES ('EXTERNAL'='TRUE'); # 内部表转外部表
  • alter table table_name set TBLPROPROTIES ('EXTERNAL'='FALSE');# 外部表转内部表

3、字段类型

  • 基本类型: tinyint, smallint, int, bigint, float, decimal, boolean, string
  • 复合类型:struct, array, map

二、常用函数

  • length() # 返回字符串长度
  • trim() # 去除两边空格
  • lower(), upper() # 大小写转换
  • reverse() # 反转字符串
  • cast(expr as type) # 类型转换
  • substring(string A, int start, int len) # 字符串截取
  • split(string str, string pat) # 按照pat字符串分割str,返回分割后的字符串数组
  • coalesce(v1, v2, v3, ...) # 返回列表中第一个非空元素,如果所有值都为空,则返回null
  • from_unixtime(unix_timestamp(), 'yyyy-MM-dd HH:mm:ss') # 返回当前时间
  • instr(string str, string search_str) # 返回第二个参数在待查找字符串中的位置(找不到返回0)
  • concat(string A, string B, string C, ...) # 字符串连接
  • concat_ws(string sep, string A, string B, string C, ...) # 自定义分隔符sep的字符串连接
  • str_to_map(string A, string item_pat, string dict_pat) # 将字符串转为map
  • map_keys(map m) # 提取出map的key, 返回key的array
  • datediff(date1, date2) # 日期比较函数,返回相差天数,datediff('${cur_date},d)
  • explode(colname) # explode就是将hive一行中复杂的array或者map结构拆分成多行

三、相关概念

1、hive

hive是基于hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库库表,并提供类SQL查询功能。

2、基本组成

用户接口:CLI,shell命令行;JDBC/ODBC是hive的java实现;webGUI是通过浏览器访问hive;元数据存储:通常是存储在关系数据库如mysql, derby中;hive的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表),表的数据所在目录等。

解释器,编译器,优化器完成HQL查询语句从词法分析,语法分析,编译,优化以及查询计划的生成。生成的查询存储在HDFS中,并随后有mapreduce调用执行。因此,hive与Hadoop的关系可以理解为用户发出SQL查询语句,hive将查询存储在HDFS中,然后由mapreduce调用执行。

3、table

Hive 中的 Table 和数据库中的 Table 在概念上是类似的,每一个 Table 在 Hive 中都有一个相应的目录存储数据。例如,一个表 pvs,它在 HDFS 中的路径为:/wh/pvs,其中,wh 是在 hive-site.xml 中由 ${hive.metastore.warehouse.dir} 指定的数据仓库的目录,所有的 Table 数据(不包括 External Table)都保存在这个目录中。

4、partition

Partition 对应于数据库中的 Partition 列的密集索引,但是 Hive 中 Partition 的组织方式和数据库中的很不相同。在 Hive 中,表中的一个 Partition 对应于表下的一个目录,所有的 Partition 的数据都存储在对应的目录中。

5、buckets

Buckets 对指定列计算 hash,根据 hash 值切分数据,目的是为了并行,每一个 Bucket 对应一个文件。将 user 列分散至 32 个 bucket,首先对 user 列的值计算 hash,对应 hash 值为 0 的 HDFS 目录为:/wh/pvs/ds=20090801/ctry=US/part-00000;hash 值为 20 的 HDFS 目录为:/wh/pvs/ds=20090801/ctry=US/part-00020

6、external table

External Table 指向已经在 HDFS 中存在的数据,可以创建 Partition。它和 Table 在元数据的组织上是相同的,而实际数据的存储则有较大的差异。

Table 的创建过程和数据加载过程(这两个过程可以在同一个语句中完成),在加载数据的过程中,实际数据会被移动到数据仓库目录中;之后对数据对访问将会直

(编辑:开发网_郴州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读