SHOW
用SHOW可以查询metastore中的信息。通常,我们用SHOW来查看数据库,表和视图,列等图表对象。
SHOW DATABASES
语法
SHOW DATABASES [LIKE identifier_with_wildcards]
说明
该语句可以查看所有数据库。使用 [LIKE identifier_with_wildcards] 选项可以通过正则表达式过滤查看结果。正则表达式中的外卡只有*(表示任意个字母)和|(表示选择)。比如,'employees', 'emp*', 'emp*|*ees' 都可以和'employees' 匹配。
举例
[$host] transwarp> SHOW DATABASES LIKE 'test';
test
[$host] transwarp> SHOW DATABASES LIKE 'test*';
test
test_db
[$host] transwarp> SHOW DATABASES LIKE 'test*|*db';
my_db
test
test_db
SHOW TABLES
语法
SHOW TABLES [IN database_name] [LIKE identifier_with_wildcards];
SHOW TABLES会显示当前使用的数据库中所有的表和视图。如果想要查看非当前数据库中的表和视图,可以使用 [IN database_name] 来指定数据库。使用 [LIKE identifier_with_wildcards] 选项可以通过正则表达式过滤查看结果。
SHOW PARTITIONS
语法
SHOW PARTITIONS table_name [PARTITION (partition_key = partition_value, partition_key = partition_value, ...)]
SHOW PARTITIONS显示指定表中的所有分区。使用 [PARTITION (partition_key = partition_value, partition_key = partition_value, ...)] 选项可以过滤查看的结果。
举例
[$host] transwarp> SHOW PARTITIONS doub_partition_user_info;
reg_date=20080214/acc_level=B
reg_date=20081031/acc_level=D
reg_date=20091202/acc_level=A
reg_date=20100101/acc_level=C
reg_date=20110101/acc_level=A
reg_date=20110430/acc_level=C
reg_date=20110916/acc_level=D
reg_date=20121024/acc_level=A
reg_date=20130702/acc_level=E
reg_date=20141003/acc_level=C
[$host] transwarp> SHOW PARTITIONS doub_partition_user_info PARTITION (reg_date = '20080214');
reg_date=20080214/acc_level=B
[$host] transwarp> SHOW PARTITIONS doub_partition_user_info PARTITION (acc_level = 'A');
reg_date=20121024/acc_level=A
reg_date=20091202/acc_level=A
reg_date=20110101/acc_level=A
[$host] transwarp> SHOW PARTITIONS doub_partition_user_info PARTITION (reg_date ='20091202',acc_level = 'A');
reg_date=20091202/acc_level=A
SHOW TABLE 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 TBLPROPERTIES
语法
SHOW TBLPROPERTIES table_name;
SHOW TBLPROPERTIES table_name("property_name");
SHOW TBLPROPERTIES可以查看表的所有表属性。如果只要查看某个属性,可以在表名后面的括号中指明。
举例
[$host] transwarp> SHOW TBLPROPERTIES user_info;
numPartitions 0
numFiles 1
last_modified_by yarn
last_modified_time 1417711896
transient_lastDdlTime 1417864612
totalSize 707
numRows 0
rawDataSize 0
[$host] transwarp> SHOW TBLPROPERTIES user_info('numFiles');
1
SHOW CREATE TABLE
语法
SHOW CREATE TABLE ([db_name.]table_name|view_name)
SHOW CREATE TABLE查看指定表和视图的建表语句。
举例
[$host] transwarp> SHOW CREATE TABLE user_info;
CREATE TABLE user_info(
name string,
acc_num string,
password string,
citizen_id string,
bank_acc string,
reg_date string,
acc_level string)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '|'
STORED AS INPUTFORMAT
'org.apache.hadoop.mapred.TextInputFormat'
OUTPUTFORMAT
'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION
'hdfs://ns/inceptor1/user/hive/warehouse/user_info'
TBLPROPERTIES (
'numPartitions'='0',
'numFiles'='1',
'last_modified_by'='yarn',
'last_modified_time'='1417711896',
'transient_lastDdlTime'='1417864612',
'totalSize'='707',
'numRows'='0',
'rawDataSize'='0')
SHOW COLUMNS
语法
SHOW COLUMNS (FROM|IN) table_name [(FROM|IN) db_name]
SHOW COLUMNS查看所有指定表中的列。FROM和IN没有区别,可替换使用。
举例
[$host] transwarp> SHOW COLUMNS IN user_info;
name
acc_num
password
citizen_id
bank_acc
reg_date
acc_level
SHOW FUNCTIONS
语法
SHOW FUNCTIONS indentifier_with_wildcards;
SHOW FUNCTIONS显示所有匹配指定正则表达式的函数。
[$host] transwarp> SHOW FUNCTIONS 'x.*';
xpath
xpath_boolean
xpath_double
xpath_float
xpath_int
xpath_long
xpath_number
xpath_short
xpath_string
如果想要查看所有函数,使用
SHOW FUNCTIONS '.*'。