Oracle create table 语句转换为 HIVE create table语句

news/2024/9/21 7:48:32/

Oracle create table 语句转换为 HIVE create table语句 以及 insert 和select 语句

SELECT
    'CREATE EXTERNAL TABLE IF NOT EXISTS DWD_FACT_SUPPLYCHAIN_WMS.DWD_FACT_SUPPLYCHAIN_WMS_' || table_name || chr( 13 ) || '(' || RTRIM(
        XMLAGG( XMLPARSE ( CONTENT ( column_name || chr( 9 ) || DATA_TYPE || chr( 10 ) || ',' ) WELLFORMED ) ORDER BY column_id ).GETCLOBVAL ( ),
        ',' 
    ) || ')' || 'COMMENT ' || '"' || tab_comments || '"' || chr( 10 ) || 'ROW FORMAT DELIMITED' || chr( 10 ) || 'FIELDS TERMINATED BY ''#''' || chr( 10 ) || 'STORED AS TEXTFILE;' || chr( 10 ) || chr( 10 ) ||'INSERT OVERWRITE table DWD_FACT_SUPPLYCHAIN_WMS.DWD_FACT_SUPPLYCHAIN_WMS_' || table_name || chr( 10 ) || 'select * from ods_ny_supplychain_wms.' || table_name AS sq,
table_name 
FROM
    (
    SELECT
        col.table_name,
        col.COLUMN_NAME,
        decode( col.DATA_TYPE, 'NUMBER', 'DOUBLE', 'TIMESTAMP(6)', 'TIMESTAMP' ) ||
    CASE
            
            WHEN DATA_TYPE = 'NUMBER' THEN
--             '(' || nvl( to_char( DATA_PRECISION ), 22 ) || ',' || to_char( NVL( COL.data_scale, 0 ) ) || ')' 
            ''
            WHEN LOWER( col.COLUMN_NAME ) IN ( 'inserttime', 'updatetime','createtime' ) THEN
            ' TIMESTAMP' 
            WHEN data_type IN ( 'DATE', 'TIMESTAMP(6)' ) THEN
            ' TIMESTAMP' ELSE ' STRING' 
        END || ' COMMENT ' || '''' || cms.COMMENTS || '''' || CHR( 13 ) AS DATA_TYPE,
    col.COLUMN_ID,
    tms.COMMENTS AS tab_comments 
FROM
    all_tab_columns col
    JOIN all_col_comments cms ON col.TABLE_NAME = cms.table_name 
    AND col.COLUMN_NAME = cms.COLUMN_NAME 
    AND col.OWNER = cms.OWNER
    JOIN all_tab_comments tms ON col.TABLE_NAME = tms.TABLE_NAME 
    AND col.OWNER = tms.OWNER 
WHERE
    COL.TABLE_NAME LIKE upper( 'TB_BASIC_SAP_COMPANY' ) 
    AND regexp_substr( tms.table_name, '[0-9]+' ) IS NULL 
    AND col.OWNER = 'WMSUSER
    ) 
GROUP BY     
    table_name,
    tab_comments 
ORDER BY
    table_name;

注意:标红的 1. 表名

                    2.表空间

转换结果: 

CREATE EXTERNAL TABLE IF NOT EXISTS DWD_FACT_SUPPLYCHAIN_WMS.DWD_FACT_SUPPLYCHAIN_WMS_TB_BASIC_SAP_COMPANY (ID    DOUBLE COMMENT 'id'
,CODE     STRING COMMENT '公司代码'
,NAME     STRING COMMENT '公司名称'
,CITY     STRING COMMENT '城市'
,CURRENCY     STRING COMMENT '货币'
,CREATER    DOUBLE COMMENT '创建人id'
,CREATETIME     TIMESTAMP COMMENT '创建时间'
,EDITOR    DOUBLE COMMENT '最后修改人id'
,EDITTIME     STRING COMMENT '最后修改时间'
,ISDEL    DOUBLE COMMENT '删除标记,0有效,1删除'
,ISTRUE    DOUBLE COMMENT '是否有效,0有效,1失效'
,SHORTNAME     STRING COMMENT '简称'
)COMMENT "SAP公司信息"
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '#'
STORED AS TEXTFILE;

INSERT OVERWRITE table DWD_FACT_SUPPLYCHAIN_WMS.DWD_FACT_SUPPLYCHAIN_WMS_TB_BASIC_SAP_COMPANY
select * from ods_ny_supplychain_wms.TB_BASIC_SAP_COMPANY

注意:数仓规范的命名

          ods_XXX

          dwd_XXX

          dws_XXX

        Sqoop脚本的命名:Sqoop_ods_XXX

       事实表: dwd_fact_XXX

       维度表: pub_dim_XXX


http://www.ppmy.cn/news/1461955.html

相关文章

Android GPU渲染SurfaceFlinger合成RenderThread的dequeueBuffer/queueBuffer与fence机制(2)

Android GPU渲染SurfaceFlinger合成RenderThread的dequeueBuffer/queueBuffer与fence机制(2) 计算fps帧率 用 adb shell dumpsys SurfaceFlinger --list 查询当前的SurfaceView,然后有好多行,再把要查询的行内容完整的传给 ad…

万字长文破解 AI 图片生成算法-Stable diffusion (第一篇)

想象一下:你闭上眼睛,脑海中构思一个场景,用简短的语言描述出来,然后“啪”的一声,一张栩栩如生的图片就出现在你眼前。这不再是科幻小说里才有的情节,而是Stable Diffusion——一种前沿的AI图片生成算法—…

【C++】:string类的基本使用

目录 引言一,string类对象的常见构造二,string类对象的容量操作三,string类对象的访问及遍历操作四,string类对象的修改操作五,string类非成员函数六,整形与字符串的转换 引言 string 就是我们常说的"…

【C语言】打印图案问题(下卷)

前言 哎呀,看来上卷的打印金字塔和菱形都满足不了你啊,那我只好再拿出两题考考你了。相信在看完这两题的解说后,你对打印图案的理解一定能更上一层楼。 话不多说,继续闯关吧! 崭露头角:空心正方形图案 提…

上班族兼职新篇章:10大实战攻略,轻松年赚1-20万

对于众多上班族而言,如何在工作之余赚取额外收入,开启自己的第一份副业,已成为许多人心中的疑问。每个人的才能和兴趣点不尽相同,但都有机会找到适合自己的兼职方式。接下来,就让我们一起探索这10大实战攻略&#xff0…

动态顺序表实现

目录 1. 顺序表的概念 2. 实现的功能 3. 顺序表的定义 4.顺序表的实现 4.1 seqlist.c 4.2 seqlist.h 4.3 test.c 5. 顺序表的优缺点 5.1优点 5.2缺点 1. 顺序表的概念 用一段物理地址连续的内存依次存储数据元素的线性结构 本质就是数组,在数组基础上要求…

音视频--AAC编码解析和示例

目录 1:AAC编码介绍 2:AAC格式介绍 3:AAC -ADTS帧组成 4:AAC-ADTS:(adts_fixed_header)格式介绍 5:AAC-ADTS:(adts_variable_header)格式介绍…

Flutter 中的 GridView 小部件:全面指南

Flutter 中的 GridView 小部件:全面指南 在 Flutter 中,GridView 是一个展示数据网格的滚动小部件,类似于表格视图,其中子控件被组织成行和列。它非常适合于展示图像网格、小部件集合等。GridView 同样支持懒加载,这意…