在未指定 table 模式的情况下使用数据工厂在 Azure SQL 数据库之间安排 1:1 的 table 副本

scheduled 1:1 copy of tables between Azure SQL databases using Data Factory without specifying table schema

使用 Azure 数据工厂,是否可以对驻留在 Azure SQL DB 到另一个 Azure SQL DB(在本例中为 Azure SQL 数据仓库),无需 显式定义所有 table schema/structure 在数据工厂 JSON 数据集中?

我问的原因是到目前为止我看到的数据工厂教程(例如 this one)已经明确定义了 table 其复制活动的模式。如果我们有数百个要复制的 table,我们将不得不花费数天时间在 JSON 中编写 table 定义(或者编写脚本,我猜,这两种情况似乎就像简单地复制数据的不必要的工作一样)。

(我应该补充一点,使用 ADF 的本地 SQL -> Azure DB/DW 案例也很有趣。真的希望能够定期且经济实惠地将数据移动到云端,而无需必须指定数千个 table 模式。)。

Azure 数据工厂不需要架构或结构定义,但需要为要复制的所有表定义数据集。您必须为所有需要复制任何源-目标组合的表定义数据集(有或没有架构)。

是的,使用复制数据工具您可以完成此操作 - 一旦您配置了与源的连接 - 您可以使用向导 select 要处理的单个表和/或视图:

如果您不想使用 UI 来 select 所需的实体,您可以通过查询 sys 对象来获取表

select schema_name(t.schema_id) as schema_name,
       t.name as table_name
from sys.tables t
where (schema_name(t.schema_id) not in ('schema-i-dont-want') 
       or t.name not in ('table-i-dont-want'))
order by table_name;

然后您将配置您的目的地,默认的目标实体名称将与源名称相匹配。您也可以在此步骤中跳过列映射 - ADF 将尝试喜欢类似的列 - 您可以在 MS 文档 (https://docs.microsoft.com/en-us/azure/data-factory/copy-activity-schema-and-type-mapping) 中验证支持的数据类型。

从那里向导是不言自明的。