数据仓库工具方法-维度表同步 MySQL表结构同步到Hive
发布时间:2025-05-15 00:43:05
作者:益华网络
来源:undefined
浏览量(0)
点赞(0)
摘要:mysql 中的数据类型与Hive 是有区别的,但是他们有规律, 有规律就好办了, 我们可以通过写程序来批量处理,来提高我们的工作效率。 来我们开干。 MySQL 中的表结构都是存在一个固定的数据库中,它的名字是:information_schema 字段是存储在固定的表中:C
mysql 中的数据类型与Hive 是有区别的,但是他们有规律, 有规律就好办了, 我们可以通过写程序来批量处理,来提高我们的工作效率。


来我们开干。
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 替换成你的数据库名称。
执行结果是这样的

格式化后是这样的
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 "模块模版表";今天的分享就到这里。
扫一扫,关注我们
声明:本文由【益华网络】编辑上传发布,转载此文章须经作者同意,并请附上出处【益华网络】及本页链接。如内容、图片有任何版权问题,请联系我们进行处理。
0