当前位置:首页 >百科 >数据仓库工具方法 但是仓库他们有规律

数据仓库工具方法 但是仓库他们有规律

2024-05-18 19:57:15 [百科] 来源:避面尹邢网

数据仓库工具方法-维度表同步 MySQL表结构同步到Hive

作者:程序人生码出精彩 数据库 MySQL 数据仓库 mysql 中的数据数据类型与Hive 是有区别的,但是仓库他们有规律, 有规律就好办了,工具 我们可以通过写程序来批量处理,数据来提高我们的仓库工作效率。

 mysql 中的工具数据类型与Hive 是有区别的,但是数据他们有规律, 有规律就好办了,仓库 我们可以通过写程序来批量处理,工具来提高我们的数据工作效率。



来我们开干。仓库

数据仓库工具方法 但是仓库他们有规律

MySQL 中的工具表结构都是存在一个固定的数据库中,它的数据名字是:information_schema

数据仓库工具方法 但是仓库他们有规律

字段是存储在固定的表中:COLUMNS

数据仓库工具方法 但是仓库他们有规律

我们先直接上脚本

  1. SELECT 
  2.     CONCAT( 
  3.         'create table ', 
  4.         TABLE_NAME, 
  5.         '(', 
  6.         substring( column_info, 1, length( column_info ) - 1 ), 
  7.         ')', 
  8.         ' comment ', 
  9.         '"', 
  10.         TABLE_COMMENT, 
  11.         '"', 
  12.         ';'  
  13. )  
  14. FROM 
  15.     ( 
  16.     SELECT 
  17.         TABLE_NAME, 
  18.         TABLE_COMMENT, 
  19.         group_concat( CONCAT( COLUMN_NAME, ' ', DATA_TYPE, ' comment ', '"', COLUMN_COMMENT, '"' ) ) AS column_info  
  20.     FROM 
  21.         ( 
  22.         SELECT 
  23.             t1.TABLE_NAME, 
  24.         CASE 
  25.                  
  26.                 WHEN t2.TABLE_COMMENT = NULL THEN 
  27.                 t1.TABLE_NAME ELSE t2.TABLE_COMMENT  
  28.             END AS TABLE_COMMENT, 
  29.             COLUMN_NAME, 
  30.         CASE 
  31.                  
  32.                 WHEN DATA_TYPE = 'varchar' THEN 
  33.                 'string'  
  34.                 WHEN DATA_TYPE = 'int' THEN 
  35.                 'int'  
  36.                 WHEN DATA_TYPE = 'tinyint' THEN 
  37.                 'tinyint'  
  38.                 WHEN DATA_TYPE = 'decimal' THEN 
  39.                 'double'  
  40.                 WHEN DATA_TYPE = 'datetime' THEN 
  41.                 'string'  
  42.                 WHEN DATA_TYPE = 'timestamp' THEN 
  43.                 'string'  
  44.                 WHEN DATA_TYPE = 'float' THEN 
  45.                 'double'  
  46.                 WHEN DATA_TYPE = 'double' THEN 
  47.                 'double'  
  48.                 WHEN DATA_TYPE = 'bigint' THEN 
  49.                 'bigint'  
  50.             END AS DATA_TYPE, 
  51.         CASE 
  52.                  
  53.                 WHEN COLUMN_COMMENT = NULL THEN 
  54.                 COLUMN_NAME ELSE COLUMN_COMMENT  
  55.             END AS COLUMN_COMMENT  
  56.         FROM 
  57.             COLUMNS t1 
  58.             JOIN TABLES t2 ON t1.TABLE_NAME = t2.TABLE_NAME and   t1.TABLE_SCHEMA = t2.TABLE_SCHEMA  
  59.         WHERE 
  60.             t1.TABLE_NAME = 'book_module_stencil'  and t1.TABLE_SCHEMA='yyb_test' 
  61.              
  62.         ) t3  
  63.     GROUP BY 
  64.         TABLE_NAME, 
  65.     TABLE_COMMENT  
  66.     ) t4; 

 book_module_stencil 替换成你的表名称。

yyb_test 替换成你的仓库数据库名称。

执行结果是工具这样的


格式化后是这样的

  1. CREATE TABLE book_module_stencil ( 
  2.     id string COMMENT "id", 
  3.     NAME string COMMENT "版块名称", 
  4.     type string COMMENT "图书类型(0:教材;1:教辅;2课外)", 
  5.     stu_icon string COMMENT "学生端配置图标的地址", 
  6.     tea_icon string COMMENT "老师端配置图标的地址", 
  7.     sort INT COMMENT "排序", 
  8.     remarks string COMMENT "备注信息", 
  9.     create_by string COMMENT "创建者", 
  10.     create_date string COMMENT "创建时间", 
  11.     update_by string COMMENT "更新者", 
  12.     update_date string COMMENT "更新时间", 
  13. CODE string COMMENT "编码(模块名称首字母)"  
  14. ) COMMENT "模块模版表"; 

 今天的分享就到这里。

 

责任编辑:姜华 来源: 今日头条 MySQL数据库Hive

(责任编辑:焦点)

    推荐文章
    热点阅读