Hive|Spark 查看表的各种信息 | 您所在的位置:网站首页 › sql如何查看表 › Hive|Spark 查看表的各种信息 |
Hive|Spark 查看表的各种信息
SQL Syntax - Auxiliary Statements:SQL 语法之辅助语句SHOW COLUMNS - 查看字段信息SHOW CREATE TABLE - 查看建表语句SHOW DATABASES - 查看数据库列表SHOW FUNCTIONS - 查看函数列表SHOW PARTITIONS - 获取分区列表SHOW TABLE EXTENDED - 查看表的详细信息SHOW TABLES - 查看表列表SHOW TBLPROPERTIES - 查看表属性SHOW VIEWS - 查看视图列表
SQL Syntax - Auxiliary Statements:SQL 语法之辅助语句
持续更新… sql-ref-syntax-aux-show-columns SHOW COLUMNS - 查看字段信息查看指定表的所有字段列表,如果表不存在,则会抛出异常. 使用语法 -- 使用语法 SHOW COLUMNS table_identifier [ database ]使用示例 -- Create `customer` table in `salesdb` database; USE salesdb; CREATE TABLE customer( cust_cd INT, name VARCHAR(100), cust_addr STRING); -- List the columns of `customer` table in current database. SHOW COLUMNS IN customer; +---------+ | col_name| +---------+ | cust_cd| | name| |cust_addr| +---------+ -- List the columns of `customer` table in `salesdb` database. SHOW COLUMNS IN salesdb.customer; +---------+ | col_name| +---------+ | cust_cd| | name| |cust_addr| +---------+ -- List the columns of `customer` table in `salesdb` database SHOW COLUMNS IN customer IN salesdb; +---------+ | col_name| +---------+ | cust_cd| | name| |cust_addr| +---------+SHOW CREATE TABLE 返回用于创建给定表或视图的 CREATE TABLE 语句或 CREATE VIEW 语句,在不存在的表或临时视图上 SHOW CREATE TABLE 会引发异常 使用语法 SHOW CREATE TABLE table_identifier [ AS SERDE ]使用示例 CREATE TABLE test (c INT) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS TEXTFILE TBLPROPERTIES ('prop1' = 'value1', 'prop2' = 'value2'); -- 返回简洁的建表语句 SHOW CREATE TABLE test;列出与可选提供的正则表达式模式匹配的数据库,如果未提供模式,则该命令列出系统中的所有数据库 注意,SCHEMAS 和 DATABASES 的用法是可以互换的,并且含义相同 使用语法 SHOW { DATABASES | SCHEMAS } [ LIKE regex_pattern ]使用示例 -- 未给出模式,查询所有的数据库 SHOW DATABASES;应用可选的正则表达式模式后返回函数列表,鉴于 Spark 支持的函数数量非常多,该语句结合 describe function 可以快速找到该函数并了解其用法 注意,LIKE 子句是可选的,仅支持与其他系统兼容 使用语法 SHOW [ function_kind ] FUNCTIONS [ { FROM | IN } database_name ] [ LIKE regex_pattern ]参数介绍 -- function_kind(函数种类) 指定要搜索的函数的名称空间,有效的名称空间有: 1. USER - 在用户定义的函数中查找函数. 2. SYSTEM - 在系统的函数中查找函数. 3. ALL - 在用户系统的函数中查找函数. -- { FROM | IN } database_name 指定列出函数的数据库名称 -- regex_pattern 指定用于过滤语句结果的正则表达式模式 1. 支持 * 和 | 字符,同时正则表达式 2. * 单独匹配 0 个或多个字符和 | 用于分隔多个不同的正则表达式,其中任何一个都可以匹配 3. 会将输入的前后空格去除,且匹配时不区分大小写使用示例 -- 在系统和用户自定义的函数中查找 `trim` 函数 SHOW FUNCTIONS trim; +--------+ |function| +--------+ | trim| +--------+ -- 在系统函数中查找 `concat` 函数 SHOW SYSTEM FUNCTIONS concat; +--------+ |function| +--------+ | concat| +--------+ -- 在 `salesdb` 库中查找系统函数 `max` SHOW SYSTEM FUNCTIONS FROM salesdb LIKE 'max'; +--------+ |function| +--------+ | max| +--------+ -- 获取以 `t` 开头的函数列表 SHOW FUNCTIONS LIKE 't*';SHOW PARTITIONS 语句用于列出表的分区,可以指定可选的分区规范以返回与提供的分区规范匹配的分区 使用语法 SHOW PARTITIONS table_identifier [ partition_spec ]使用示例 -- 创建表和分区 CREATE TABLE customer(id INT, name STRING) PARTITIONED BY (state STRING, city STRING); INSERT INTO customer PARTITION (state = 'CA', city = 'Fremont') VALUES (100, 'John'); INSERT INTO customer PARTITION (state = 'CA', city = 'San Jose') VALUES (200, 'Marry'); INSERT INTO customer PARTITION (state = 'AZ', city = 'Peoria') VALUES (300, 'Daniel'); -- 查看 customer 表的所有分区 SHOW PARTITIONS customer;SHOW TABLE EXTENDED 将显示与给定正则表达式匹配的所有表的信息 输出包括基本表信息和文件系统信息,如上次访问、创建者、类型、提供程序、表属性、位置、Serde 库、InputFormat、OutputFormat、存储属性、分区提供程序、分区列和架构 如果存在分区规范,它会输出给定分区的文件系统特定信息,例如分区参数和分区统计信息。 请注意,表正则表达式不能与分区规范一起使用 使用语法 SHOW TABLE EXTENDED [ { IN | FROM } database_name ] LIKE regex_pattern [ partition_spec ]使用示例 -- 获取 employee 表的详细信息 SHOW TABLE EXTENDED LIKE 'employee';SHOW TABLES 语句返回可选指定数据库的所有表。 此外,该语句的输出可以通过可选的匹配模式进行过滤。 如果未指定数据库,则从当前数据库返回表 使用语法 SHOW TABLES [ { FROM | IN } database_name ] [ LIKE regex_pattern ]使用示例 -- 查看当前库的所有表列表 SHOW TABLES; +--------+---------+-----------+ |database|tableName|isTemporary| +--------+---------+-----------+ | default| sam| false| | default| sam1| false| | default| suj| false| +--------+---------+-----------+ -- 查看default库的所有表列表,且表名以 `sam` 开头 SHOW TABLES FROM default LIKE 'sam*'; +--------+---------+-----------+ |database|tableName|isTemporary| +--------+---------+-----------+ | default| sam| false| | default| sam1| false| +--------+---------+-----------+ -- 查看当前库的所有表列表,且表名以 `sam`开头 或表名为`suj` SHOW TABLES LIKE 'sam*|suj'; +--------+---------+-----------+ |database|tableName|isTemporary| +--------+---------+-----------+ | default| sam| false| | default| sam1| false| | default| suj| false| +--------+---------+-----------+ SHOW TBLPROPERTIES - 查看表属性给定属性键的可选值,此语句返回表属性的值。 如果未指定键,则返回所有属性 注意,此语句返回的属性值不包括 spark 和 hive 内部的一些属性。 排除的属性是: 1. 所有以前缀 spark.sql 开头的属性 2. 属性键,例如:EXTERNAL、comment 3. hive 内部生成的所有属性,用于存储统计信息。 其中一些属性是:numFiles、numPartitions、numRows使用语法 SHOW TBLPROPERTIES table_identifier [ ( unquoted_property_key | property_key_as_string_literal ) ]使用示例 -- 查看customer的所有属性 SHOW TBLPROPERTIES customer; +---------------------+----------+ | key| value| +---------------------+----------+ | created.by.user| John| | created.date|01-01-2001| |transient_lastDdlTime|1567554931| +---------------------+----------+ -- 查看customer的所有属性 SHOW TBLPROPERTIES salesdb.customer; +---------------------+----------+ | key| value| +---------------------+----------+ | created.by.user| John| | created.date|01-01-2001| |transient_lastDdlTime|1567554931| +---------------------+----------+ -- 通过不带 ` 号的方式查看 customer 表的 created.by.user 属性 SHOW TBLPROPERTIES customer (created.by.user); +-----+ |value| +-----+ | John| +-----+ -- 通过带 ` 号的方式查看 customer 表的 created.date 属性 SHOW TBLPROPERTIES customer ('created.date'); +----------+ | value| +----------+ |01-01-2001| +----------+ SHOW VIEWS - 查看视图列表SHOW VIEWS 语句返回可选指定数据库的所有视图 此外,该语句的输出可以通过可选的匹配模式进行过滤。 如果未指定数据库,则从当前数据库返回视图。 如果指定的数据库是全局临时视图数据库,我们将列出全局临时视图。 请注意,无论给定数据库如何,该命令还列出本地临时视图 使用语法 SHOW VIEWS [ { FROM | IN } database_name ] [ LIKE regex_pattern ]使用示例 -- 在不同的数据库中创建 全局/临时 的视图 CREATE VIEW sam AS SELECT id, salary FROM employee WHERE name = 'sam'; CREATE VIEW sam1 AS SELECT id, salary FROM employee WHERE name = 'sam1'; CREATE VIEW suj AS SELECT id, salary FROM employee WHERE name = 'suj'; USE userdb; CREATE VIEW user1 AS SELECT id, salary FROM default.employee WHERE name = 'user1'; CREATE VIEW user2 AS SELECT id, salary FROM default.employee WHERE name = 'user2'; USE default; CREATE GLOBAL TEMP VIEW temp1 AS SELECT 1 AS col1; CREATE TEMP VIEW temp2 AS SELECT 1 AS col1; -- 查看默认数据库的所有视图 SHOW VIEWS; +-------------+------------+--------------+ | namespace | viewName | isTemporary | +-------------+------------+--------------+ | default | sam | false | | default | sam1 | false | | default | suj | false | | | temp2 | true | +-------------+------------+--------------+ -- 查看test数据库的所有视图 SHOW VIEWS FROM test; +-------------+------------+--------------+ | namespace | viewName | isTemporary | +-------------+------------+--------------+ | test | user1 | false | | test | user2 | false | | | temp2 | true | +-------------+------------+--------------+ -- 查看所有视图,且名称为sam或suj或以temp开头 SHOW VIEWS LIKE 'sam|suj|temp*'; +-------------+------------+--------------+ | namespace | viewName | isTemporary | +-------------+------------+--------------+ | default | sam | false | | default | suj | false | | | temp2 | true | +-------------+------------+--------------+ |
CopyRight 2018-2019 实验室设备网 版权所有 |