数据仓库工具方法-维度表同步 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 "模块模版表";

 今天的分享就到这里。

二维码

扫一扫,关注我们

声明:本文由【益华网络】编辑上传发布,转载此文章须经作者同意,并请附上出处【益华网络】及本页链接。如内容、图片有任何版权问题,请联系我们进行处理。

感兴趣吗?

欢迎联系我们,我们愿意为您解答任何有关网站疑难问题!

您身边的【网站建设专家】

搜索千万次不如咨询1次

主营项目:网站建设,手机网站,响应式网站,SEO优化,小程序开发,公众号系统,软件开发等

立即咨询 15368564009
在线客服
嘿,我来帮您!