1. 程式人生 > >kettle 多表級聯 將多個表格的查詢的資料插入到一個表格中

kettle 多表級聯 將多個表格的查詢的資料插入到一個表格中

1.首先新建資料庫表格

use testA;
create table userC(
    id int primary key,
    name varchar(50),
    age int
)
go

insert into userC values(10001,'張三',20);
insert into userC values(10002,'李四',25);
insert into userC values(10003,'王五',22);

-- 商品表
create table goods(
    id int primary key,
    name varchar(50),
    price float(16)
)
go

insert into goods values(1000001,'蘋果',6.5);
insert into goods values(1000002,'橘子',2.5);
insert into goods values(1000003,'香蕉',1.5);

-- 訂單表
create table orderC(
    id int primary key,
    user_id varchar(50),
    goods_id int
)
go

insert into orderC values(1,10001,1000001);
insert into orderC values(2,10001,1000002);
insert into orderC values(3,10003,1000001);
insert into orderC values(4,10003,1000001);
insert into orderC values(5,10002,1000002);
insert into orderC values(6,10002,1000003);


create database testB;
use testB;
-- 訂單詳情表
create table order_detail(
    id int primary key,
    user_name varchar(50),
    user_age int,
    goods_name varchar(50),
    goods_price float(16)
)
go

2.kettle實現

執行軟體,進入主介面。點選左上角的 檔案 → 新建 → 轉換新建一個轉換,並儲存,轉換的字尾名為ktr。

2、點選面板左側的 主物件樹 ,選擇 DB連線 右鍵,選擇 新建

 或 新建資料庫連線嚮導 分別建立對資料庫A和資料庫B的連線。

選擇“新建”選項的操作檢視

3、點選面板左側的 核心物件 ,選擇 輸入資料夾下的 表輸入 並把它拖到右側的編輯區中。

4、雙擊編輯區的“表輸出”圖示,編輯資料輸入源。此處為多表聯合查詢,所以表輸入我們配置的表為訂單表(關聯關係表)

5、點選面板左側的** 核心物件 ,選擇 查詢 ** 資料夾下的 ** 資料庫查詢 **,並把它拖到右側的編輯區中,按住 shift 畫線連線 “表輸入”,如下圖。

6、雙擊編輯區的“資料庫查詢”,圖示,配置級聯查詢關係。

  • 查詢表返回的值,即為我們需要通過關聯表“user”,獲取到的欄位。

  • 類似的,我們按照上述方法,配置商品表關聯查詢。

7、點選面板左側的** 核心物件 ,選擇 輸出 ** 資料夾下的 ** 插入/更新 **,並把它拖到右側的編輯區中,按住 shift 畫線連線 “資料庫查詢”(goods),如下圖。

8、雙擊右側編輯區的“查詢/更新”圖示,編輯輸出資料對應關係。

用來查詢的關鍵字,此處只選擇主鍵id,表示這裡按照id查詢,如果此id存在,則更新資料,若不存在則插入資料。

9、到這裡,我們最簡單的一個級聯查詢的轉換已經建立完成了,點選“校驗這個轉換”,Kettle會校驗並給出簡單的報告。沒有任何問題。

10、點選“執行這個轉換”,選擇“本地執行”,點選“啟動”來執行這個轉換。