我一直在尝试设置和Azure数据工厂(迄今为止未成功)。我有 2 个 Azure SQL 数据库,它们都在同一台服务器上(在同一订阅中)
在这两个数据库中,我都有一个具有以下架构的表
CREATE TABLE [dbo].[Country_Boundaries]
(
[Id] [nvarchar](255) NOT NULL,
[Boundary] [geography] NULL,
[Name] [nvarchar](255) NULL,
[Centroid] [geography] NULL
)
我想使用数据工厂将数据从一个数据库表传输到第二个数据库中的同一结构化表。
数据工厂是否支持"地理/几何"数据类型?
我还研究了如何使用 Azure 数据同步来执行此操作 - 不幸的是,表中的每一行对于单个数据同步事务来说都太大(该表包含使用地理数据类型的复杂国家/地区边界)。
例
No of Bytes
Scotland - 55,340,796
NorthernI - 2,149,616
England - 2,126,804
Wales - 705,266
我考虑这样做的另一种方法是使用引用的表,但不幸的是,引用的表也不支持地理/几何数据类型。
我会考虑将数据转换为众所周知的二进制或众所周知的文本,然后将其传递给 adf,然后使用 sproc 和表类型批量加载数据,这使您能够重新转换数据 Ing 地理不要忘记包括 srid
地理/几何以支持有限的方式,它们只能在 SQL 数据库之间传输。由于源 SQL 表和接收器 SQL 表具有相同的架构,
CREATE TABLE [dbo].[Country_Boundaries]
(
[Id] [nvarchar](255) NOT NULL,
[Boundary] [geography] NULL,
[Name] [nvarchar](255) NULL,
[Centroid] [geography] NULL
)
唯一需要做的就是创建源数据集和接收器数据集以及复制活动。 复制活动会将 4 列数据从源传输到接收器。
数据工厂是否支持"地理/几何"数据类型?
否,Azure 数据工厂目前不支持空间类型。通过复制向导选择要同步的表时,如果该表具有任何空间列,您将收到错误:
处理请求时出错:列:位置,不支持数据类型。
或者,如果选择多个表,其中一个表具有空间列,则会收到错误:
某些表包含不受支持的数据类型或对象类型:[dbo]。[表]。请使用自定义查询将其排除。