如何将数据从本地SQL Db连续迁移到Azure SQL Db

时间:2018-05-15 16:50:47

标签: azure azure-sql-database azure-storage azure-data-factory azure-machine-learning-studio

作为Azure Machine Learning进程的一部分,我需要continually使用Data Management Gateway将数据从本地SQL Db迁移到Azure SQL Db。

这篇Azure官方文章介绍了如何:Move data from an on-premises SQL server to SQL Azure with Azure Data Factory。但细节对我来说有点混乱。如果有人简要介绍过程,你会怎么做?需要在main上执行2-3个on-premises步骤,在Azure Cloud上执行2-3个步骤?不需要任何细节。 注意:解决方案必须涉及使用Data Management Gateway

1 个答案:

答案 0 :(得分:1)

基于Azure文档,您可以使用" slices"。你可以执行一个" delta"使用this文章或使用顺序整数列提到的timestamp列进行提取。为避免由于内部部署服务器的系统日期略晚于Azure系统日期而未包含在切片上的行的问题,最好使用顺序整数。 Input数据集下方显示了如何定义切片:

{
  "name": "AzureBlobInput",
  "properties": {
    "type": "AzureBlob",
    "linkedServiceName": "StorageLinkedService",
    "typeProperties": {
      "folderPath": "mycontainer/myfolder/{Year}/{Month}/{Day}/",
      "partitionedBy": [
        { "name": "Year", "value": {"type": "DateTime","date": "SliceStart","format": "yyyy"}},
        { "name": "Month","value": {"type": "DateTime","date": "SliceStart","format": "MM"}},
        { "name": "Day","value": {"type": "DateTime","date": "SliceStart","format": "dd"}}
      ],
      "format": {
        "type": "TextFormat"
      }
    },
    "external": true,
    "availability": {
      "frequency": "Hour",
      "interval": 1
    }
  }
}

您可以创建活动并使用“可用性”部分指定活动的计划。您可以指定"频率" (分钟,小时,日等)和"间隔"。

            "scheduler": {
                "frequency": "Hour",
                "interval": 1
            }

活动运行消耗或生成的每个数据单元称为数据切片。下图显示了具有一个输入数据集和一个输出数据集的活动示例:

enter image description here

该图显示了输入和输出数据集的每小时数据切片。该图显示了三个准备好处理的输入切片。 10-11 AM活动正在进行中,产生10-11 AM输出切片。

您可以使用变量访问数据集JSON中与当前切片关联的时间间隔:SliceStart和SliceEnd。您可以在活动JSON中使用这些变量来从表示时间序列数据的输入数据集中选择数据(例如:上午8点到上午9点)。

您还可以设置过去管道的开始日期,如here所示。执行此操作时,Data Factory会自动计算(回填)过去的所有数据切片并开始处理它们。