目录
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