前言

本文主要给大家介绍了关于Mysql元数据生成Hive建表语句注释脚本的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍:

最近在将数据从Mysql 等其他关系型数据库 抽取到Hive 表中时,需要同步mysql表中的注释,以下脚本可以生成hive表字段注释修改语句。

注:其他关系型数据库如:oracle 可以通过相同的思路,读取元数据,修改脚本语法实现。

使用:

在mysql元数据库:information_schema 中执行以下语句

SELECT CONCAT('alter table ', TABLE_NAME, ' CHANGE COLUMN ', COLUMN_NAME, ' ', COLUMN_NAME, ' ', DATA_TYPE, ' comment ', '"', COLUMN_COMMENT, '"', ';')

FROM (SELECT TABLE_NAME, 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, COLUMN_COMMENT

FROM COLUMNS

WHERE TABLE_NAME = 'o_oms_statistic_profit'

) t;

在将数据从Mysql 等其他关系型数据库 抽取到Hive 表中时,需要同步mysql表中的注释,以下脚本可以生成hive创建表语句。只是生成了hive表主要的字段信息,其他信息需要手工添加。

在mysql元数据库:information_schema 中执行以下语句

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

WHERE t1.TABLE_NAME = 'o_oms_statistic_profit'

) t3

GROUP BY TABLE_NAME, TABLE_COMMENT

) t4;

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

mysql hive 建表语句_Mysql元数据如何生成Hive建表语句注释脚本详解相关推荐

  1. mysql分片建表语句_Mysql元数据如何生成Hive建表语句注释脚本详解

    前言 本文主要给大家介绍了关于Mysql元数据生成Hive建表语句注释脚本的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍: 最近在将数据从Mysql 等其他关系型数据库 抽取 ...

  2. oracle和mysql通用建表语句_mysql建表语句到oracle怎么写?

    mysql建表语句到oracle怎么写? CREATE TABLE `Advertisment` (  `AdId` int(8) NOT NULL auto_increment,  `AderId` ...

  3. mppdb 查看建表语句_mysql迁移mpp数据库Greenplum

    1. 场景描述 因兄弟项目中mysql有点扛不住了,要做sql优化,但是业务有点小复杂,优化起来有点麻烦(sql嵌套有点多),便想着用Mpp数据库Greenplum测试下,看性能和复杂度怎么样,趟趟水 ...

  4. 关于使用java程序从excel或者数据库中取出建表规则数据,自动生成数据库建表语句(适用于批量建数据库表)

    公司开发新系统,需要创建几百个数据库表,建表的规则已经写好放到Excel中,如果手动创建的话需要占用较长的时间去做,而且字段类型的规则又被放到了另一张表,如果手动去一个一个去匹配就很麻烦,所以我先把两 ...

  5. mysql怎么建表语句_mysql 建表语句

    最近项目在用mysql语句 指定非空,默认值为空字符串    NOT NULL  DEFAULT '' 建表 CREATE TABLE  IF NOT EXISTS `ims_test` ( `id` ...

  6. jdbc 生成建表语句_mysql数据库下建表语句

    mysql建立数据库报错You have an error in your SQL syntax; check the manual that corresponds to your MySQL se ...

  7. mysql的查表语句_mysql查表语句_MySQL

    bitsCN.com mysql查表语句 [sql] describe table_name; 这个命令用来显示一个表格的结构 +----------+-----------+------+----- ...

  8. Oracle 建表语句的关键字详解

    目录 一.建表语句 二.关键字详解 1. ENABLE 和 DISABLE 2. 创建主键约束 3. USING INDEX 4. PCTFREE 5. PCTUSED 6. INITRANS 和 M ...

  9. mysql建表语句_MySQL之完整建表语句及数据类型

    1.创建表的完整语法 create table 表名( 字段名称 数据类型[(长度) 约束条件], 字段名称 数据类型[(长度) 约束条件] ) 必须的:字段名 数据类型 表名 可选的:长度 约束条件 ...

最新文章

  1. 拜托,别再问我贪心算法了!
  2. linux nice线程,linux nice 线程
  3. 搭建kafaka_kafka单机环境搭建及其基本使用
  4. Android知识点
  5. 华为 原生android 6.0,安卓6.0原生桌面轻体验,我的手机从未如此流畅过
  6. 解决org.hibernate.loader.custom.NonUniqueDiscoveredSqlAliasException: Encountered a duplicated sql ...
  7. Python中is与==的使用区别详解
  8. 0x01第一个汇编程序
  9. 手机变慢怎么办?复位、重置可解决
  10. 【脑电信号】基于matlab小波变换睡眠脑电信号监测【含Matlab源码 595期】
  11. 单片机消抖c语言程序,单片机中按键消抖程序
  12. matlab双因素模型,matlab双因素方差分析
  13. 关于新闻:西瓜3毛一斤仍滞销 被当垃圾扔掉 问题的一点看法
  14. CutefishOS 0.6 Beta 发布
  15. 【转自Testerhome】iOS 真机如何安装 WebDriverAgent
  16. 如何快速设计一款智能窗帘开关产品?APP即可控制窗帘动态
  17. lol服务器崩溃补偿领取中心,LOL官方: 服务器崩溃补偿! 全服再次免费赠送皮肤一款!...
  18. char *a 与char a[]所占空间解析题
  19. SLCP验厂辅导,发布网关是SLCP系统中用于数据托管和共享的关键角色
  20. 什么是SNMP?为什么需要SNMP?

热门文章

  1. 网络计划--时间参数的计算和优化
  2. Word分词标题 和JDK的contain的测试日志显示本地的笔记本 的效率基本上都是1秒以上,显然是Word分词标题 占优势,可是服务器上JDK与Word分析显然无区别,针对8W数据的检索
  3. Java程序员学习资料分享,等你来收藏!
  4. 利用文本编辑器判断dll/exe是否为64位
  5. redis cluster slots数量 为何是16384(2的14次方)
  6. 七十七、Kettle的简介与安装部署
  7. Python实现课堂随机提问并语音播报学生姓名!辅导员开心极了!
  8. Blender和Rizom UV的桥接插件:B2RUVL
  9. 浅谈ICMP/ping、traceroute、MTR、fping
  10. 免费帝国CMS插件实现seo优化提升网站排名