### 读取hive的表结构,生成带comment的视图建表语句
# 读取配置文件中的表并进行遍历
grep -v '^#' tablesFile|while read tableName
do
status=
viewName=$(echo ${tableName}|sed "s/^dwd_/dwd_cms_out_l_/i"|sed "s/^dws_/dws_cms_out_l_/i"|sed "s/^ads_/ads_cms_out_l_/i")
echo "-- tableName: ${tableName} | viewName: ${viewName}"
# 查询HIVE中的表结构
hive -e "desc db_name.${tableName}" > desc_${tableName}
# 将\t处理成|
perl -i -npe 's/\x09/|/g' desc_${tableName}
# 判断是否分区表
if [ $(grep '^| | ' desc_${tableName}|wc -l) -gt ]
then
# 是分区表的处理方法
start_line=
end_line=$((`grep -n "^| | " desc_${tableName}|awk -F':' '{print $1}'|head -` - ))
sed -n "${start_line},${end_line}p" desc_${tableName} > columns_${tableName}
else
# 不是分区表的处理方法
grep -v -E "col_name|WARN" desc_${tableName} > columns_${tableName}
fi echo "create view ${viewName} ("
grep -v -E "col_name|WARN" columns_${tableName}|awk '{print $1,"comment '\''"$3"'\''"}'|sed 's/|//g'|while read line
do
if [ ${status} -ne ]
then
echo -n " ,"
echo "${line}"
else
echo " ${line}"
fi
status=$((${status}+))
done
echo ")"
echo "as"
echo "select * from ${tableName}"
echo ";"
done

读取hive的表结构,生成带comment的视图建表语句的更多相关文章

  1. 如何将excel 数据库表结构生成powerdesign物理模型

    Option Explicit Dim mdl ' the current model Set mdl = ActiveModel If (mdl Is Nothing) Then MsgBox &q ...

  2. (转载)根据数据字典表定义的表结构,生成创建表的SQL语句

    <来源网址:http://www.delphifans.com/infoview/Article_221.html>根据数据字典表定义的表结构,生成创建表的SQL语句 //1.  类名:T ...

  3. sqlserver 复制表结构(可以含有数据 或 只要表结构)

    sqlserver 复制表结构(可以含有数据 或 只要表结构) SELECT * INTO bb FROM aa(NOLOCK) WHERE 1=0

  4. MySQL复制表结构和内容到另一张表(转)

    MySQL不要看它小,一个开源的产物,要学习它的东西真的很多.而它的一切是SQL Server无法比拟的. 复制表结构及数据到新表 create table 新表 select * from 旧表 只 ...

  5. Intellij IDEA 通过数据库表逆向生成带注释的实体类文件超级详细步骤,附详细解决方案

    参考:https://blog.csdn.net/qq_34371461/article/details/80571281  https://blog.csdn.net/mqchenrong/arti ...

  6. [04] 利用注解生成实体类对应的建表sql语句

    1.实现功能 我们已经对注解有了基本的认识,知道了如何自定义注解,如何使用和最基本的处理注解. 本篇主要介绍,如何使用运行时级别的注解,配合反射来自动生成建表的sql语句.如下例: 我们有实体类Stu ...

  7. 复制表结构和内容到另一张表中的SQL语句

    1.复制表结构及数据到新表 CREATE TABLE 新表 SELECT * FROM 旧表 2.只复制表结构到新表 CREATE TABLE 新表 SELECT * FROM 旧表 WHERE 1= ...

  8. SQL Server修改表结构后批量更新所有视图

    最近修改了数据库表结构,数据同步的时候出了问题,发现很多数据明明已经修改,但是通过视图筛选出来的还是原来的数据,所以怀疑应该是视图缓存了数据,在园子里找到下面的博文,在这里做个记录备忘. 原文链接:h ...

  9. 获取一个表中的字段总数(mysql) Navicat如何导出Excel格式表结构 获取某个库中的一个表中的所有字段和数据类型

    如何获取一个表中的字段总数 1.function show columns from 表明: 结果 : 2.functiuon select count(*) from INFORMATION_SCH ...

随机推荐

  1. 页面PC端 / 移动端整屏纵向翻页,点击/触摸滑动效果功能代码非插件

    页面翻页,滑动功能示范代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset=& ...

  2. JSP-request(httpServletRequest)

    HttpServletRequest 1 HttpServletRequest概述 2 request运行流程 3 通过抓包工具抓的http请求 4 请求行信息的相关方法 //1.获得请求方式 Str ...

  3. Js 克隆

    1.浅表克隆 调用concate() 或者slice() 方法,可以创建数组的浅表副本,在浅表副本中,如果原始数组的元素是复杂数据类型,则元素值指向对象的引用而非对象本身, 与原始数组一样,浅表副本的 ...

  4. Laravel 安装mysql、表增加模拟数据、生成控制器

    参考中文网教程: 安装mysql.表增加模拟数据 http://www.golaravel.com/post/2016-ban-laravel-xi-lie-ru-men-jiao-cheng-yi/ ...

  5. golang函数二

  6. 制作ACK集群自定义节点镜像的正确姿势

    随着云原生时代的到来,用户应用.业务上云的需求也越来越多,不同的业务场景对容器平台的需求也不尽相同,其中一个非常重要的需求就是使用自定义镜像创建ACK集群. ACK支持用户使用自定义镜像创建Kuber ...

  7. QT获取主机名称

    //获取主机名 QString localHost = QHostInfo::localHostName();

  8. day4-转自金角大王

    Python之路,Day4   本节大纲 迭代器&生成器 装饰器  基本装饰器 多参数装饰器 递归 算法基础:二分查找.二维数组转换 正则表达式 常用模块学习 作业:计算器开发 实现加减乘除及 ...

  9. JS 寄生 继承

    寄生构造函数 寄生构造函数的用途目的:给String内置对象功能扩充 稳妥的构造函数 继承 对象冒充继承 一般继承 组合继承 原型链继承:借助于中转函数和已有对象 寄生式继承:把原型式+工厂式结合而来 ...

  10. python 模块的作用