📜  Azure数据工厂(1)

📅  最后修改于: 2023-12-03 15:29:33.624000             🧑  作者: Mango

Azure 数据工厂

Azure 数据工厂是一种云数据集成服务,可让您有效地管理和处理数据。它可以帮助您从各种数据来源中提取、转换和加载数据,从而提供了一个建立现代数据仓库的工具。

为什么要使用 Azure 数据工厂?

使用 Azure 数据工厂,您可以:

  • 集成多种数据源并将其转换到适合您的平台的格式。
  • 建立可靠的ETL流程,以自动处理数据。
  • 使用Azure Data Factory 自动化Azure上的数据处理。
  • 将数据存储在Azure Blob存储器,Azure Data Lake存储器或Azure SQL数据库中。
  • 获得对详细运行状况和监视数据的实时访问。
  • 运行昂贵计算任务。
Azure 数据工厂的体系结构

Azure 数据工厂具有以下三个核心组件:

  • 数据源
  • 数据处理器
  • 启动器
数据源

数据源可以是几个来源的数据。

  • 文件系统(存储在Azure Blob存储器、Azure Data Lake存储器或本地文件系统中)。
  • 消息队列。
  • 数据库(SQL服务器、Cosmos DB和Mongo DB等)。
数据处理器

数据处理器是Azure数据工厂的核心部分。它们对数据执行ETL操作(提取、转换和加载操作)或ELT操作(提取、加载和转换操作),以将数据从一种格式转换为另一种格式。

数据处理器可以是:

  • 数据流转换器:将数据流转换为另一个格式并输出到数据存储器。
  • 管道活动:单个转换步骤,例如将文件从Blob存储器复制到Data Lake存储器。
  • 自定义活动:可以使用Python、.NET和其他语言编写自定义代码来执行特定的操作。
启动器

Azure 数据工厂可以使用以下启动器来启动管道。

  • 手动:使用一个手动触发器启动管道。
  • 时间触发器:以固定的时间启动管道。
  • 在事件上触发器:在数据存储器中特定事件的事件发生时启动管道。
如何使用 Azure 数据工厂

要开始使用Azure数据工厂,您需要完成以下步骤:

  1. 创建 Azure 数据工厂。
  2. 将数据源添加到 Azure 数据工厂。
  3. 创建管道。
  4. 将数据处理器添加到管道。
  5. 选择某个启动器来启动管道。

下面是一个完整的 Azure 数据工厂的示例:

{
  "name": "AzureDataFactory",
  "location": "[resourceGroup().location]",
  "identity": {
    "type": "SystemAssigned"
  },
  "properties": {
    "description": "Azure Data Factory",
    "linkedServices": [],
    "datasets": [],
    "pipelines": [
      {
        "name": "DataPipeline",
        "properties": {
          "description": "Data Pipeline",
          "activities": [
            {
              "name": "CopyBlobStorage",
              "type": "Copy",
              "dependsOn": [],
              "policy": {
                "timeout": "7.00:00:00",
                "retry": 0,
                "retryIntervalInSeconds": 30,
                "secureOutput": false,
                "secureInput": false
              },
              "userProperties": [],
              "typeProperties": {
                "source": {
                  "type": "BlobSource",
                  "recursive": true
                },
                "sink": {
                  "type": "BlobSink"
                },
                "enableStaging": false,
                "translator": {
                  "type": "TabularTranslator",
                  "mappings": []
                },
                "parallelCopies": -1,
                "preserveHierarchy": false
              },
              "inputs": [
                {
                  "referenceName": "BlobDataSet",
                  "parameters": {
                    "batchId": {
                      "value": "@trigger().outputs.windowStartTime"
                    }
                  }
                }
              ],
              "outputs": [
                {
                  "referenceName": "BlobDataSet"
                }
              ]
            }
          ],
          "parameters": {},
          "variables": {}
        }
      }
    ],
    "integrationRuntimes": [],
    "triggers": []
  }
}