sql—在impala中同时显示所有列、表和架构名称的查询

bnlyeluc  于 2021-05-31  发布在  Hadoop
关注(0)|答案(1)|浏览(1265)

我想在一个查询中获得impala db的元数据。可能会是这样

SELECT columnname,tablename,schemaname from SYSTEM.INFO

有办法吗?例如,我不想只获取当前表和列;

SHOW COLUMN STATS db.table_name

这个问题不是我问题的答案。我想在一个查询中选择所有元数据。

a6b3iqyw

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 保持 metadataMySQL .

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)

希望这有帮助。

相关问题