點(diǎn)擊上方“IT那活兒”,關(guān)注后了解更多內(nèi)容,不管IT什么活兒,干就完了?。?!
kettle介紹
ETL 是Extract-Transform-Load三個(gè)單詞的簡(jiǎn)稱,即抽取、轉(zhuǎn)換、加載。使用ETL工具可以完成從目標(biāo)數(shù)據(jù)源進(jìn)行數(shù)據(jù)抽取,經(jīng)過(guò)一系列的數(shù)據(jù)轉(zhuǎn)換,最終形成需要的數(shù)據(jù)模型并加載到數(shù)據(jù)庫(kù)中。
Kettle是開(kāi)源ETL工具,提供一系列的組件用于完成各種抽取、轉(zhuǎn)換、加載的工作。
Kettle中兩個(gè)核心是轉(zhuǎn)換(transformation)與作業(yè)(job):
轉(zhuǎn)換即完成數(shù)據(jù)ETL工作;
作業(yè)即定義一個(gè)完成整個(gè)工作流的控制。
注:Kettle如何發(fā)送郵件可查看之前發(fā)布的《ETL工具Kettle發(fā)送郵件》文章。
項(xiàng)目背景
業(yè)務(wù)人員日常需要通過(guò)手工統(tǒng)計(jì)加工的方式進(jìn)行數(shù)據(jù)統(tǒng)計(jì)和分析,通過(guò)Kettle進(jìn)行自動(dòng)化的定期對(duì)數(shù)據(jù)數(shù)據(jù)抽取、加工和匯總,需要用到關(guān)鍵的技術(shù)是通過(guò)傳參將處理數(shù)據(jù)每次更新到每一期的郵件,實(shí)現(xiàn)采集、加工和統(tǒng)計(jì)匯總的自動(dòng)化。
自動(dòng)生成報(bào)表
1. kettle發(fā)送郵件正文處添加表格
Kettle發(fā)送郵件正文處添加表格,是指將數(shù)據(jù)庫(kù)里面的數(shù)據(jù)通過(guò)kettle組件進(jìn)行抽取出來(lái),按照所需要的格式以及排版轉(zhuǎn)換成表格形式,在發(fā)送郵件時(shí)展示到郵件正文處,方便收件人更加直觀的看到所需數(shù)據(jù)。
圖1: Kettle發(fā)送郵件正文處添加表格流程圖
2. kettle發(fā)送郵件正文處添加表格步驟詳解
1)Start:開(kāi)始執(zhí)行作業(yè)
2)設(shè)置昨日日期變量-轉(zhuǎn)換:獲取時(shí)間日期,按照需要的格式進(jìn)行加工并設(shè)置為變量,供其他組件使用。
圖2: 昨日日期變量
獲取系統(tǒng)信息:可以獲取當(dāng)前系統(tǒng)時(shí)間、昨日時(shí)間、明天時(shí)間、本月/上月/下個(gè)月月初/末等時(shí)間。
字段選擇:可以對(duì)獲取到的系統(tǒng)時(shí)間按照業(yè)務(wù)需求設(shè)置格式,例如:yyyyMMdd、MM-dd-yyyy HH:mm:ss。
設(shè)置變量:將獲取到的系統(tǒng)時(shí)間設(shè)置為變量,供后面的組件使用,例如:獲取昨天時(shí)間,設(shè)置的變量名為:ZTDATE,使用該變量時(shí)的格式為:${ ZTDATE }。
3)數(shù)據(jù)轉(zhuǎn)換:從目標(biāo)數(shù)據(jù)源進(jìn)行數(shù)據(jù)抽取,經(jīng)過(guò)一系列的數(shù)據(jù)轉(zhuǎn)換,最終形成需要的數(shù)據(jù)模型。例如:將數(shù)據(jù)庫(kù)中的數(shù)據(jù)轉(zhuǎn)換成文件形式、將文件形式的數(shù)據(jù)轉(zhuǎn)換加載到數(shù)據(jù)庫(kù)、將數(shù)據(jù)庫(kù)中的數(shù)據(jù)轉(zhuǎn)換設(shè)置為變量來(lái)使用等。本文是將數(shù)據(jù)庫(kù)中的數(shù)據(jù)以HTML格式輸出,并設(shè)置成變量展示到郵件正文處。
圖3:數(shù)據(jù)轉(zhuǎn)換
表輸入:用來(lái)查詢數(shù)據(jù)庫(kù)數(shù)據(jù)的組件。選擇數(shù)據(jù)表來(lái)源數(shù)據(jù)庫(kù),可以獲取SQL查詢語(yǔ)句或根據(jù)業(yè)務(wù)需求自定義SQL語(yǔ)句。
本文中是用拼接的形式將HTML中所用的標(biāo)簽進(jìn)行拼接,最終用聚合函數(shù)string_agg(expression,delimiter)將多行數(shù)據(jù)合并成一行。
其中,expression是指需要合并的字段名,delimiter是指合并時(shí)用什么分隔符進(jìn)行分割,例如可為空格、逗號(hào)、分號(hào)等自定義字符。
圖4:表輸入
設(shè)置變量:將輸出的結(jié)果設(shè)置成變量,供后面的組件使用。
例如本文是將輸出HTML形式的數(shù)據(jù)設(shè)置為變量,且變量名命名為content,當(dāng)使用該變量時(shí)的寫法為${content}。
圖5: 設(shè)置變量
4)發(fā)送郵件:步驟有“地址”、“服務(wù)器”、“郵件消息”、“附件”四個(gè)標(biāo)簽頁(yè)。標(biāo)簽頁(yè)配置信息如圖6至圖9所示。
地址
圖6:地址
服務(wù)器
圖7:服務(wù)器
郵件信息:可以自定義發(fā)送郵件的主題和郵件正文。
圖8:郵件信息
附件
圖9:郵件信息
5)成功:查看執(zhí)行結(jié)果日志,每一步均為result=[true],則作業(yè)執(zhí)行成功,任務(wù)結(jié)束,否則執(zhí)行失敗。
6)郵件顯示情況如下:
注:Kettle如何發(fā)送郵件可查看之前發(fā)布的《ETL工具Kettle發(fā)送郵件》文章。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/129569.html
摘要:本文為大家推薦款常用的開(kāi)源報(bào)表制作工具,供開(kāi)發(fā)者學(xué)習(xí)參考。一個(gè)基于的開(kāi)源報(bào)表工具,它可以在環(huán)境下像其他報(bào)表工具一樣來(lái)制作報(bào)表,支持和文件輸出格式,是當(dāng)前開(kāi)發(fā)者最常用的報(bào)表工具。使用開(kāi)發(fā)的,并使用作為報(bào)表生成引擎。 本文為大家推薦6款常用的Java開(kāi)源報(bào)表制作工具,供開(kāi)發(fā)者學(xué)習(xí)、參考。 1.Aspose.Cells for JasperReports一個(gè)基于Java的開(kāi)源報(bào)表工具,它可以...
摘要:相比其他開(kāi)源的工具和其他商業(yè)的工具,對(duì)比下來(lái)還是比較強(qiáng)大和好用。 1.為什么要使用數(shù)據(jù)抽取 (1)為了不妨礙業(yè)務(wù)數(shù)據(jù)的讀取和寫入,需要進(jìn)行數(shù)據(jù)的抽取,抽取到另外數(shù)據(jù)庫(kù)表進(jìn)行讀?。?)對(duì)某些總計(jì)數(shù)據(jù)可以進(jìn)行預(yù)先計(jì)算, 抽取到另外數(shù)據(jù)庫(kù)表(3)隨訪業(yè)務(wù)數(shù)據(jù)庫(kù)為mongodb , 統(tǒng)計(jì)程序編程效率低,需要轉(zhuǎn)成sql 類數(shù)據(jù)庫(kù)提高效率 2.工具 使用 kettle 開(kāi)源etl工具網(wǎng)址:http...
摘要:如銷售數(shù)據(jù)跟部門表,客戶表之間的關(guān)系。而查詢,又是這三者之間的粘合劑,它表達(dá)了用戶的需求,經(jīng)過(guò)引擎的解析,根據(jù)數(shù)據(jù)模型的描述,從數(shù)據(jù)倉(cāng)庫(kù)找到所需要的數(shù)據(jù)。 本文來(lái)自網(wǎng)易云社區(qū) 作者:王攀 我們知道,大部分公司都擁有了自己的財(cái)務(wù),OA,CRM 等系統(tǒng)。這些系統(tǒng)都有自己的獨(dú)立數(shù)據(jù)庫(kù),記錄著企業(yè)運(yùn)行情況某個(gè)方面的數(shù)據(jù)。但是單獨(dú)看這些系統(tǒng)的報(bào)表,并不一定能對(duì)企業(yè)運(yùn)行情況有全面客觀的了解。就像只...
摘要:是一款國(guó)外開(kāi)源的工具,純編寫,可以在上運(yùn)行,數(shù)據(jù)抽取高效穩(wěn)定。 Kettle是一款國(guó)外開(kāi)源的ETL工具,純java編寫,可以在Window、Linux、Unix上運(yùn)行,數(shù)據(jù)抽取高效穩(wěn)定。作為一個(gè)數(shù)據(jù)抽取工具,在建立數(shù)據(jù)倉(cāng)庫(kù)的過(guò)程中,免不了需要從不同的數(shù)據(jù)源中抽取到集中的數(shù)據(jù)倉(cāng)庫(kù)中,下面就拿mongodb抽取到mysql為例,簡(jiǎn)述抽取數(shù)據(jù)的步驟: 新建轉(zhuǎn)換:test 在test中新建M...
摘要:是一款國(guó)外開(kāi)源的工具,純編寫,可以在上運(yùn)行,數(shù)據(jù)抽取高效穩(wěn)定。 Kettle是一款國(guó)外開(kāi)源的ETL工具,純java編寫,可以在Window、Linux、Unix上運(yùn)行,數(shù)據(jù)抽取高效穩(wěn)定。作為一個(gè)數(shù)據(jù)抽取工具,在建立數(shù)據(jù)倉(cāng)庫(kù)的過(guò)程中,免不了需要從不同的數(shù)據(jù)源中抽取到集中的數(shù)據(jù)倉(cāng)庫(kù)中,下面就拿mongodb抽取到mysql為例,簡(jiǎn)述抽取數(shù)據(jù)的步驟: 新建轉(zhuǎn)換:test 在test中新建M...
閱讀 1493·2023-01-11 13:20
閱讀 1851·2023-01-11 13:20
閱讀 1289·2023-01-11 13:20
閱讀 2041·2023-01-11 13:20
閱讀 4241·2023-01-11 13:20
閱讀 2948·2023-01-11 13:20
閱讀 1580·2023-01-11 13:20
閱讀 3852·2023-01-11 13:20