HiveQL DDL—SHOW的使用总结

Show Databases

SHOW (DATABASES|SCHEMAS) [LIKE 'identifier_with_wildcards'];

  SHOW DATABASES或SHOW SCHEMAS列出所有在metastore定义的数据库。可以用LIKE 子句与正则表达式过滤数据库列表。正则表达式中的通配符只能是匹配任意字符的"*“或表示可选的”|"。例如’employees’、‘emp*’、‘emp*|*ee’,所有这些都会与名为"employees"的数据库相匹配。

  示例

> show databases like "test*";
...
+-------------------+
|   database_name   |
+-------------------+
| test              |
| test0808          |
| test_parquet      |
| test_rcfile       |
| test_text         |
+-------------------+
5 rows selected (0.052 seconds)

Show Tables/Views/Partitions/Indexes

Show Tables

SHOW TABLES [IN database_name] ['identifier_with_wildcards'];

  SHOW TABLES列出数据中所有的表。可以用LIKE子句与正则表达式过滤表列表。正则表达式中的通配符只能是匹配任意字符的"*“或表示可选的”|"。

  示例

> show tables like 'test*';
+-------------+
|  tab_name   |
+-------------+
| test001     |
| test_orc    |
| test_text   |
+-------------+

Show Views

SHOW VIEWS [IN/FROM database_name] [LIKE 'pattern_with_wildcards'];

  SHOW VIEWS列出数据中所有的视图。可以用LIKE 子句与正则表达式过滤视图列表。正则表达式中的通配符只能是匹配任意字符的"*“或表示可选的”|"。

  示例

SHOW VIEWS;                                -- 查看 database 中所有的视图
SHOW VIEWS 'test_*';                       -- 查看所有视图名以 "test_" 开头的视图
SHOW VIEWS '*view2';                       -- 查看所有视图名以 "view2" 结尾的视图
SHOW VIEWS LIKE 'test_view1|test_view2';   -- 查看视图名称为 "test_view1" 或 "test_view2"的视图
SHOW VIEWS FROM test1;                     -- 查看数据库 test1中的视图
SHOW VIEWS IN test1;                       -- 查看数据库 test1中的视图 (FROM 和 IN 是一样的)
SHOW VIEWS IN test1 "test_*";              -- 查看数据库 test2 中以"test_"开头的视图

Show Materialized Views

SHOW MATERIALIZED VIEWS [IN/FROM database_name] [LIKE 'pattern_with_wildcards’];

  SHOW VIEWS列出数据中所有的物化视图。可以用LIKE 子句与正则表达式过滤物化视图列表。正则表达式中的通配符只能是匹配任意字符的"*“或表示可选的”|"。

  示例

> SHOW MATERIALIZED VIEWS;
+------------+--------------------+-----------------+
|  mv_name   |  rewrite_enabled   |      mode       |
+------------+--------------------+-----------------+
| # MV Name  | Rewriting Enabled  | Mode            |
| mv1        | Yes                | Manual refresh  |
|            | NULL               | NULL            |
+------------+--------------------+-----------------+

Show Partitions

SHOW PARTITIONS table_name;

  SHOW PARTITIONS列出指定表中现有的分区。分区是按字母顺序列出。可以指定分区的部分信息来过滤分区列表。

  示例

> SHOW PARTITIONS employee_partitioned;
+---------------------+
|      partition      |
+---------------------+
| year=2018/month=11  |
| year=2018/month=12  |
+---------------------+
> SHOW PARTITIONS employee_partitioned PARTITION(month='11');
+---------------------+
|      partition      |
+---------------------+
| year=2018/month=11  |
+---------------------+

  从Hive0.13.0开始,SHOW分区可以指定一个数据库 (HIVE-5912)。

SHOW PARTITIONS [db_name.]table_name [PARTITION(partition_spec)];   -- (Note: Hive 0.13.0 and later)

Show Table/Partition Extended

SHOW TABLE EXTENDED [IN|FROM database_name] LIKE 'identifier_with_wildcards' [PARTITION(partition_spec)];

  SHOW TABLE EXTENDED列出匹配到指定正则表达式所有表的信息。如果指定分区标识,则用户不能对表名使用正则表达式,且分区的标识信息必须是完整的分区信息,不能是部分标识。此命令的输出包括像totalNumberFiles,totalFileSize,maxFileSize,minFileSize,LastAccessTime和lastUpdateTime等等基本表信息和文件系统信息。如果分区存在,它将输出给定分区的文件系统信息,而不是表的文件​​系统信息。

  示例

> SHOW TABLE EXTENDED LIKE "employee_partitioned"  PARTITION (year='2018',month='11');
+----------------------------------------------------+
|                      tab_name                      |
+----------------------------------------------------+
| tableName:employee_partitioned                     |
| owner:hadoop                                       |
| location:hdfs://ns001/tmp/hive/employee_partitioned/year=2018/month=11 |
| inputformat:org.apache.hadoop.mapred.TextInputFormat |
| outputformat:org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat |
| columns:struct columns { string name, list<string> work_place, struct<gender:string,age:i32> gender_age, map<string,i32> skills_score, map<string,list<string>> depart_title} |
| partitioned:true                                   |
| partitionColumns:struct partition_columns { i32 year, i32 month} |
| totalNumberFiles:1                                 |
| totalFileSize:228                                  |
| maxFileSize:228                                    |
| minFileSize:228                                    |
| lastAccessTime:1569484958041                       |
| lastUpdateTime:1569484989618                       |
|                                                    |
+----------------------------------------------------+

Show Table Properties

SHOW TBLPROPERTIES tblname;
SHOW TBLPROPERTIES tblname("foo");

  第一种形式列出了所有的表属性,每行由制表符分隔。第二种形式只打印请求属性的值。

  示例

> SHOW TBLPROPERTIES employee_internal;
+------------------------+----------------------------+
|       prpt_name        |         prpt_value         |
+------------------------+----------------------------+
| bucketing_version      | 2                          |
| comment                | This is an internal table  |
| numFiles               | 1                          |
| numRows                | 0                          |
| rawDataSize            | 0                          |
| totalSize              | 228                        |
| transient_lastDdlTime  | 1569395848                 |
+------------------------+----------------------------+

Show Create Table

SHOW CREATE TABLE ([db_name.]table_name|view_name);

  SHOW CREATE TABLE展示一个指定表CREATE TABLE语句,或者展示创建一个指定视图的CREATE VIEW语句。

  示例

> SHOW CREATE TABLE employee_internal;
+----------------------------------------------------+
|                   createtab_stmt                   |
+----------------------------------------------------+
| CREATE TABLE `employee_internal`(                  |
|   `name` string COMMENT 'this is optinal column comments',  |
|   `work_place` array<string>,                      |
|   `gender_age` struct<gender:string,age:int>,      |
|   `skills_score` map<string,int>,                  |
|   `depart_title` map<string,array<string>>)        |
| COMMENT 'This is an internal table'                |
| ROW FORMAT SERDE                                   |
|   'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'  |
| WITH SERDEPROPERTIES (                             |
|   'collection.delim'=',',                          |
|   'field.delim'='|',                               |
|   'mapkey.delim'=':',                              |
|   'serialization.format'='|')                      |
| STORED AS INPUTFORMAT                              |
|   'org.apache.hadoop.mapred.TextInputFormat'       |
| OUTPUTFORMAT                                       |
|   'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat' |
| LOCATION                                           |
|   'hdfs://ns001/tmp/hive/employee_internal'       |
| TBLPROPERTIES (                                    |
|   'bucketing_version'='2',                         |
|   'transient_lastDdlTime'='1569395848')            |
+----------------------------------------------------+

Show Indexes

SHOW [FORMATTED] (INDEX|INDEXES) ON table_with_index [(FROM|IN) db_name];

  SHOW INDEX 列出表上的所有索引,以及有关它们的信息:索引名称、表名、用作键的列名、索引表名称、索引类型和注释。如果使用FORMATTED关键字,则为每一列打印列标题,即按列输出。

  示例

> SHOW INDEX ON test_hive;
+-----------------------+-----------------------+-----------------------+----------------------------------+-----------------------+-----------------------+--+
|       idx_name        |       tab_name        |       col_names       |           idx_tab_name           |       idx_type        |        comment        |
+-----------------------+-----------------------+-----------------------+----------------------------------+-----------------------+-----------------------+--+
| idx_name              | tab_name              | col_names             | idx_tab_name                     | idx_type              | comment               |
|                       | NULL                  | NULL                  | NULL                             | NULL                  | NULL                  |
|                       | NULL                  | NULL                  | NULL                             | NULL                  | NULL                  |
| test_index            | test_hive             | name                  | default__test_hive_test_index__   | compact               |          |
| test_index2           | test_hive             | name                  | default__test_hive_test_index2__  | compact               |          |
+-----------------------+-----------------------+-----------------------+-----------------------------------+-------

Show Columns

SHOW COLUMNS (FROM|IN) table_name [(FROM|IN) db_name];

  Hive 3.0 中新增( HIVE-18373

SHOW COLUMNS (FROM|IN) table_name [(FROM|IN) db_name]  [ LIKE 'pattern_with_wildcards'];

  SHOW COLUMNS列出表中的所有字段、Hive3.0以后,可以用LIKE 子句与正则表达式过滤字段列表。正则表达式中只能使用匹配任意字符的"“或表示可选的”|"的通配符。例如’cola’,'col’,‘a|col’,所有这些都将与’cola’列相匹配。

  示例

-- SHOW COLUMNS
CREATE DATABASE test_db;
USE test_db;
CREATE TABLE foo(col1 INT, col2 INT, col3 INT, cola INT, colb INT, colc INT, a INT, b INT, c INT);
  
-- SHOW COLUMNS basic syntax
SHOW COLUMNS FROM foo;                            -- show all column in foo
SHOW COLUMNS FROM foo "*";                        -- show all column in foo
SHOW COLUMNS IN foo "col*";                       -- show columns in foo starting with "col"                 OUTPUT col1,col2,col3,cola,colb,colc
SHOW COLUMNS FROM foo '*c';                       -- show columns in foo ending with "c"                     OUTPUT c,colc
SHOW COLUMNS FROM foo LIKE "col1|cola";           -- show columns in foo either col1 or cola                 OUTPUT col1,cola
SHOW COLUMNS FROM foo FROM test_db LIKE 'col*';   -- show columns in foo starting with "col"                 OUTPUT col1,col2,col3,cola,colb,colc
SHOW COLUMNS IN foo IN test_db LIKE 'col*';       -- show columns in foo starting with "col" (FROM/IN same)  OUTPUT col1,col2,col3,cola,colb,colc
  
-- Non existing column pattern resulting in no match
SHOW COLUMNS IN foo "nomatch*";
SHOW COLUMNS IN foo "col+";                       -- 不支持 + 通配符 
SHOW COLUMNS IN foo "nomatch";

Show Functions

SHOW FUNCTIONS [LIKE "<pattern>"];

  SHOW FUNCTIONS列出所有的用户自定义函数和内置函数,可以使用LIKE子句与匹配正则表达式来过滤函数列表

  示例

> SHOW FUNCTIONS;
+------------------------------+
|           tab_name           |
+------------------------------+
| !                            |
| !=                           |
| $sum0                        |
| %                            |
...
| ~                            |
+------------------------------+
292 rows selected (0.24 seconds)

> SHOW FUNCTIONS LIKE "a*";

INFO  : OK
+------------------+
|     tab_name     |
+------------------+
| abs              |
| acos             |
| add_months       |
| aes_decrypt      |
| aes_encrypt      |
| and              |
| array            |
| array_contains   |
| ascii            |
| asin             |
| assert_true      |
| assert_true_oom  |
| atan             |
| avg              |
+------------------+
14 rows selected (0.076 seconds)

Show Locks

SHOW LOCKS <table_name>;
SHOW LOCKS <table_name> EXTENDED;
SHOW LOCKS <table_name> PARTITION (<partition_spec>);
SHOW LOCKS <table_name> PARTITION (<partition_spec>) EXTENDED;
SHOW LOCKS (DATABASE|SCHEMA) database_name;     -- (注意: Hive 0.13.0 及之后可用; SCHEMA 在 Hive 0.14.0 添加)

  SHOW LOCKS 列出表或分区上的锁。SHOW LOCKS (DATABASE|SCHEMA) 从Hive0.13支持数据库(见 HIVE-2093)以及 从Hive0.14支持SCHEMA(见 HIVE-6601)。

  示例

> SHOW LOCKS  default.test;
+------------------+---------+
|     tab_name     |  mode   |
+------------------+---------+
| default@test  | SHARED  |
+------------------+---------+
1 row selected (0.088 seconds)

> SHOW LOCKS  default.test EXTENDED;
+----------------------------------------------------+---------+
|                      tab_name                      |  mode   |
+----------------------------------------------------+---------+
| default@test                                    | SHARED  |
| LOCK_QUERYID:hadoop_20190822183844_8095a6bc-f0fe-4c89-ab23-482aa2450f9c | NULL    |
| LOCK_TIME:1566470324253                            | NULL    |
| LOCK_MODE:IMPLICIT                                 | NULL    |
| LOCK_QUERYSTRING:select * from default.test limit 1000 | NULL    |
+----------------------------------------------------+---------+
5 rows selected (0.069 seconds)

> SHOW LOCKS  test PARTITION (year=2019) EXTENDED;
+----------------------------------------------------+---------+
|                      tab_name                      |  mode   |
+----------------------------------------------------+---------+
| default@test@year=2019 | SHARED  |
| LOCK_QUERYID:hadoop_20190828180452_1e291f82-7514-4ac3-b4d4-f0f2cafc0bd7 | NULL    |
| LOCK_TIME:1566986692558                            | NULL    |
| LOCK_MODE:IMPLICIT                                 | NULL    |
| LOCK_QUERYSTRING:select * from test year=2019 limit 1000 | NULL    |
+----------------------------------------------------+---------+
5 rows selected (0.133 seconds)

  如果使用了事务,SHOW LOCKS 将返回如下信息(见 HIVE-6460):

  • 数据库名称
  • 表名
  • 分区名称(如果是分区表)
  • 锁的状态,取值如下:
    • “acquired” - 请求者持有锁
    • “waiting” - 请求者正在等待锁
    • “aborted” - 锁已超时,但还没有被清理
  • 如果锁处于"waiting"状态,该锁的ID。
  • 锁的类型,取值如下:
    • “exclusive” - 没有人能同时持有锁(主要由DDL操作获得,如DROP表)
    • “shared_read” - 可以在同一时间任意数量的shared_read锁定相同的资源(通过读取获得;令人困惑的是,插入操作也获得shared_read锁)
    • “shared_write” - 可同时任意数量shared_read锁定同一资源,但不允许其他shared_write(通过更新而获得和删除)
  • 与此锁相关联的事务ID,如果有的话
  • 持有该锁的所有者上一次发送心跳的时间(表明它仍然活着)
  • 锁获取的时间,如果它已被获取
  • 请求锁的Hive用户
  • 用户运行程序所在的主机
  • agent信息——帮助识别发出锁请求的实体的字符串。对于SQL客户端来说,这是查询ID,对于流客户端来说,它可能是Storm Blot ID(Storm)。

Show Conf

SHOW CONF <configuration_name>;

  SHOW CONF返回指定配置属性的描述信息:

  • 默认值
  • 属性值类型
  • 描述

  注意,SHOW CONF不显示配置属性的当前值。对于当前属性的设置,在CLI或HiveQL脚本、在Beeline中使用"set"命令查看

  示例

> show conf 'hive.arrow.batch.size';
+----------+-------+----------------------------------------------+
| default  | type  |                     desc                     |
+----------+-------+----------------------------------------------+
| 1000     | INT   | The number of rows sent in one Arrow batch.  |
+----------+-------+----------------------------------------------+
1 row selected (0.053 seconds)

Show Transactions

SHOW TRANSACTIONS;

  SHOW TRANSACTIONS 供管理员在使用事务时使用。它返回系统中所有当前打开和中止的事务列表,包括以下信息:

  • 事务ID
  • 事务状态
  • 启动事务的用户
  • 事务开始的服务器
  • 当事务开始的时间戳(从Hive2.2.0开始)
  • 最后一次心跳检测的时间戳(从Hive2.2.0开始)

  示例

> SHOW TRANSACTIONS;
+-----------------+--------------------+---------------+----------------------+-------+-----------+
|      txnid      |       state        |  startedtime  |  lastheartbeattime   | user  |   host    |
+-----------------+--------------------+---------------+----------------------+-------+-----------+
| Transaction ID  | Transaction State  | Started Time  | Last Heartbeat Time  | User  | Hostname  |
+-----------------+--------------------+---------------+----------------------+-------+-----------+

Show Compactions

SHOW COMPACTIONS;

  Hive使用事务时,SHOW COMPACTIONS返回当前正在Compactions或计划Compactions的表和分区的列表,包括以下信息:

  • “CompactionId” – 唯一标识的内部ID(从Hive3.0开始)
  • “Database” - Hive数据库名称
  • “Table” - 表名
  • “Partition” - 分区名称(如果是分区表)
  • “Type” - 无论是最大或最小的紧缩
  • “State” – 紧缩任务所处的状态,可以是:
    • “initiated” - 在队列中等待紧缩
    • “working” – 正在紧缩
    • “ready for cleaning” - 紧缩已经完成,旧文件正安排清洁
    • “failed” - 任务失败。metastore日志中将有更多的细节。
    • “succeeded” - OK
    • “attempted” - 尝试进行紧缩,但失败了。metastore日志中会有更多的信息
  • “Worker” - 执行紧缩操作的worker线程的线程ID(只有working状态)
  • “Start Time” - 在该紧缩的开始时间(仅当在工作或准备清洗的状态)
  • “Duration(ms)”–紧缩所用的时间(从Hive2.2.0开始)
  • “HadoopJobId” -提交的Hadoop的工作标识(从Hive2.2.0开始)
      Compactions是自动启动的,但也可以用ALTER TABLE COMPACT 语句手动启动。

  示例

> SHOW COMPACTIONS;
+---------------+-----------+----------+------------+-------+--------+-----------+-------------+---------------+--------------+
| compactionid  |  dbname   | tabname  |  partname  | type  | state  | workerid  |  starttime  |   duration    | hadoopjobid  |
+---------------+-----------+----------+------------+-------+--------+-----------+-------------+---------------+--------------+
| CompactionId  | Database  | Table    | Partition  | Type  | State  | Worker    | Start Time  | Duration(ms)  | HadoopJobId  |
+---------------+-----------+----------+------------+-------+--------+-----------+-------------+---------------+--------------+

参考
https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-Show

发布了57 篇原创文章 · 获赞 3 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/CPP_MAYIBO/article/details/102211143