【问题标题】:Azure Data Factory Geography or Geometry Data typesAzure 数据工厂地理或几何数据类型
【发布时间】:2016-01-25 10:43:28
【问题描述】:

我一直在尝试设置 Azure 数据工厂(迄今为止未成功)。我有 2 个 Azure SQL 数据库,它们都在同一台服务器上(在同一个订阅中)

在两个数据库中,我都有一个具有以下架构的表

CREATE TABLE [dbo].[Country_Boundaries]
(
    [Id] [nvarchar](255) NOT NULL,
    [Boundary] [geography] NULL,
    [Name] [nvarchar](255) NULL,
    [Centroid] [geography] NULL
)

我想使用数据工厂将数据从一个数据库表传输到第二个数据库中的同一个结构化表。

数据工厂是否支持 Geography/Geometry 数据类型?

我还研究过使用 Azure 数据同步来执行此操作 - 不幸的是,表中的每一行对于单个数据同步事务来说都太大了(表包含使用 Geography 数据类型的复杂国家边界)。

例子

No of Bytes
Scotland -   55,340,796
NorthernI -  2,149,616
England -    2,126,804
Wales -      705,266

我看到的另一种方法是使用引用表,但不幸的是,引用表也不支持 Geography/Geometry 数据类型。

【问题讨论】:

标签: azure spatial sqlgeography cross-database azure-data-factory


【解决方案1】:

我会考虑将数据转换为众所周知的二进制文件或众所周知的文本,然后将其传递给 adf,然后使用 sproc 和表类型批量加载数据,这使您能够重新转换数据地理不要忘记包含 srid

【讨论】:

    【解决方案2】:

    数据工厂是否支持 Geography/Geometry 数据类型?

    不,Azure 数据工厂目前不支持空间类型。通过复制向导选择要同步的表时,如果该表有任何空间列,您将收到错误:

    处理请求时出错:列:位置,不支持数据类型。活动 ID:[...]

    或者如果你选择多个表,其中一个有空间列,你会得到错误:

    某些表包含不受支持的数据类型或对象类型:[dbo].[Table]。请使用自定义查询排除它们。

    【讨论】:

      【解决方案3】:

      以有限的方式支持 SQL 地理/几何,它们只能在 SQL 数据库之间传输。 由于您的源 SQL 表和接收器 SQL 表具有相同的架构,

      CREATE TABLE [dbo].[Country_Boundaries]
      (
          [Id] [nvarchar](255) NOT NULL,
          [Boundary] [geography] NULL,
          [Name] [nvarchar](255) NULL,
          [Centroid] [geography] NULL
      )
      

      您唯一需要做的就是创建源数据集和接收器数据集以及复制活动。 Copy 活动会将 4 列数据从源传输到接收器。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-08-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-19
        • 2020-06-02
        • 2017-01-05
        相关资源
        最近更新 更多