由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Database版 - [求助] 问一个Kettle从DB2抽取到SQL2012的问题
相关主题
有人抽取过AS/400(iSeries)的数据么?Help! Diff between Teradata SQL and Oracle SQL.
Online Session(Nov. 5th): Notes and Takes on SQL Pass Summ同事被FIRE掉了
please help with this left join questionsize重要么?
mySQL select 的速度与table的长度有关吗?sql server问题, 不同数据库之间表拷贝,大数据量
新手求助: 学那个DATABASE软件好呢?统计一下,有多少人做过或正在做db2呢?
Oracle 看来还有很长的路DBA 工作機會
新人DBA报道,DB2请教CINAOUG 2011年11月数据库讲座
How popular is Sybase these days?谁来说说怎么自学DB2呢?
相关话题的讨论汇总
话题: maxdate话题: sql2012话题: db2话题: kettle话题: day
进入Database版参与讨论
1 (共1页)
k*z
发帖数: 4704
1
我的DB2源表是一个逻辑表,就是已经算好了很多东西给前台用的一个逻辑表。例如时
间已经被拆分成了 Year, Month, Day,
这个源表是只增加,不更新,不删除的,我只要担心怎么插入就可以了,不用考虑更新
和删除。
现在我要把这个表每天进行一次同步,拷贝到SQL2012里面去做Report.
我目前的思路是:
先把目标表的最大日期取出来, maxdate。
Table Input:
select max(year*10000+month*100+day) as maxdate
from target_table
如果maxdate是空值,那么进行全表拷贝。(基本就是第一次更新有用,其他时候表都
有最大值的)
如果maxdate不是空值,那么把这个最大日期的天数的数据在目标表删除 (因为有可能
上次更新的时候这个最大的日期的数据还不完全)
从源表把需要更新的数据读取出来,这里有两个思路
1. 取所有大于maxdate的数据,然后更新 (有可能导入明天和后天的值)
1. 只取 maxdate 和 today()的值。 (当天的数据有可能是全的,有可能是不全的)
把这个取出来的数据插入到目标表。
最后考虑在目标表增加一列,YearMonthDate=Year*1000+month*100+day, 这样就不用
每次都计算了。
因为我的权限有限,而且也不是DBA, 不能对源表进行任何设置和更改,不能用触发器
或者日志的方式更新,目前只想到了这个方法。
求大牛指点一下,怎么实现,怎么优化。
k*z
发帖数: 4704
2
例如:
下面两个用哪个?
SELECT *
FROM SFPASD
WHERE (YEARAD*10000+MONTAD*100+"DAY#AD") > ?
SELECT *
FROM SFPASD
WHERE YEARAD> ? AND MONTAD > ? AND "DAY#AD" > ?
1 (共1页)
进入Database版参与讨论
相关主题
谁来说说怎么自学DB2呢?新手求助: 学那个DATABASE软件好呢?
新手请教:Java or .NET, DBA? (转载)Oracle 看来还有很长的路
这有没sybase or DB2 UDB DBA新人DBA报道,DB2请教
发不和谐文章--Oracle is #1 in the RDBMS Sector for 2011 (ZZ)How popular is Sybase these days?
有人抽取过AS/400(iSeries)的数据么?Help! Diff between Teradata SQL and Oracle SQL.
Online Session(Nov. 5th): Notes and Takes on SQL Pass Summ同事被FIRE掉了
please help with this left join questionsize重要么?
mySQL select 的速度与table的长度有关吗?sql server问题, 不同数据库之间表拷贝,大数据量
相关话题的讨论汇总
话题: maxdate话题: sql2012话题: db2话题: kettle话题: day