我想在一个查询中获得impala db的元数据。可能会是这样
SELECT columnname,tablename,schemaname from SYSTEM.INFO
有办法吗?例如,我不想只获取当前表和列;
SHOW COLUMN STATS db.table_name
这个问题不是我问题的答案。我想在一个查询中选择所有元数据。
a6b3iqyw1#
从 impala-shell 您有如下命令:describe table_name describe formatted table_name describe database_name EXPLAIN { select_query | ctas_stmt | insert_stmt } 以及 SHOW Statement 这是一种获取不同类型 Impala 物体信息的灵活方法。您可以通过此链接访问 Impala documentation 显示语句。另一方面,有关模式对象的信息保存在metastore数据库中。这个数据库在 Impala 和Hive之间共享。特别是,impala将其表定义保持在传统的格式中 MySQL 或者 PostgreSQL 数据库称为 metastore ,与配置单元保存此类数据的数据库相同。因此,只要所有列都使用impala支持的数据类型、文件格式和压缩编解码器,impala就可以访问hive定义或加载的表。如果你想一次查询这些信息,你必须查询 MySQL , PostgreSQL , Oracle 等等,这取决于你的具体情况。例如,在我的情况下 Impala 保持 metadata 在 MySQL .
impala-shell
describe formatted table_name
EXPLAIN { select_query | ctas_stmt | insert_stmt }
SHOW Statement
Impala documentation
MySQL
PostgreSQL
metastore
Oracle
Impala
metadata
use metastore; -- Database changed SHOW tables; +---------------------------+ | Tables_in_metastore | +---------------------------+ | BUCKETING_COLS | | CDS | | COLUMNS_V2 | | COMPACTION_QUEUE | | COMPLETED_TXN_COMPONENTS | | DATABASE_PARAMS | | DBS | ....... ........ | TAB_COL_STATS | | TBLS | | TBL_COL_PRIVS | | TBL_PRIVS | | TXNS | | TXN_COMPONENTS | | TYPES | | TYPE_FIELDS | | VERSION | +---------------------------+ 54 rows in set (0.00 sec) SELECT * FROM VERSION; +--------+----------------+----------------------------+-------------------+ | VER_ID | SCHEMA_VERSION | VERSION_COMMENT | SCHEMA_VERSION_V2 | +--------+----------------+----------------------------+-------------------+ | 1 | 1.1.0 | Hive release version 1.1.0 | 1.1.0-cdh5.12.0 | +--------+----------------+----------------------------+-------------------+ 1 row in set (0.00 sec)
希望这有帮助。
1条答案
按热度按时间a6b3iqyw1#
从
impala-shell
您有如下命令:describe table_name
describe formatted table_name
describe database_nameEXPLAIN { select_query | ctas_stmt | insert_stmt }
以及SHOW Statement
这是一种获取不同类型 Impala 物体信息的灵活方法。您可以通过此链接访问Impala documentation
显示语句。另一方面,有关模式对象的信息保存在metastore数据库中。这个数据库在 Impala 和Hive之间共享。
特别是,impala将其表定义保持在传统的格式中
MySQL
或者PostgreSQL
数据库称为metastore
,与配置单元保存此类数据的数据库相同。因此,只要所有列都使用impala支持的数据类型、文件格式和压缩编解码器,impala就可以访问hive定义或加载的表。如果你想一次查询这些信息,你必须查询
MySQL
,PostgreSQL
,Oracle
等等,这取决于你的具体情况。例如,在我的情况下
Impala
保持metadata
在MySQL
.希望这有帮助。