您现在的位置是:亿华云 > 数据库
数据仓库工具方法-维度表同步 MySQL表结构同步到Hive
亿华云2025-10-03 06:40:36【数据库】8人已围观
简介mysql 中的数据类型与Hive 是有区别的,但是他们有规律, 有规律就好办了, 我们可以通过写程序来批量处理,来提高我们的工作效率。来我们开干。MySQL 中的表结构都是存在一个固定的数据库中,它
mysql 中的数据数据类型与Hive 是有区别的,但是仓库他们有规律, 有规律就好办了,工具构同 我们可以通过写程序来批量处理,维度来提高我们的表同步M表结步工作效率。


来我们开干。云南idc服务商数据
MySQL 中的仓库表结构都是存在一个固定的数据库中,它的工具构同名字是:information_schema
字段是存储在固定的表中:COLUMNS
我们先直接上脚本
SELECT CONCAT( create table , TABLE_NAME, (, substring( column_info, 1, length( column_info ) - 1 ), ), comment , ", TABLE_COMMENT, ", ; ) FROM ( SELECT TABLE_NAME, TABLE_COMMENT, group_concat( CONCAT( COLUMN_NAME, , DATA_TYPE, comment , ", COLUMN_COMMENT, " ) ) AS column_info FROM ( SELECT t1.TABLE_NAME, CASE WHEN t2.TABLE_COMMENT = NULL THEN t1.TABLE_NAME ELSE t2.TABLE_COMMENT END AS TABLE_COMMENT, COLUMN_NAME, CASE WHEN DATA_TYPE = varchar THEN string WHEN DATA_TYPE = int THEN int WHEN DATA_TYPE = tinyint THEN tinyint WHEN DATA_TYPE = decimal THEN double WHEN DATA_TYPE = datetime THEN string WHEN DATA_TYPE = timestamp THEN string WHEN DATA_TYPE = float THEN double WHEN DATA_TYPE = double THEN double WHEN DATA_TYPE = bigint THEN bigint END AS DATA_TYPE, CASE WHEN COLUMN_COMMENT = NULL THEN COLUMN_NAME ELSE COLUMN_COMMENT END AS COLUMN_COMMENT FROM COLUMNS t1 JOIN TABLES t2 ON t1.TABLE_NAME = t2.TABLE_NAME and t1.TABLE_SCHEMA = t2.TABLE_SCHEMA WHERE t1.TABLE_NAME = book_module_stencil and t1.TABLE_SCHEMA=yyb_test ) t3 GROUP BY TABLE_NAME, TABLE_COMMENT ) t4;book_module_stencil 替换成你的表名称。亿华云计算
yyb_test 替换成你的维度数据库名称。
执行结果是表同步M表结步这样的

格式化后是这样的
CREATE TABLE book_module_stencil ( id string COMMENT "id", NAME string COMMENT "版块名称", type string COMMENT "图书类型(0:教材;1:教辅;2课外)", stu_icon string COMMENT "学生端配置图标的地址", tea_icon string COMMENT "老师端配置图标的地址", sort INT COMMENT "排序", remarks string COMMENT "备注信息", create_by string COMMENT "创建者", create_date string COMMENT "创建时间", update_by string COMMENT "更新者", update_date string COMMENT "更新时间", CODE string COMMENT "编码(模块名称首字母)" ) COMMENT "模块模版表";今天的分享就到这里。站群服务器
数据很赞哦!(9)