关于工作中的升级包升级问题

=======再一次工作中领导要求我先对表进行修改字段,两个表分别增加1、2个字段,并把字段类型添加上,做完这些然后让我做升级包任务,在这里为自己写一下积累一下经验===========

1、修改字段后,然后去datastage中把数据进行更新,但是我在运行ds时显示路径不对然后我就去xshell中把需要的文件导入到我自己的文件夹下,其中这个是跨数据库传输的,把路径弄好之后,需要把ds跑完

2、具体步骤

①、添加字段:alter table <tablename> add column <column_name>  <col_type> --添加

②、修改字段类型;alter table <tablename>  alter column <columnname>  set  data  type <type_name>

③、在ds中进行跑入数据

===========================================================

今天20210811,进行第二次升级,这一次是创建拉链表导入数据

具体步骤:

1、首先需要创建表,通过语句CREATE TABLE TABLE_NAME(),来进行创建,注意如果有主键要在表中加入主键,这个步骤需要取看一下原表,通过原表把创表语句复制进去,要注意添加START_DATE    END_DATE,注意表结构

2、下一步就是往表中导数据,其中我们使用的是DS,具体做法是:

①、打开DS,选取表所在的数据库(会在登录页面的时候进行选取),然后按照拉链表的格式,先选取一个原表,然后后面跟着一个transform,后面再跟上一个JOIN,然后在JOIN(join这里需要进行原表与拉链表的比较,所以拉链表需要在join的一边但不是下边,就像一个T字路口),在后面是一个过滤,通过过滤掉一些数据后把符合条件的数据导入到最后的表中

②、说一下具体细节

一、在原表中,首先路径时需要注意的,他的路径一般连接的是208的数据库,所以我要把数据导入到自己的文件夹名下,通过pwd命令获得路径作为提供原表数据的路径

二、 还有它的时间里面有一些动态参数,例如#$DBNAME#、#$dbuser#、#$dbpwd#,这些都可以在DS中选取

三、还有里面的SQL,需要注意会把第一个字段改成别名+1的形式,为了就是方便后面过滤的时候方便比较,其余的要注意后面加上的where条件来保证END_DATE这个字段要和#$ENDDATE#一致

③、在transform里要进行比较,左边的数据为原表的,而右边的数据是属于join里的,也就是拉链表中的,在里面要注意最后的START_DATE 对应的时候左边要写SOFTDATE,  而END_DATE要写

#$ENDDATE#

④、join里上边可以选取left、right,表数据添加完开始时间和结束时间,删除etl_date,然后进行比较

⑤、过滤这里要注意,条件哪里要写(column1) is null or (column1) = '',其中column代表了需要的字段

⑥、最后这里印象较深的是需要封链,在after SQL哪里需要添加SQL语句

3、导完数据了,需要验证数据对不对

这时候可以改变表中的一个字段值,确保唯一性,通常用主键作为条件,修改完后取ds重新跑数据

,然后查询符合条件的数据,看一下是不是拉链完成

4、升级包还需要用到shell脚本等,根据shell来进行添加数据和修改数据,最后把它打包然后传到207数据库中进行运行做检查,有错就改

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值