当前位置:
首页 >
数据中台-数据采集
发布时间:2024/3/12
47
豆豆
数据导图
采集不同数据库库、表、字段、函数、外键、存储过程等,为后续清洗做准备
数据采集
1. 获取数据库所有表
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. 获取数据库所有字段
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. 获取表所有的触发器
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. 获取数据库所有的视图信息
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. 获取数据库所有的函数信息
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. 获取数据库所有的存储过程
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迁移数据】数据迁移同步
- 下一篇: 如何评价谭浩强(转自知乎)