diff --git metastore/scripts/upgrade/hive/hive-schema-4.0.0.hive.sql metastore/scripts/upgrade/hive/hive-schema-4.0.0.hive.sql index 322a447bb2..8ef4e8b767 100644 --- metastore/scripts/upgrade/hive/hive-schema-4.0.0.hive.sql +++ metastore/scripts/upgrade/hive/hive-schema-4.0.0.hive.sql @@ -1254,6 +1254,175 @@ FROM \"SCHEDULED_EXECUTIONS\"" ); +CREATE EXTERNAL TABLE IF NOT EXISTS `TXNS` ( + `TXN_ID` bigint, + `TXN_STATE` string, + `TXN_STARTED` bigint, + `TXN_LAST_HEARTBEAT` bigint, + `TXN_USER` string, + `TXN_HOST` string, + `TXN_AGENT_INFO` string, + `TXN_META_INFO` string, + `TXN_HEARTBEAT_COUNT` int, + `TXN_TYPE` int +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"TXN_ID\", + \"TXN_STATE\", + \"TXN_STARTED\", + \"TXN_LAST_HEARTBEAT\", + \"TXN_USER\", + \"TXN_HOST\", + \"TXN_AGENT_INFO\", + \"TXN_META_INFO\", + \"TXN_HEARTBEAT_COUNT\", + \"TXN_TYPE\" +FROM \"TXNS\"" +); + + +CREATE EXTERNAL TABLE IF NOT EXISTS `TXN_COMPONENTS` ( + `TC_TXNID` bigint, + `TC_DATABASE` string, + `TC_TABLE` string, + `TC_PARTITION` string, + `TC_OPERATION_TYPE` string, + `TC_WRITEID` bigint +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"TC_TXNID\", + \"TC_DATABASE\", + \"TC_TABLE\", + \"TC_PARTITION\", + \"TC_OPERATION_TYPE\", + \"TC_WRITEID\" +FROM \"TXN_COMPONENTS\"" +); + + +CREATE OR REPLACE VIEW `TRANSACTIONS` ( + `TXN_ID`, + `STATE`, + `STARTED`, + `LAST_HEARTBEAT`, + `USER`, + `HOST`, + `AGENT_INFO`, + `META_INFO`, + `HEARTBEAT_COUNT`, + `TYPE`, + `TC_DATABASE`, + `TC_TABLE`, + `TC_PARTITION`, + `TC_OPERATION_TYPE`, + `TC_WRITEID` +) AS +SELECT DISTINCT + T.`TXN_ID`, + CASE WHEN T.`TXN_STATE` = 'o' THEN 'open' WHEN T.`TXN_STATE` = 'a' THEN 'aborted' WHEN T.`TXN_STATE` = 'c' THEN 'commited' ELSE 'UNKNOWN' END AS TXN_STATE, + FROM_UNIXTIME(T.`TXN_STARTED`) AS TXN_STARTED, + FROM_UNIXTIME(T.`TXN_LAST_HEARTBEAT`) AS TXN_LAST_HEARTBEAT, + T.`TXN_USER`, + T.`TXN_HOST`, + T.`TXN_AGENT_INFO`, + T.`TXN_META_INFO`, + T.`TXN_HEARTBEAT_COUNT`, + CASE WHEN T.`TXN_TYPE` = 0 THEN 'DEFAULT' WHEN T.`TXN_TYPE` = 1 THEN 'REPL_CREATED' WHEN T.`TXN_TYPE` = 2 THEN 'READ_ONLY' WHEN T.`TXN_TYPE` = 3 THEN 'COMPACTION' END AS TXN_TYPE, + TC.`TC_DATABASE`, + TC.`TC_TABLE`, + TC.`TC_PARTITION`, + CASE WHEN TC.`TC_OPERATION_TYPE` = 's' THEN 'SELECT' WHEN TC.`TC_OPERATION_TYPE` = 'i' THEN 'INSERT' WHEN TC.`TC_OPERATION_TYPE` = 'u' THEN 'UPDATE' WHEN TC.`TC_OPERATION_TYPE` = 'c' THEN 'COMPACT' END AS OPERATION_TYPE, + TC.`TC_WRITEID` +FROM `SYS`.`TXNS` AS T +LEFT JOIN `SYS`.`TXN_COMPONENTS` AS TC ON T.`TXN_ID` = TC.`TC_TXNID`; + +CREATE TABLE `HIVE_LOCKS` ( + `HL_LOCK_EXT_ID` bigint, + `HL_LOCK_INT_ID` bigint, + `HL_TXNID` bigint, + `HL_DB` string, + `HL_TABLE` string, + `HL_PARTITION` string, + `HL_LOCK_STATE` string, + `HL_LOCK_TYPE` string, + `HL_LAST_HEARTBEAT` bigint, + `HL_ACQUIRED_AT` bigint, + `HL_USER` string, + `HL_HOST` string, + `HL_HEARTBEAT_COUNT` int, + `HL_AGENT_INFO` string, + `HL_BLOCKEDBY_EXT_ID` bigint, + `HL_BLOCKEDBY_INT_ID` bigint +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"HL_LOCK_EXT_ID\", + \"HL_LOCK_INT_ID\", + \"HL_TXNID\", + \"HL_DB\", + \"HL_TABLE\", + \"HL_PARTITION\", + \"HL_LOCK_STATE\", + \"HL_LOCK_TYPE\", + \"HL_LAST_HEARTBEAT\", + \"HL_ACQUIRED_AT\", + \"HL_USER\", + \"HL_HOST\", + \"HL_HEARTBEAT_COUNT\", + \"HL_AGENT_INFO\", + \"HL_BLOCKEDBY_EXT_ID\", + \"HL_BLOCKEDBY_INT_ID\" +FROM \"HIVE_LOCKS\"" +); + +CREATE OR REPLACE VIEW `LOCKS` ( + `LOCK_EXT_ID`, + `LOCK_INT_ID`, + `TXNID`, + `DB`, + `TABLE`, + `PARTITION`, + `LOCK_STATE`, + `LOCK_TYPE`, + `LAST_HEARTBEAT`, + `ACQUIRED_AT`, + `USER`, + `HOST`, + `HEARTBEAT_COUNT`, + `AGENT_INFO`, + `BLOCKEDBY_EXT_ID`, + `BLOCKEDBY_INT_ID` +) AS +SELECT DISTINCT + HL.`HL_LOCK_EXT_ID`, + HL.`HL_LOCK_INT_ID`, + HL.`HL_TXNID`, + HL.`HL_DB`, + HL.`HL_TABLE`, + HL.`HL_PARTITION`, + CASE WHEN HL.`HL_LOCK_STATE` = 'a' THEN 'acquired' WHEN HL.`HL_LOCK_STATE` = 'w' THEN 'waiting' END AS LOCK_STATE, + CASE WHEN HL.`HL_LOCK_TYPE` = 'e' THEN 'exclusive' WHEN HL.`HL_LOCK_TYPE` = 'r' THEN 'shared' WHEN HL.`HL_LOCK_TYPE` = 'w' THEN 'semi-shared' END AS LOCK_TYPE, + FROM_UNIXTIME(HL.`HL_LAST_HEARTBEAT`), + FROM_UNIXTIME(HL.`HL_ACQUIRED_AT`), + HL.`HL_USER`, + HL.`HL_HOST`, + HL.`HL_HEARTBEAT_COUNT`, + HL.`HL_AGENT_INFO`, + HL.`HL_BLOCKEDBY_EXT_ID`, + HL.`HL_BLOCKEDBY_INT_ID` +FROM SYS.`HIVE_LOCKS` AS HL; + CREATE DATABASE IF NOT EXISTS INFORMATION_SCHEMA; USE INFORMATION_SCHEMA; diff --git metastore/scripts/upgrade/hive/upgrade-3.1.0-to-4.0.0.hive.sql metastore/scripts/upgrade/hive/upgrade-3.1.0-to-4.0.0.hive.sql index 6cb12f9123..0b5bd743c6 100644 --- metastore/scripts/upgrade/hive/upgrade-3.1.0-to-4.0.0.hive.sql +++ metastore/scripts/upgrade/hive/upgrade-3.1.0-to-4.0.0.hive.sql @@ -137,7 +137,175 @@ LEFT OUTER JOIN \"WM_POOL\" ON \"WM_POOL\".\"POOL_ID\" = \"WM_MAPPING\".\"POOL_I " ); +-- HIVE-22553 +CREATE EXTERNAL TABLE IF NOT EXISTS `TXNS` ( + `TXN_ID` bigint, + `TXN_STATE` string, + `TXN_STARTED` bigint, + `TXN_LAST_HEARTBEAT` bigint, + `TXN_USER` string, + `TXN_HOST` string, + `TXN_AGENT_INFO` string, + `TXN_META_INFO` string, + `TXN_HEARTBEAT_COUNT` int, + `TXN_TYPE` int +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"TXN_ID\", + \"TXN_STATE\", + \"TXN_STARTED\", + \"TXN_LAST_HEARTBEAT\", + \"TXN_USER\", + \"TXN_HOST\", + \"TXN_AGENT_INFO\", + \"TXN_META_INFO\", + \"TXN_HEARTBEAT_COUNT\", + \"TXN_TYPE\" +FROM \"TXNS\"" +); + + +CREATE EXTERNAL TABLE IF NOT EXISTS `TXN_COMPONENTS` ( + `TC_TXNID` bigint, + `TC_DATABASE` string, + `TC_TABLE` string, + `TC_PARTITION` string, + `TC_OPERATION_TYPE` string, + `TC_WRITEID` bigint +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"TC_TXNID\", + \"TC_DATABASE\", + \"TC_TABLE\", + \"TC_PARTITION\", + \"TC_OPERATION_TYPE\", + \"TC_WRITEID\" +FROM \"TXN_COMPONENTS\"" +); + + +CREATE OR REPLACE VIEW `TRANSACTIONS` ( + `TXN_ID`, + `STATE`, + `STARTED`, + `LAST_HEARTBEAT`, + `USER`, + `HOST`, + `AGENT_INFO`, + `META_INFO`, + `HEARTBEAT_COUNT`, + `TYPE`, + `TC_DATABASE`, + `TC_TABLE`, + `TC_PARTITION`, + `TC_OPERATION_TYPE`, + `TC_WRITEID` +) AS +SELECT DISTINCT + T.`TXN_ID`, + CASE WHEN T.`TXN_STATE` = 'o' THEN 'open' WHEN T.`TXN_STATE` = 'a' THEN 'aborted' WHEN T.`TXN_STATE` = 'c' THEN 'commited' ELSE 'UNKNOWN' END AS TXN_STATE, + FROM_UNIXTIME(T.`TXN_STARTED`) AS TXN_STARTED, + FROM_UNIXTIME(T.`TXN_LAST_HEARTBEAT`) AS TXN_LAST_HEARTBEAT, + T.`TXN_USER`, + T.`TXN_HOST`, + T.`TXN_AGENT_INFO`, + T.`TXN_META_INFO`, + T.`TXN_HEARTBEAT_COUNT`, + CASE WHEN T.`TXN_TYPE` = 0 THEN 'DEFAULT' WHEN T.`TXN_TYPE` = 1 THEN 'REPL_CREATED' WHEN T.`TXN_TYPE` = 2 THEN 'READ_ONLY' WHEN T.`TXN_TYPE` = 3 THEN 'COMPACTION' END AS TXN_TYPE, + TC.`TC_DATABASE`, + TC.`TC_TABLE`, + TC.`TC_PARTITION`, + CASE WHEN TC.`TC_OPERATION_TYPE` = 's' THEN 'SELECT' WHEN TC.`TC_OPERATION_TYPE` = 'i' THEN 'INSERT' WHEN TC.`TC_OPERATION_TYPE` = 'u' THEN 'UPDATE' WHEN TC.`TC_OPERATION_TYPE` = 'c' THEN 'COMPACT' END AS OPERATION_TYPE, + TC.`TC_WRITEID` +FROM `SYS`.`TXNS` AS T +LEFT JOIN `SYS`.`TXN_COMPONENTS` AS TC ON T.`TXN_ID` = TC.`TC_TXNID`; + +CREATE TABLE `HIVE_LOCKS` ( + `HL_LOCK_EXT_ID` bigint, + `HL_LOCK_INT_ID` bigint, + `HL_TXNID` bigint, + `HL_DB` string, + `HL_TABLE` string, + `HL_PARTITION` string, + `HL_LOCK_STATE` string, + `HL_LOCK_TYPE` string, + `HL_LAST_HEARTBEAT` bigint, + `HL_ACQUIRED_AT` bigint, + `HL_USER` string, + `HL_HOST` string, + `HL_HEARTBEAT_COUNT` int, + `HL_AGENT_INFO` string, + `HL_BLOCKEDBY_EXT_ID` bigint, + `HL_BLOCKEDBY_INT_ID` bigint +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"HL_LOCK_EXT_ID\", + \"HL_LOCK_INT_ID\", + \"HL_TXNID\", + \"HL_DB\", + \"HL_TABLE\", + \"HL_PARTITION\", + \"HL_LOCK_STATE\", + \"HL_LOCK_TYPE\", + \"HL_LAST_HEARTBEAT\", + \"HL_ACQUIRED_AT\", + \"HL_USER\", + \"HL_HOST\", + \"HL_HEARTBEAT_COUNT\", + \"HL_AGENT_INFO\", + \"HL_BLOCKEDBY_EXT_ID\", + \"HL_BLOCKEDBY_INT_ID\" +FROM \"HIVE_LOCKS\"" +); +CREATE OR REPLACE VIEW `LOCKS` ( + `LOCK_EXT_ID`, + `LOCK_INT_ID`, + `TXNID`, + `DB`, + `TABLE`, + `PARTITION`, + `LOCK_STATE`, + `LOCK_TYPE`, + `LAST_HEARTBEAT`, + `ACQUIRED_AT`, + `USER`, + `HOST`, + `HEARTBEAT_COUNT`, + `AGENT_INFO`, + `BLOCKEDBY_EXT_ID`, + `BLOCKEDBY_INT_ID` +) AS +SELECT DISTINCT + HL.`HL_LOCK_EXT_ID`, + HL.`HL_LOCK_INT_ID`, + HL.`HL_TXNID`, + HL.`HL_DB`, + HL.`HL_TABLE`, + HL.`HL_PARTITION`, + CASE WHEN HL.`HL_LOCK_STATE` = 'a' THEN 'acquired' WHEN HL.`HL_LOCK_STATE` = 'w' THEN 'waiting' END AS LOCK_STATE, + CASE WHEN HL.`HL_LOCK_TYPE` = 'e' THEN 'exclusive' WHEN HL.`HL_LOCK_TYPE` = 'r' THEN 'shared' WHEN HL.`HL_LOCK_TYPE` = 'w' THEN 'semi-shared' END AS LOCK_TYPE, + FROM_UNIXTIME(HL.`HL_LAST_HEARTBEAT`), + FROM_UNIXTIME(HL.`HL_ACQUIRED_AT`), + HL.`HL_USER`, + HL.`HL_HOST`, + HL.`HL_HEARTBEAT_COUNT`, + HL.`HL_AGENT_INFO`, + HL.`HL_BLOCKEDBY_EXT_ID`, + HL.`HL_BLOCKEDBY_INT_ID` +FROM SYS.`HIVE_LOCKS` AS HL; DROP TABLE IF EXISTS `VERSION`;