查询以在 IMPALA 中一起显示所有列、table 和架构名称
Query to show all column, table and schema names together in IMPALA
我想在一次查询中获取 impala 数据库的元数据。大概会是这样
SELECT columnname,tablename,schemaname from SYSTEM.INFO
有办法吗?例如,我不想只获取当前表列;
SHOW COLUMN STATS db.table_name
此查询不是我的问题的答案。我想 select 一次查询中的所有元数据。
从 impala-shell
你有这样的命令:
describe table_name
describe formatted table_name
describe database_name
EXPLAIN { select_query | ctas_stmt | insert_stmt }
和 SHOW Statement
是获取不同类型 Impala 对象信息的灵活方式。你可以按照这个 link 到 Impala documentation
SHOW statement.
另一方面,有关架构对象的信息保存在元存储数据库中。此数据库在 Impala 和 Hive 之间共享。
特别是,Impala 将其 table 定义保存在传统的 MySQL
或 PostgreSQL
数据库中,称为 metastore
,与 Hive 所在的数据库相同保留此类数据。因此,Impala 可以访问由 Hive 定义或加载的 table,只要所有列都使用 Impala 支持的数据类型、文件格式和压缩编解码器。
如果您想一次查询此信息,则必须查询 MySQL
、PostgreSQL
、Oracle
等,这取决于您的具体情况。
例如,在我的例子中 Impala
将 metadata
保留在 MySQL
中。
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)
希望这对您有所帮助。
我想在一次查询中获取 impala 数据库的元数据。大概会是这样
SELECT columnname,tablename,schemaname from SYSTEM.INFO
有办法吗?例如,我不想只获取当前表列;
SHOW COLUMN STATS db.table_name
此查询不是我的问题的答案。我想 select 一次查询中的所有元数据。
从 impala-shell
你有这样的命令:
describe table_name
describe formatted table_name
describe database_name
EXPLAIN { select_query | ctas_stmt | insert_stmt }
和 SHOW Statement
是获取不同类型 Impala 对象信息的灵活方式。你可以按照这个 link 到 Impala documentation
SHOW statement.
另一方面,有关架构对象的信息保存在元存储数据库中。此数据库在 Impala 和 Hive 之间共享。
特别是,Impala 将其 table 定义保存在传统的 MySQL
或 PostgreSQL
数据库中,称为 metastore
,与 Hive 所在的数据库相同保留此类数据。因此,Impala 可以访问由 Hive 定义或加载的 table,只要所有列都使用 Impala 支持的数据类型、文件格式和压缩编解码器。
如果您想一次查询此信息,则必须查询 MySQL
、PostgreSQL
、Oracle
等,这取决于您的具体情况。
例如,在我的例子中 Impala
将 metadata
保留在 MySQL
中。
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)
希望这对您有所帮助。