簡體   English   中英

Azure 管道中的數據工廠重命名表

[英]Azure Data Factory Rename Tables in Pipeline

我正在從一個 Oracle 數據庫批量復制到另一個 Oracle 數據庫。 為此,我使用了批量復制操作,該操作根據所有者執行並創建表查找。

這很好用。 但是,我們正在從表名附加了“vw_”的視圖中提取數據,並且需要刪除前綴。 目標 Oracle 數據庫列出的表名沒有“vw_”。 流程很簡單。

  1. 我們創建一個表名查找
  2. 我們觸發一個副本,它遍歷每個表並復制數據
  3. 該操作將復制的數據發送到存儲 blob
  4. 然后復制到消費者操作將數據從存儲帳戶移動到目標。 到那時查詢應該是正確的。 我們檢查表是否存在,如果存在,我們截斷數據並重新加載它。

IF EXISTS (SELECT * FROM [@{item().TABLE_SCHEMA}].[@{item().VIEW_NAME}]) TRUNCATE TABLE [@{item().TABLE_SCHEMA}].[@{item().TABLE_NAME}]

問題是我無法重命名管道中的表。 我該怎么做呢?

這是提取表名的查詢。

SELECT OWNER as TABLE_SCHEMA, VIEW_NAME as TABLE_NAME
from SYS.ALL_VIEWS
WHERE  VIEW_NAME LIKE 'VW_RX_%'

這是其中一個表名VW_RX_CASE_WORKLIST

我想在查找任務中將其轉換為 RX_CASE_WORKLIST,這樣我們就不必弄亂存儲帳戶中的文件。 復制任務

您從lookup活動中使用的查詢中的視圖名稱中刪除前 3 個字符 ( VW_ )。

下面是執行 substring 之前的結果。

在此處輸入圖像描述

查找活動:

SELECT 'dbo' as tb_schema, substring(name, 4, (len(name)-3)) as tb_name
from SYS.ALL_VIEWS
WHERE name LIKE 'VW_%'

在此處輸入圖像描述

您可以將lookup活動的 output 傳遞給下一個活動。

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM