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