繁体   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