快速入门:使用 Azure CLI 创建 Azure 数据工厂

本快速入门介绍如何使用 Azure CLI 创建 Azure 数据工厂。 在此数据工厂中创建的管道会将数据从 Azure Blob 存储中的一个文件夹复制到另一个文件夹。 有关如何使用 Azure 数据工厂转换数据的信息,请参阅在 Azure 数据工厂中转换数据

有关 Azure 数据工厂服务的介绍,请参阅 Azure 数据工厂简介

如果没有 Azure 订阅,可在开始前创建一个试用帐户

如需在本地运行 CLI 参考命令,请安装 Azure CLI。 如果在 Windows 或 macOS 上运行,请考虑在 Docker 容器中运行 Azure CLI。 有关详细信息,请参阅如何在 Docker 容器中运行 Azure CLI

  • 如果使用的是本地安装,请使用 az login 命令登录到 Azure CLI。 若要完成身份验证过程,请遵循终端中显示的步骤。 有关其他登录选项,请参阅使用 Azure CLI 登录

  • 出现提示时,请在首次使用时安装 Azure CLI 扩展。 有关扩展详细信息,请参阅使用 Azure CLI 的扩展

  • 运行 az version 以查找安装的版本和依赖库。 若要升级到最新版本,请运行 az upgrade

注意

若要创建数据工厂实例,用于登录到 Azure 的用户帐户必须属于参与者或所有者角色,或者是 Azure 订阅的管理员。 有关详细信息,请参阅 Azure 角色

准备容器和测试文件

本快速入门使用 Azure 存储帐户,其中包含一个带有文件的容器。

  1. 若要创建名为 ADFQuickStartRG 的资源组,请使用 az group create 命令:

    az group create --name ADFQuickStartRG --location chinanorth2
    
  2. 使用 az storage account create 命令创建存储帐户:

    az storage account create --resource-group ADFQuickStartRG \
        --name adfquickstartstorage --location chinanorth2
    
  3. 使用 az storage container create 命令创建名为 adftutorial 的容器:

    az storage container create --resource-group ADFQuickStartRG --name adftutorial \
        --account-name adfquickstartstorage --auth-mode key
    
  4. 在本地目录中,创建要上传的名为 emp.txt 的文件。 如果你在 Azure Cloud Shell 中操作,可以使用 echo $PWD Bash 命令查找当前工作目录。 可以使用标准 Bash 命令(如 cat )创建文件:

    cat > emp.txt
    This is text.
    

    Ctrl+D 保存新文件。

  5. 若要将新文件上传到 Azure 存储容器,请使用 az storage blob upload 命令:

    az storage blob upload --account-name adfquickstartstorage --name input/emp.txt \
        --container-name adftutorial --file emp.txt --auth-mode key
    

    此命令将文件上传到名为 input 的新文件夹。

创建数据工厂

若要创建 Azure 数据工厂,请运行 az datafactory create 命令:

az datafactory create --resource-group ADFQuickStartRG \
    --factory-name ADFTutorialFactory

重要

请将 ADFTutorialFactory 替换为全局唯一的数据工厂名称,例如 ADFTutorialFactorySP1127。

可以使用 az datafactory show 命令查看创建的数据工厂:

az datafactory show --resource-group ADFQuickStartRG \
    --factory-name ADFTutorialFactory

创建链接服务和数据集

接下来,创建一个链接服务和两个数据集。

  1. 使用 az storage account show-connection-string 命令获取存储帐户的连接字符串:

    az storage account show-connection-string --resource-group ADFQuickStartRG \
        --name adfquickstartstorage --key primary
    
  2. 在工作目录中,创建包含以下内容的 JSON 文件,这些内容包括上一步骤中获取的你自己的连接字符串。 将文件命名为 AzureStorageLinkedService.json

    {
        "type": "AzureBlobStorage",
        "typeProperties": {
            "connectionString": "DefaultEndpointsProtocol=https;AccountName=<accountName>;AccountKey=<accountKey>;EndpointSuffix=core.chinacloudapi.cn"
        }
    }
    
  3. 使用 az datafactory linked-service create 命令创建名为 AzureStorageLinkedService 的链接服务:

    az datafactory linked-service create --resource-group ADFQuickStartRG \
        --factory-name ADFTutorialFactory --linked-service-name AzureStorageLinkedService \
        --properties @AzureStorageLinkedService.json
    
  4. 在工作目录中,创建包含以下内容的名为 InputDataset.json 的 JSON 文件:

    {
        "linkedServiceName": {
            "referenceName": "AzureStorageLinkedService",
            "type": "LinkedServiceReference"
        },
        "annotations": [],
        "type": "Binary",
        "typeProperties": {
            "location": {
                "type": "AzureBlobStorageLocation",
                "fileName": "emp.txt",
                "folderPath": "input",
                "container": "adftutorial"
            }
        }
    }
    
  5. 使用 az datafactory dataset create 命令创建名为 InputDataset 的输入数据集:

    az datafactory dataset create --resource-group ADFQuickStartRG \
        --dataset-name InputDataset --factory-name ADFTutorialFactory \
        --properties @InputDataset.json
    
  6. 在工作目录中,创建包含以下内容的名为 OutputDataset.json 的 JSON 文件:

    {
        "linkedServiceName": {
            "referenceName": "AzureStorageLinkedService",
            "type": "LinkedServiceReference"
        },
        "annotations": [],
        "type": "Binary",
        "typeProperties": {
            "location": {
                "type": "AzureBlobStorageLocation",
                "folderPath": "output",
                "container": "adftutorial"
            }
        }
    }
    
  7. 使用 az datafactory dataset create 命令创建名为 OutputDataset 的输出数据集:

    az datafactory dataset create --resource-group ADFQuickStartRG \
        --dataset-name OutputDataset --factory-name ADFTutorialFactory \
        --properties @OutputDataset.json
    

创建并运行管道

最后,创建并运行管道。

  1. 在工作目录中,创建包含以下内容的名为 Adfv2QuickStartPipeline.json 的 JSON 文件:

    {
        "name": "Adfv2QuickStartPipeline",
        "properties": {
            "activities": [
                {
                    "name": "CopyFromBlobToBlob",
                    "type": "Copy",
                    "dependsOn": [],
                    "policy": {
                        "timeout": "7.00:00:00",
                        "retry": 0,
                        "retryIntervalInSeconds": 30,
                        "secureOutput": false,
                        "secureInput": false
                    },
                    "userProperties": [],
                    "typeProperties": {
                        "source": {
                            "type": "BinarySource",
                            "storeSettings": {
                                "type": "AzureBlobStorageReadSettings",
                                "recursive": true
                            }
                        },
                        "sink": {
                            "type": "BinarySink",
                            "storeSettings": {
                                "type": "AzureBlobStorageWriteSettings"
                            }
                        },
                        "enableStaging": false
                    },
                    "inputs": [
                        {
                            "referenceName": "InputDataset",
                            "type": "DatasetReference"
                        }
                    ],
                    "outputs": [
                        {
                            "referenceName": "OutputDataset",
                            "type": "DatasetReference"
                        }
                    ]
                }
            ],
            "annotations": []
        }
    }
    
  2. 使用 az datafactory pipeline create 命令创建名为 Adfv2QuickStartPipeline 的管道:

    az datafactory pipeline create --resource-group ADFQuickStartRG \
        --factory-name ADFTutorialFactory --name Adfv2QuickStartPipeline \
        --pipeline @Adfv2QuickStartPipeline.json
    
  3. 使用 az datafactory pipeline create-run 命令运行管道:

    az datafactory pipeline create-run --resource-group ADFQuickStartRG \
        --name Adfv2QuickStartPipeline --factory-name ADFTutorialFactory
    

    此命令将返回运行 ID。 请复制此 ID 以便在下一命令中使用。

  4. 使用 az datafactory pipeline-run show 命令验证管道运行是否成功:

    az datafactory pipeline-run show --resource-group ADFQuickStartRG \
        --factory-name ADFTutorialFactory --run-id 00000000-0000-0000-0000-000000000000
    

也可以使用 Azure 门户验证管道是否按预期方式运行。 有关详细信息,请参阅查看已部署的资源

清理资源

本快速入门中的所有资源都是同一资源组的一部分。 若要删除所有这些资源,请使用 az group delete 命令:

az group delete --name ADFQuickStartRG

如果你还要将此资源组用在别处,请删除单个资源。 例如,若要删除链接服务,请使用 az datafactory linked-service delete 命令。

在本快速入门中,你创建了以下 JSON 文件:

  • AzureStorageLinkedService.json
  • InputDataset.json
  • OutputDataset.json
  • Adfv2QuickStartPipeline.json

使用标准 Bash 命令删除这些文件。