在kettle中快速更新乙個欄位中的資訊

2021-10-25 08:16:36 字數 857 閱讀 2196

資料庫中有訂單表tb_order,其中有order_id和user_id和user_name等字段。

資料庫中有使用者資料表tb_user,其中有user_id和user_name等字段。

現在需要使用tb_user.user_name來更新tb_order.user_name,兩個表的關聯條件是tb_order.user_id = tb_user.user_id。

通常,在兩個表都靜止的時候,可以使用乙個update來解決,如下。

update tb_order

set user_name = (select user_name from tb_user u where u.user_id = tb_order.user_id);

但是,如果這兩個表的資料量較大,且兩個表都在生產頻繁使用的時候,乙個update語句會鎖表,且需要較長的時間,從而可能會導致正常的業務無法快速進行。

此時,就應該單獨遍歷tb_order表中的每一條記錄,然後根據tb_order.user_id去tb_user中查詢每一條記錄中的user_name,最後根據tb_order.order_id來更新tb_order.user_name;這個單獨遍歷的方式,雖然不能完全解決鎖表引起的問題,但是也可以較大概率避免。但是這個配置模式,效率非常低。

還有乙個更好的思路,乙個轉換就可以完成的配置。思路如下:

1、使用表輸入,從tb_order表中獲得資料;

2、使用資料庫連線控制項,直接從表輸入的結果中獲得引數,然後執行查詢,從tb_user表得到需要的資訊;

3、使用插入更新空間,直接修改tb_order中指定的字段。

因為這三個步驟在乙個轉換中,所以,可以在第2步和第三步中設定併發數量來提高kettle的處理效率。

配置如下:

累就乙個字

最近也學了一把跳槽,新公司坐落在北師大校園裡,環境是一流,可惜就是遠過頭了,一天就要浪費兩個小時在車上,比以前還慘。值得安慰的是公司坐落在學校裡,每天在校園裡看到那些青春活力的學生,也會覺得自己年輕了好幾歲,感覺非常棒。最重要的是北師大靚女成群,真是大飽眼福啊 別鄙視咱,哪個男人不喜歡欣賞美女,除非...

愛就乙個字

撥開天空的烏雲 像藍絲絨一樣美麗 我為你翻山越嶺 卻無心看風景 我想你身不由己 每個念頭有新的夢境 但願你沒忘記 我永遠保護你 不管風雨的打擊 全心全意 兩個人相互輝映 光芒勝過夜晚繁星 我為你翻山越嶺 卻無心看風景 我想你鼓足勇氣 憑愛的地圖散播訊息 但願你沒忘記 我永遠保護你 從此不必再流浪找尋...

乙個字等於多少位元組?

在這個特定計算機中,字是其用來一次性處理事務的乙個固定長度的位 bit 組。現代計算機的字長通常為16 32 64位。結合以上兩句,我覺得乙個字佔多少位元組並不是那麼絕對的,要看你是哪個處理器 處理器的位數決定了能夠處理一條指令的長度 以前我看書上也是說乙個字就是兩個位元組,這是因為我們之前接觸的8...