数据中台-数据采集
數(shù)據(jù)導圖
采集不同數(shù)據(jù)庫庫、表、字段、函數(shù)、外鍵、存儲過程等,為后續(xù)清洗做準備
數(shù)據(jù)采集
1. 獲取數(shù)據(jù)庫所有表
SELECT TABLE_NAME AS TB_NAME,TABLE_NAME AS EN_NAME,TABLE_COMMENT COMMENTS,CREATE_TIME AS CREATE_TIMEFROM INFORMATION_SCHEMA.TABLESWHERE table_type = 'BASE TABLE' AND TABLE_SCHEMA = (SELECT DATABASE())2. 獲取數(shù)據(jù)庫所有字段
SELECT ORDINAL_POSITION AS RN,TABLE_NAME AS TB_NAME,COLUMN_NAME AS EN_NAME,DATA_TYPE AS DATA_TYPE,CASE WHEN data_type = 'float' OR data_type = 'double' OR data_type = 'decimal' THEN NUMERIC_PRECISION ELSE CHARACTER_MAXIMUM_LENGTH END AS DATA_LENGTH,NUMERIC_SCALE AS PRECISION_LENGTH,CASE EXTRA WHEN 'auto_increment' THEN 1 ELSE 0 END AS IS_IDENTITY,CASE WHEN COLUMN_KEY = 'PRI' THEN 1 ELSE 0 END AS IS_PK,CASE WHEN IS_NULLABLE = 'NO' THEN 0 ELSE 1 END AS IS_NULL,COLUMN_DEFAULT AS DEFAULT_VALUE,COLUMN_COMMENT AS COMMENTSFROM information_schema.columnsWHERE table_schema = (SELECT DATABASE()) ORDER BY TB_NAME,RN3. 獲取表所有的外鍵
SELECTC.TABLE_SCHEMA,C.REFERENCED_TABLE_NAME FK_CONN_TABLE,C.REFERENCED_COLUMN_NAME FK_CONN_COLUMNS,C.TABLE_NAME TB_NAME,C.COLUMN_NAME FK_COLUMN,C.CONSTRAINT_NAME FK_NAME,T.TABLE_COMMENT REMARK,R.UPDATE_RULE UPDATE_ACTION,R.DELETE_RULE DELETE_ACTIONFROMINFORMATION_SCHEMA.KEY_COLUMN_USAGE CJOIN INFORMATION_SCHEMA.TABLES T ON T.TABLE_NAME = C.TABLE_NAMEJOIN INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS R ON R.TABLE_NAME = C.TABLE_NAMEAND R.CONSTRAINT_NAME = C.CONSTRAINT_NAMEAND R.REFERENCED_TABLE_NAME = C.REFERENCED_TABLE_NAMEWHEREC.REFERENCED_TABLE_NAME IS NOT NULLAND C.table_schema = (SELECT DATABASE())4. 獲取表所有的索引
SELECT TABLE_NAME TB_NAME,INDEX_NAME,GROUP_CONCAT(COLUMN_NAME) AS INDEX_COLUMNS,SUBSTRING_INDEX(GROUP_CONCAT(INDEX_COMMENT), ',', 1) AS COMMENTS,SUBSTRING_INDEX(GROUP_CONCAT(INDEX_TYPE), ',', 1) AS INDEX_TYPEFROM INFORMATION_SCHEMA.STATISTICSWHERE TABLE_SCHEMA = (SELECT DATABASE()) AND INDEX_NAME != 'PRIMARY'GROUP BY TABLE_NAME, INDEX_NAME5. 獲取表所有的觸發(fā)器
SELECT EVENT_OBJECT_TABLE AS TB_NAME,TRIGGER_NAME AS TRI_NAME,ACTION_TIMING AS TRI_TIME,EVENT_MANIPULATION AS TRI_ENVENT,ACTION_STATEMENT AS SQL_STRFROM information_schema.TRIGGERSWHERE trigger_schema = (SELECT DATABASE())6. 獲取數(shù)據(jù)庫所有的視圖信息
SELECT a.TABLE_NAME VIEW_NAME,a.TABLE_NAME AS EN_NAME,a.TABLE_COMMENT COMMENTS,a.CREATE_TIME AS CREATE_TIME,b.VIEW_DEFINITION AS SQL_STRFROM INFORMATION_SCHEMA.TABLES a LEFT JOININFORMATION_SCHEMA.VIEWS b ON a.table_NAME = b.TABLE_NAMEWHERE a.table_type = 'VIEW' AND a.TABLE_SCHEMA = (SELECT DATABASE())7. 獲取數(shù)據(jù)庫所有的函數(shù)信息
SELECT ROUTINE_NAME AS FUNC_NAME,ROUTINE_NAME AS EN_NAME,ROUTINE_DEFINITION AS SQL_STRFROM INFORMATION_SCHEMA.ROUTINESWHERE ROUTINE_TYPE = 'FUNCTION'AND Routine_SCHEMA = (SELECT DATABASE())8. 獲取數(shù)據(jù)庫所有的存儲過程
SELECT ROUTINE_NAME AS PROC_NAME,ROUTINE_NAME AS EN_NAME,ROUTINE_DEFINITION AS SQL_STRFROM INFORMATION_SCHEMA.ROUTINESWHERE ROUTINE_TYPE = 'PROCEDURE'AND Routine_SCHEMA = (SELECT DATABASE())實踐腳本
代碼解析
- PigConstant
- IPigSqlQuery
- PigSqlQuery
總結
- 上一篇: 【向StoneDB迁移数据】数据迁移同步
- 下一篇: 如何评价谭浩强(转自知乎)