1: 關於id生成器。
如果乙個轉化流程裡的兩個分支分別使用了generate id元件, 請注意「計數器名稱」,這個很重要。
1) 如果改名字不同,則最總彙總結果中的id是會分別生成的,也就是說會出現重複的id。
2) 如果名字相同,最終結果中id是不會重複的。
2:關於序列生成器
首先抱歉,上面所說的「generate id「元件,其實指的就是序列生成器。
kettle5.3中包含兩個序列生成器元件,乙個是」增加序列「,乙個是」根據欄位值來改變序列「。
1)增加序列
有兩種用法:
a. 使用
資料庫來生成序列。
這種用法是需要連線
資料庫,如
oracle
,並且指定乙個sequence名。其原理是利用資料庫本身的功能來輔助生成序列。
b. 使用轉換計數器來生成序列
通常指定乙個"計數器名稱」,並指定起始值、步進值、最大值三個引數。可見,其用法與在
資料庫裡建立sequence相同。
2)根據欄位值來改變序列
這個生成器的核心用法在於, 根據上個步驟的輸出流(對生成器來說是輸入流)的某乙個或幾個欄位的變化來生成序列。對於輸入流,如果指定的某乙個或某幾個欄位的值沒有變化,那麼序列生成器會從起始值開始,根據規則來生成序列;如果變化了,序列生成器則從起始值重新開始生成序列。
應用場景,參看這樣的輸入流圖例:
發現"group「字段具有重複性,如果要依據每個不同的group值來重新生成序列,序列生成器的配置可以如下:
在序列器編輯中,指定」group「字段作為是序列器是否重新從起始值開始的判斷依據。
最終生成的資料如下:
序列生成器的用法解釋到此結束。
2:關於分析查詢元件(analytic query)
這個元件的作用相當奇特,它可以在乙個輸入流中根據當前資料行往上回溯或者往下預查詢乙個資料行(一條記錄)中的某些欄位的值,回溯或者預查詢的位置能以引數的方式指定。
另乙個奇特之處在於,它可以在輸入流中指定乙個或多個字段,然後依據這些欄位對輸入流中的資料進行分組。依據當前資料行的位置, 回溯或者預查詢其它資料行的字段的值時,同時還要參考分組欄位的值是否有變化。 如果回溯或者預查詢的資料行的分組欄位跟當前行不同,那麼返回null,否則的話返回確定的值。
以上是該元件的核心用法,需多讀並用心理解。
以下舉例說明。
測試表簡短說明:
乙個教師資訊表中有rownum欄位,代表資料行號; 另乙個欄位是教師能力faculty欄位(取值01,02,03等)。 很多教師都擁有相同的faculty值。
接下來配置分析查詢元件,如圖:
在分組字段加入faculty欄位, 然後在「要取值的字段「中指定要回溯或者要預查詢的欄位名。 」新增加的字段「的意思是,回溯或者預查詢的字段的值將以什麼欄位名顯示在本條資料裡。「型別」裡要指明是向前還是向後查詢,n的意思不用解釋了吧,相信聰明的你一定看的懂。
下面給出乙個執行的樣例:
上圖中,lead_seq代表向前2行seqence欄位的值,lag_seq代表向後兩行sequence的值,lead4_seq代表向前4行sequence的值。 請千萬注意該值的變化,有faculty欄位在起作用。
該元件講解完畢。
實驗一二三命令
實驗1 linux操作基礎和文字編輯 useradd 使用者名稱 passwd 使用者名稱 groupadd 使用者組名 man 命令 help命令 vi 檔名 i命令插入文字 刪除乙個字元,用x命令 刪除一行,用dd命令 刪除剩下的行,用d命令 復原文字命令用u 命令ndd 能夠剪下從當前行開始的...
吐槽一二三
最近由於公司經營狀況不佳以及存在的各種二貨領導,公司出了很多有意思的事。真不知道領導聽到這句話的時候是什麼表情,反正要是有人這麼給我說,那肯定是心裡面有千萬句草泥馬飛奔而過。真不知道在軟體公司尤其是軟體外包公司,什麼樣的領導才是好領導,反正當過我的領導的人,在心裡面我總是多多少少有些怨言滴。並且,如...
第一,二,三正規化
第一正規化 1nf 在關係模式r中的每乙個具體關係r中,如果每個屬性值 都是不可再分的最小資料單位,則稱r是第一正規化的關係。例 如職工號,姓名,號碼組成乙個表 乙個人可能有乙個辦公室 和乙個家裡 號碼 規範成為1nf有三種方法 一是重複儲存職工號和姓名。這樣,關鍵字只能是 號碼。二是職工號為關鍵字...