mysql hive 建表语句_Mysql元数据如何生成Hive建表语句注释脚本详解
前言
本文主要给大家介绍了关于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建表语句注释脚本详解相关推荐
- mysql分片建表语句_Mysql元数据如何生成Hive建表语句注释脚本详解
前言 本文主要给大家介绍了关于Mysql元数据生成Hive建表语句注释脚本的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍: 最近在将数据从Mysql 等其他关系型数据库 抽取 ...
- oracle和mysql通用建表语句_mysql建表语句到oracle怎么写?
mysql建表语句到oracle怎么写? CREATE TABLE `Advertisment` ( `AdId` int(8) NOT NULL auto_increment, `AderId` ...
- mppdb 查看建表语句_mysql迁移mpp数据库Greenplum
1. 场景描述 因兄弟项目中mysql有点扛不住了,要做sql优化,但是业务有点小复杂,优化起来有点麻烦(sql嵌套有点多),便想着用Mpp数据库Greenplum测试下,看性能和复杂度怎么样,趟趟水 ...
- 关于使用java程序从excel或者数据库中取出建表规则数据,自动生成数据库建表语句(适用于批量建数据库表)
公司开发新系统,需要创建几百个数据库表,建表的规则已经写好放到Excel中,如果手动创建的话需要占用较长的时间去做,而且字段类型的规则又被放到了另一张表,如果手动去一个一个去匹配就很麻烦,所以我先把两 ...
- mysql怎么建表语句_mysql 建表语句
最近项目在用mysql语句 指定非空,默认值为空字符串 NOT NULL DEFAULT '' 建表 CREATE TABLE IF NOT EXISTS `ims_test` ( `id` ...
- jdbc 生成建表语句_mysql数据库下建表语句
mysql建立数据库报错You have an error in your SQL syntax; check the manual that corresponds to your MySQL se ...
- mysql的查表语句_mysql查表语句_MySQL
bitsCN.com mysql查表语句 [sql] describe table_name; 这个命令用来显示一个表格的结构 +----------+-----------+------+----- ...
- Oracle 建表语句的关键字详解
目录 一.建表语句 二.关键字详解 1. ENABLE 和 DISABLE 2. 创建主键约束 3. USING INDEX 4. PCTFREE 5. PCTUSED 6. INITRANS 和 M ...
- mysql建表语句_MySQL之完整建表语句及数据类型
1.创建表的完整语法 create table 表名( 字段名称 数据类型[(长度) 约束条件], 字段名称 数据类型[(长度) 约束条件] ) 必须的:字段名 数据类型 表名 可选的:长度 约束条件 ...
最新文章
- 拜托,别再问我贪心算法了!
- linux nice线程,linux nice 线程
- 搭建kafaka_kafka单机环境搭建及其基本使用
- Android知识点
- 华为 原生android 6.0,安卓6.0原生桌面轻体验,我的手机从未如此流畅过
- 解决org.hibernate.loader.custom.NonUniqueDiscoveredSqlAliasException: Encountered a duplicated sql ...
- Python中is与==的使用区别详解
- 0x01第一个汇编程序
- 手机变慢怎么办?复位、重置可解决
- 【脑电信号】基于matlab小波变换睡眠脑电信号监测【含Matlab源码 595期】
- 单片机消抖c语言程序,单片机中按键消抖程序
- matlab双因素模型,matlab双因素方差分析
- 关于新闻:西瓜3毛一斤仍滞销 被当垃圾扔掉 问题的一点看法
- CutefishOS 0.6 Beta 发布
- 【转自Testerhome】iOS 真机如何安装 WebDriverAgent
- 如何快速设计一款智能窗帘开关产品?APP即可控制窗帘动态
- lol服务器崩溃补偿领取中心,LOL官方: 服务器崩溃补偿! 全服再次免费赠送皮肤一款!...
- char *a 与char a[]所占空间解析题
- SLCP验厂辅导,发布网关是SLCP系统中用于数据托管和共享的关键角色
- 什么是SNMP?为什么需要SNMP?
热门文章
- 网络计划--时间参数的计算和优化
- Word分词标题 和JDK的contain的测试日志显示本地的笔记本 的效率基本上都是1秒以上,显然是Word分词标题 占优势,可是服务器上JDK与Word分析显然无区别,针对8W数据的检索
- Java程序员学习资料分享,等你来收藏!
- 利用文本编辑器判断dll/exe是否为64位
- redis cluster slots数量 为何是16384(2的14次方)
- 七十七、Kettle的简介与安装部署
- Python实现课堂随机提问并语音播报学生姓名!辅导员开心极了!
- Blender和Rizom UV的桥接插件:B2RUVL
- 浅谈ICMP/ping、traceroute、MTR、fping
- 免费帝国CMS插件实现seo优化提升网站排名