1¡¢Ó¦Óó¡¾°
ÕâÀï¼òµ¥¸ÅÀ¨Ò»Ï¼¸ÖÖ¾ßÌåµÄÓ¦Óó¡¾°£¬°´ÍøÂç»·¾³»®·ÖÖ÷Òª°üÀ¨£º
±íÊÓͼģʽ£ºÕâÖÖÇé¿öÎÒÃǾ³£Óöµ½£¬¾ÍÊÇÔÚÍ¬Ò»ÍøÂç»·¾³Ï£¬ÎÒÃǶԸ÷ÖÖÊý¾ÝÔ´µÄ±íÊý¾Ý½øÐгéÈ¡¡¢¹ýÂË¡¢ÇåÏ´µÈ£¬ÀýÈçÀúÊ·Êý¾Ýͬ²½¡¢Ò칹ϵͳÊý¾Ý½»»¥¡¢Êý¾Ý¶Ô³Æ·¢²¼»ò±¸·ÝµÈ¶¼¹éÊôÓÚÕâ¸öģʽ£»´«Í³µÄʵÏÖ·½Ê½Ò»°ã¶¼Òª½øÐÐÑз¢£¨Ò»Ð¡²¿·ÖÀýÈçÁ½¸öÏàͬ±í½á¹¹µÄ±íÖ®¼äµÄÊý¾Ýͬ²½£¬Èç¹ûsqlserverÊý¾Ý¿â¿ÉÒÔͨ¹ý·¢²¼/¶©ÔÄʵÏÖ£©£¬Éæ¼°µ½Ò»Ð©¸´ÔÓµÄһЩҵÎñÂß¼Èç¹ûÎÒÃÇÑз¢³öÀ´»¹ÈÝÒ׳ö¸÷ÖÖbug£»
ǰÖûúģʽ£ºÕâÊÇÒ»ÖÖµäÐ͵ÄÊý¾Ý½»»»Ó¦Óó¡¾°£¬Êý¾Ý½»»»µÄË«·½AºÍBÍøÂ粻ͨ£¬µ«ÊÇAºÍB¶¼¿ÉÒÔºÍǰÖûúCÁ¬½Ó£¬Ò»°ãµÄÇé¿öÊÇË«·½Ô¼¶¨ºÃǰÖûúµÄÊý¾Ý½á¹¹£¬Õâ¸ö½á¹¹¸úAºÍBµÄÊý¾Ý½á¹¹»ù±¾ÉÏÊDz»Ò»Öµģ¬ÕâÑùÎÒÃǾÍÐèÒª°ÑÓ¦ÓÃÉϵÄÊý¾Ý°´ÕÕÊý¾Ý±ê×¼ÍÆË͵½Ç°ÖûúÉÏ£¬Õâ¸öÑз¢¹¤×÷Á¿»¹ÊDZȽϴóµÄ£»
Îļþģʽ: Êý¾Ý½»»¥µÄË«·½AºÍBÊÇÍêÈ«µÄÎïÀí¸ôÀ룬ÕâÑù¾ÍÖ»ÄÜͨ¹ýÒÔÎļþµÄ·½Ê½À´½øÐÐÊý¾Ý½»»¥ÁË£¬ÀýÈçXML¸ñʽ£¬ÔÚÓ¦ÓÃAÖÐÎÒÃÇ¿ª·¢Ò»¸ö½Ó¿ÚÓÃÀ´Éú³É±ê×¼¸ñʽµÄXML£¬È»ºóÓÃÓÅÅÌ»òÕß±ðµÄ½éÖÊÔÚijһʱ¼ä°ÑXMLÊý¾Ý¿½±´Ö®ºó£¬È»ºó½ÓÈëµ½Ó¦ÓÃBÉÏ£¬Ó¦ÓÃBÉÏÔÚ°´ÕÕ±ê×¼½Ó¿Ú½âÎöÏàÓ¦µÄÎļþ°ÑÊý¾Ý½ÓÊÕ¹ýÀ´£»
×ÛÉÏ3ÖÖģʽÈç¹ûÎÒÃǶ¼Óô«Í³µÄģʽÎÞÒɹ¤×÷Á¿ÊǾ޴óµÄ£¬ÄÇôÔõô×ö²ÅÄܸü¸ßЧ¸ü½Úʡʱ¼äÓÖ²»ÈÝÒ׳ö´íÄØ£¿´ð°¸ÊÇÎÒÃÇ¿ÉÒÔÓÃÒ»ÏÂKettle-_-£¡
2¡¢DEMOʵս
2¡¢1 ʵÀý1£ºÊý¾Ý¿âTestAÖеÄUserA±íµ½Êý¾Ý¿âTestBµÄUserB±í
1£©Îª·½±ãÑÝʾ£¬ÎÒÕâ±ß°ÑSql½Å±¾Ìù³öÀ´£¬´ó¼ÒÖ±½Ó¸´ÖÆÔÚsqlserverÖÐÔËÐм´¿É,sql½Å±¾ÈçÏ£º
¼òµ¥±íÖ®¼ä½»»»
use master
IF EXISTS(SELECT 1 FROM sysdatabases WHERE NAME=N'TestA')
BEGIN
DROP DATABASE TestA --Èç¹ûÊý¾Ý¿â´æÔÚÏÈɾµôÊý¾Ý¿â
END
GO
CREATE DATABASE TestA
ON
PRIMARY --´´½¨Ö÷Êý¾Ý¿âÎļþ
(
NAME='TestA',
FILENAME='E:\ETL\DB\TestA.dbf',
SIZE=5MB,
MaxSize=20MB,
FileGrowth=1MB
)
go
use TestA
-- ½¨Á¢Ò»¸ö²âÊÔµÄÓû§±í
create table usersA
(
id int not null,
userid varchar(50) not null,
username varchar(200) null
)
go
-- ²åÈë3Ìõ¼Ç¼
insert into usersA values(1,'lisi','ÀîËÄ');
insert into usersA values(2,'zhangsan','ÕÅÈý');
insert into usersA values(3,'lisi','ÀîËÄ');
go
use master
IF EXISTS(SELECT 1 FROM sysdatabases WHERE NAME=N'TestA')
BEGIN
DROP DATABASE TestA --Èç¹ûÊý¾Ý¿â´æÔÚÏÈɾµôÊý¾Ý¿â
END
GO
CREATE DATABASE TestB
ON
PRIMARY --´´½¨Ö÷Êý¾Ý¿âÎļþ
(
NAME='TestB',
FILENAME='E:\ETL\DB\TestB.dbf',
SIZE=5MB,
MaxSize=20MB,
FileGrowth=1MB
)
go
use TestB
-- ½¨Á¢Ò»¸ö²âÊÔµÄÓû§±í
create table usersB
(
id int not null,
userid varchar(50) not null,
username varchar(200) null
)
go
|
2£©KettleʵÏÖ·½Ê½
¹¦ÄܼòÊö£ºÊý¾Ý¿âTestAÖеÄUserA±íµ½Êý¾Ý¿âTestBµÄUserB±í£»
ʵÏÖÁ÷³Ì£º½¨Á¢Ò»¸öת»»ºÍÒ»¸ö×÷ÒµJob£»
A:½¨Á¢Ò»¸öת»»£º´ò¿ªKettle.exe£¬Ñ¡ÔñûÓÐ×ÊÔ´¿â£¬½øÈëÖ÷½çÃæ£¬Ð½¨Ò»¸öת»»£¬×ª»»µÄºó׺ÃûΪktr£¬×ª»»½¨Á¢µÄ²½ÖèÈçÏ£º
²½Öè1£º´´½¨DBÁ¬½Ó£¬Ñ¡Ôñн¨DBÁ¬½Ó£¬ÈçÏÂͼ£¬ÎÒÃÇÊäÈëÏàÓ¦µÄSqlserverÅäÖÃÐÅÏ¢Ö®ºóµã»÷Test°´Å¥²âÊÔÊÇ·ñÅäÖÃÕýÈ·£¡

ÎÒÃÇÐèÒª½¨Á¢Á½¸öDBÁ¬½Ó£¬·Ö±ðΪTestAºÍTestB£»
²½Öè2£º½¨Á¢²½ÖèºÍ²½Öè¹ØÏµ£¬µã»÷ºËÐĶÔÏó£¬ÎÒÃÇ´Ó²½ÖèÊ÷ÖÐÑ¡Ôñ¡¾±íÊäÈë¡¿£¬ÈçÏÂͼ£¬ÕâÑùÍÏ×§Ò»¸ö±íÊäÈëÖ®ºó£¬ÎÒÃÇË«»÷±íÊäÈëÖ®ºó£¬ÎÒÃÇ×Ô¼º¿ÉÒÔËæÒâдһ¸ösqlÓï¾ä£¬Õâ¸öÓï¾ä±íʾ¿ÉÒÔÔÚÕâ¸ö¿âÖÐËæÒâ×éºÏ£¬Ö»ÒªsqlÓï¾äûÓдíÎó¼´¿É£¬ÎÒÕâÀïÖ»ÊÇ×î¼òµ¥µÄ°ÑTestAÖеÄËùÓÐÊý¾Ý²é³öÀ´£¬Óï¾äΪselect
* from usersA¡£

½ÓÏÂÀ´ÎÒÃÇ´´½¨ÁíÍâÒ»¸ö²½Ö衾²åÈë/ ¸üС¿£¬È»ºóÔÚ¡¾±íÊäÈë¡¿ÉÏͬʱ°´×¡shift¼üºÍÊó±ê×ó¼ü»¬Ïò¡¾²åÈë/
¸üС¿£¬ÕâÑù½¨Á¢Á½¸ö²½ÖèÖ®¼äµÄÁ¬½Ó£¬¡¾²åÈë/ ¸üС¿Ö´ÐеÄÂß¼ÊÇÈç¹ûUserA±íÖеļǼÔÚUserBÖв»´æÔÚÄÇô¾Í²åÈ룬Èç¹û´æÔھ͸üУ¬ÈçÏÂͼ£¬ÔÚ²åÈë¸üÐÂÖÐÎÒÃÇ¿ÉÒÔ×öһЩ¹Ø¼üÌõ¼þºÍ×Ö¶ÎÓ³É䣬ÕâÀïÎÒÃÇÊÇ×î¼òµ¥µÄ£¡µã»÷±£´æ£¬°ÑÎÒÃǽ¨Á¢µÄת»»±£´æÒ»Ï¡£

½¨Á¢ºÃת»»Ö®ºó£¬ÎÒÃÇ¿ÉÒÔÖ±½ÓÔËÐÐÕâ¸öת»»£¬¼ì²éÒ»ÏÂÊÇ·ñÓÐ´í£¬Èçͼ£¬ÓдíÎó¶¼»áÔÚÏÂÃæµÄ¿ØÖÆÌ¨ÉÏÊä³ö¡£

B:Èç¹ûÎÒÃÇÐèÒªÈÃÕâ¸öת»»¶¨Ê±Ö´ÐÐÔõô°ìÄØ£¬ÄÇôÎÒÃÇÐèÒª½¨Á¢Ò»¸ö×÷Òµjob£¬¼ûÏÂͼ£¬ÔÚ¼òµ¥±íͬ²½Õâ¸öת»»ÖУ¬ÎÒÃǰÑÔÚA²½ÖèÖн¨Á¢µÄktlÅäÖÃÉÏ£¬×¢Òâ·¾¶µÄÕýÈ·ÐÔ£»

ÕâÑùÎÒÃÇÔÚ¡¾Start¡¿²½ÖèÉÏÃæË«»÷£¬Èçͼ£º

ÕâÑùÕâ¸ö×÷Òµ¾ÍÖÆ¶¨ºÃÁË£¬µã»÷±£´æÖ®ºó£¬ÎÒÃǾͿÉÒÔÔÚͼÐλ¯½çÃæÉϵã»÷¿ªÊ¼Ö´ÐÐÁË£¡
2¡¢2 ʵÀý2£ºÈ«Ãæ½ø½×µÄÒ»¸öÉÔ΢¸´ÔÓµÄÀý×Ó
¸ù¾Ý¿Í»§£¬ÕÊ»§£¬½»Ò×±íÖеÄÊý¾Ý£¬Éú³É¶ÔÓ¦µÄÊý¾ÝÎļþ£¬½«Êý¾ÝÎļþ¿ÉÒÔµ¼Èëµ½¶ÔÓ¦±íÖУ¬²¢ÇÒ¿ÉÒÔÓÃjobÀ´µ÷ÓÃÕû¸öÁ÷³Ì¡£
Ä¿±ê£º
1)£¬Ìá½»¶ÔÓ¦µÄKettleÎļþ
2)£¬KettleÁ÷³Ì¿ÉÒÔÕýÈ·Ö´ÐУ¬²»±¨´í
3)£¬¶ÔÓ¦µÄÊý¾ÝÎļþÉú³É²¢¸ñʽÎÞÎ󣬶ÔÓ¦±íÖÐÓÐÊý¾Ý²¢¸ñʽÎÞÎó
˵Ã÷£º
Ô´±í£ºÊý¾Ý¿âetltestÖдæÔÚ3ÕÅ±í£º

Ä¿±ê±í£ºetltestÖÐÒ»Õűí

Kettle¾ßÌå½â¾ö·½Ê½£¬²½Öè±È½Ï·±Ëö£¬´ó¼Ò¿ÉÒÔÖ±½Óµ½ÏÂÔØÖÐÏÂÔØDemoÊý¾Ý¿âÎļþºÍktr¡¢kjbÀ´ÊµÕ½²âÊÔ£¬ÕâÑùÊÇ×îºÃµÄ£¬ÏÂÃæµÄ²Ù×÷½ö¹©²Î¿¼£¬×ª»»Ô¤ÀÀͼÈçÏ£º

²Ù×÷²½Ö裺
ÔÚEtltestTransÒ³ÃæÏ£¬µã»÷×ó²àµÄ¡¾Core Objects¡¿£¬µã»÷¡¾Input¡¿£¬Ñ¡ÖС¾±íÊäÈë¡¿£¬Í϶¯µ½Ö÷´°¿ÚÊÍ·ÅÊó±ê¡£
Ë«»÷¡¾±íÊäÈ롿ͼ±ê
Êý¾Ý¿âÁ¬½ÓÑ¡Ôñ¸Õ¸Õ´´½¨ºÃµÄetltestÊý¾Ý¿âÁ¬½Ó£¬ÔÚÖ÷´°¿ÚдÈë¶ÔÓ¦µÄ²éѯÓï¾äSelect
* from trade £¬ÈçÏÂͼ£º

µã»÷È·¶¨Íê³É¡£
µã»÷×ó²àµÄ¡¾Lookup¡¿£¬Ñ¡ÖС¾Êý¾Ý¿â²éѯ¡¿£¬Í϶¯µ½Ö÷´°¿ÚÊÍ·ÅÊó±ê¡£
°´×¡shift¼ü£¬ÓÃÊó±êµãÖиղŴ´½¨µÄ¡¾±íÊäÈë¡¿£¬Í϶¯µ½¡¾Êý¾Ý¿â²éѯ¡¿ÉÏ£¬Ôò½¨Á¢ÁËÁ½¸ö»·½ÚÖ®¼äµÄÁ¬½Ó£¬Èçͼ£º

Ë«»÷¡¾Êý¾Ý¿â²éѯ¡¿
²½ÖèÃû³ÆÐ´Èëaccount ±í²éѯ£¬Êý¾Ý¿âÁ¬½ÓÑ¡Ôñ¸Õ¸Õ´´½¨ºÃµÄetltest
Êý¾Ý¿âÁ¬½Ó£¬²éѯµÄ±íдÈëaccount£¬²éѯËùÐèµÄ¹Ø¼ü×ÖÖУ¬±í×Ö¶ÎдÈëacctno£¬±È½Ï²Ù×÷·ûдÈë¡°=¡±£¬×Ö¶Î1дÈëacctno¡£
ÔÚ²éѯ±í·µ»ØµÄÖµÀïÃæÐ´Èëcustno£¬È·¶¨Íê³É£¬ÈçÏÂͼ£º

ͬÉÏ£¬ÔÙ´´½¨Ò»¸öÊý¾Ý¿â²éѯ£¬ÃüÃûΪcust±í²éѯ£¬²éѯµÄ±íдÈëcust£¬²éѯËùÐèµÄ¹Ø¼ü×ÖдÈëcustno=custno£¬²éѯ±í·µ»ØµÄֵдÈëcustname£¬custid£¬custtype£¬ÈçÏÂͼ£º

µã»÷×ó²àµÄ¡¾Transform¡¿£¬Ñ¡ÖС¾¹ýÂ˼Ǽ¡¿£¬Í϶¯µ½Ö÷´°¿ÚÊÍ·ÅÊó±ê¡£
µã»÷×ó²àµÄ¡¾Scripting¡¿£¬Ñ¡ÖÐÁ½¸ö¡¾Modified Java
Script Value¡¿£¬Í϶¯µ½Ö÷´°¿ÚÊÍ·ÅÊó±ê¡£·Ö±ðË«»÷´ò¿ª£¬ÖØÃüÃûΪ¡°¶Ô¹«ÀàÐÍÐ޸ġ±ºÍ¡°¶Ô˽ÀàÐÍÐ޸ġ±¡£
ͬʱ£¬·Ö±ð´´½¨¡¾¹ýÂ˼Ǽ¡¿ºÍ¡¾¶Ô¹«ÀàÐÍÐ޸ġ¿£¬¡¾¶Ô˽ÀàÐÍÐ޸ġ¿µÄÁ¬½Ó¡£
Ë«»÷¡¾¹æÂɼǼ¡¿´ò¿ª¡£
µÚÒ»¸ö<field>ÀïÃæÑ¡Ôñcusttype£¬µã»÷<value>£¬ÔÚEnter
value ÀïÃæÐ´Èë1£¬È·¶¨£¬Èçͼ£º

ÔÚ·¢ËÍtrueÊý¾Ý¸ø²½ÖèÀѡÔñ¡¾¶Ô˽ÀàÐÍÐ޸ġ¿£¬ÔÚ·¢ËÍfalseÊý¾Ý¸ø²½ÖèÀѡÔñ¡¾¶Ô¹«ÀàÐÍÐ޸ġ¿£¬È·¶¨±£´æ£¬Èçͼ£º

Ë«»÷¡¾¶Ô¹«ÀàÐÍÐ޸ġ¿£¬ÔÚÀïÃæÐ´Èëjavascript ½Å±¾Óï¾ävar custtype_cn='¶Ô¹«¿Í»§½»Ò×'ÔÚ×Ö¶ÎÖÐдÈëcusttype_cn£¬ÀàÐÍѡΪstring¡£È·¶¨¡£
ͬÀí£¬ÔÚ¡¾¶Ô˽ÀàÐÍÐ޸ġ¿ÖУ¬ÔÚÀïÃæÐ´Èëjavascript½Å±¾Óï¾ävar
custtype_cn='¶Ô˽¿Í»§½»Ò×'ÔÚ×Ö¶ÎÖÐдÈëcusttype_cn£¬ÀàÐÍѡΪstring¡£È·¶¨¡£
µã»÷×ó²àµÄ¡¾Transform¡¿£¬Ñ¡ÖÐÁ½¸ö¡¾Ôö¼Ó³£Á¿¡¿£¬Í϶¯µ½Ö÷´°¿ÚÊÍ·ÅÊó±ê¡£
·Ö±ðË«»÷´ò¿ª£¬ÖØÃüÃûΪ¡°Ôö¼Ó¶Ô¹«³£Á¿¡±ºÍ¡°Ôö¼Ó¶Ô˽³£Á¿¡±¡£
·Ö±ð½¨Á¢¡¾¶Ô¹«ÀàÐÍÐ޸ġ¿ºÍ¡¾¶Ô˽ÀàÐÍÐ޸ġ¿Ó롾Ôö¼Ó¶Ô¹«³£Á¿¡¿ºÍ¡¾Ôö¼Ó¶Ô˽³£Á¿¡¿µÄÁ¬½Ó£¬Èçͼ£º

Ë«»÷¡¾Ôö¼Ó¶Ô¹«³£Á¿¡¿£¬Ãû³ÆÐ´Èëvalue£¬ÀàÐÍÑ¡Ôñstring£¬ÖµÐ´Èë¡°ÕâÊÇÒ»±Ê¶Ô¹«¿Í»§·¢ÉúµÄ½»Òס±£¬È·¶¨±£´æ¡£
ͬÀí£¬Ë«»÷¡¾Ôö¼Ó¶Ô˽³£Á¿¡¿£¬Ãû³ÆÐ´Èëvalue£¬ÀàÐÍÑ¡Ôñstring£¬ÖµÐ´Èë¡°ÕâÊÇÒ»±Ê¶Ô˽¿Í»§·¢ÉúµÄ½»Òס±£¬È·¶¨±£´æ¡£
µã»÷×ó²àµÄ¡¾Output¡¿£¬Ñ¡ÖС¾Îı¾ÎļþÊä³ö¡¿£¬Í϶¯µ½Ö÷´°¿ÚÊÍ·ÅÊó±ê¡£
½¨Á¢¡¾Ôö¼Ó¶Ô¹«³£Á¿¡¿£¬¡¾Ôö¼Ó¶Ô˽³£Á¿¡¿ºÍ¡¾Îı¾ÎļþÊä³ö¡¿µÄÁ¬½Ó£¬Èçͼ£º

Ë«»÷´ò¿ª¡¾Îı¾ÎļþÊä³ö¡¿£¬ÎļþÃû³ÆÐ´ÈëD:\etltest\etltest.txt
µã»÷ÄÚÈݱêÇ©£¬¸ù¾ÝÇé¿ö½øÐÐÐ޸ģ¬ÀýÈç
µã»÷×ֶαêÇ©
Ãû³ÆÒÀ´ÎдÈëtradeid£¬acctno£¬amt£¬custno£¬custname£¬custid£¬custtype_cn£¬value£¬ÀàÐ͸ù¾Ý¸÷¸ö×Ö¶Îʵ¼ÊÀàÐͽøÐÐÑ¡ÔñÈ·¶¨±£´æ
µã»÷±£´æ´´½¨ºÃµÄtransformation¡£
µã»÷ÔËÐÐÕâ¸öת»»¡£
µã»÷launch£¬¿ªÊ¼ÔËÐÐ
µ±ËùÓÐ״̬¶¼±äÒÑÍê³Éʱ£¬Ôòת»»Íê³É£¬Èçͼ£º

|