数仓搭建的过程中,需要将业务数据导入到hive中,但是业务表较多,建表成为一个效率瓶颈。可以利用mysql的元数据库INFORMATION_SCHEMA ,其中COLUMNS和 TABLES这两张表记录了我们需要的表名,列名,comemnt等信息。

下面是生产中实际用到的一个案例sql,在使用时可以根据自己公司的规范进行修改: 可以往where table name中添加多张表,实现批量创建

SELECT CONCAT('create table if not exists ods.ods_',schema_table, ' (',column_info,') comment \'', TABLE_COMMENT, '\' partitioned by (p_date string) ROW FORMAT DELIMITED FIELDS TERMINATED BY \'\\001\' stored as orc',' location \'hdfs://emr-cluster/user/hive/warehouse/fle_ods.db/ods_',schema_table, '\' TBLPROPERTIES ("orc.compress" = "snappy");')
FROM (SELECT TABLE_NAME,table_schema,schema_new,concat(schema_new,'_',TABLE_NAME,'','_di') as schema_table,TABLE_COMMENT,group_concat(CONCAT(COLUMN_NAME, ' ', DATA_TYPE, ' comment ', '\'', COLUMN_COMMENT, '\'')) AS column_infoFROM (SELECT t1.TABLE_NAME,t1.table_schema,case when t1.table_schema ='test' then 'other_test' when t1.table_schema='order_test' then 'ods_order' else '??' end as schema_new,t2.TABLE_COMMENT,COLUMN_NAME,CASEWHEN DATA_TYPE = 'varchar' THEN 'string'WHEN DATA_TYPE = 'int' THEN 'string'WHEN DATA_TYPE = 'tinyint' THEN 'string'WHEN DATA_TYPE = 'decimal' THEN 'string'WHEN DATA_TYPE = 'datetime' THEN 'string'WHEN DATA_TYPE = 'timestamp' THEN 'string'WHEN DATA_TYPE = 'float' THEN 'string'WHEN DATA_TYPE = 'double' THEN 'string'when DATA_TYPE = 'bigint' THEN 'string'WHEN DATA_TYPE = 'smallint' THEN 'string'WHEN DATA_TYPE = 'tinyint' THEN 'string'WHEN DATA_TYPE = 'date' THEN 'string'WHEN DATA_TYPE = 'boolean' THEN 'string'WHEN DATA_TYPE = 'time' THEN 'string'END AS DATA_TYPE,COLUMN_COMMENTFROM COLUMNS t1JOIN TABLES t2 ON t1.TABLE_NAME = t2.TABLE_NAMEWHERE t1.TABLE_NAME in ('test_table_1','table_2')) t3GROUP BY TABLE_NAME, TABLE_COMMENT) t4

利用mysql元数据自动生成hive建表语句相关推荐

  1. Excel自动生成sql建表语句

    ETL开发中重新整理很多表结构,写建表语句又是一件头疼的事情,干脆借鉴网友的代码,自己写了一个自动生成建表sql的模板. 模板下载:http://download.csdn.net/detail/en ...

  2. 1.python 根据 oracle字段名和类型 生成 hive建表语句

    一.问题 遇到一个场景,要根据oracle表结构创建hive表. 本来想写一个根据oracle信息和表名自动在hive中创建表的脚本.如果在集群运行,python操作oracle的cx_Oracle在 ...

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

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

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

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

  5. 使用java代码编写脚本,把oracle建表语句变成hive建表语句

    使用java代码编写脚本,把oracle建表语句变成hive建表语句 java代码 测试oracle.sql 生成hive创表语句 java代码 import java.io.File; import ...

  6. hive建表语句_Hive数据如何同步到MaxCompute之实践讲解

    摘要:本次分享主要介绍 Hive数据如何迁移到MaxCompute.MMA(MaxCompute Migration Assist)是一款MaxCompute数据迁移工具,本文将为大家介绍MMA工具的 ...

  7. Oracle、Hive建表语句

    1.Oracle建表 drop table T_PSSC_TRAN_PORTRAIT_CENTER; create table T_PSSC_TRAN_PORTRAIT_CENTER ( OBJ_ID ...

  8. 小技巧:用python迅速打印Java写 的Flink代码中的hive建表语句

    假设我们想要用Flink对hive进行读写, 并且其中一段代码如下: // 如果hive中已经存在了相应的表,则这段代码省略String hiveSql = "CREATE external ...

  9. SpringBoot自动运行sql建表语句

    1.在Resources下添加建表的sql语句 2.配置文件 application.yml spring:datasource:username: rootpassword: adminurl: j ...

  10. hsqldb mysql 语法_[spring batch]建表语句(hsqldb改mysql)

    /** * @see https://spring.io/guides/gs/batch-processing/ */ @Configuration @EnableBatchProcessing pu ...

最新文章

  1. JavaScript去除字符串首尾空格
  2. 【吉林】2021年下半年软考报考时间及通知
  3. 【BZOJ3611】【HeOI2014】—大工程(虚树+dp)
  4. searchindexer.exe占cpu使用率高
  5. 相位噪声 matlab,相位噪声仿真方法.PDF
  6. 计算机启动完成后操作系统负责管理的是,终极:如果计算机启动后无法进入系统,旧驱动程序会教您如何处理...
  7. 可选版本 安装软件_【Linux软件】在Deepin系统下安装LibreOffice 6.1.4版本的方法
  8. 自动驾驶与交通效率数学建模_业界大咖:5G智慧交通体系将推动自动驾驶换挡提速 | 推广...
  9. c语言 动态数组_C语言的学习笔记!助你一路成长!
  10. 52.puppet自动化运维工具
  11. 亲测沉梦Free免费易支付系统源码支持码支付
  12. 研大考研:只办最好的集训营
  13. iOS/Android 微信及浏览器中唤起本地APP
  14. 重学TCP协议(8) TCP的11种状态
  15. 2019-2020-1 1823《程序设计与数据结构》每周成绩
  16. hashcat跑握手包笔记
  17. klee-2.1安装(按照这个博客,闭着眼都能成功!)
  18. Linux系统中sda是什么意思?
  19. vue.js鼠标移入变换样式,鼠标移出去除样式(active)实现方法
  20. LeetCode 365. 水壶问题

热门文章

  1. ios android 性能测试工具,史上最全的 iOS 各种测试工具集锦
  2. 前端工程化——Livereload和HMR、本地开发服务器
  3. android singleInstance 和 singleTask 的区别
  4. C语言 用矩形法计算定积分∫(0—1)sinxdx、∫(-1—1)cosxdx、∫(0—2)e^xdx
  5. java代码性能优化实例
  6. APP开发接口分类介绍
  7. 【Java基础】建立Java面向对象编程OOP模型
  8. GRADS软件初步学习
  9. 程序员的macOS系列:精选Mac App
  10. PLSQL使用教程(一):同步表结构和表数据