复制数据工具,将数据从Azure SQL数据库导出到Azure存储中

363 阅读8分钟

DBA可能在不同的环境中定期导入、导出。你可能会收到指定格式的数据,以便将其导入到数据库表中。

源数据可以是各种格式,如JSON、CSV、ORC、TXT、EXCEL、Parquet。Azure SQL数据库是在云中存储结构化数据的一个流行选择。你可能会将这些EXCEL或其他格式的文件存储到Azure blob存储中。你也可以定期从第三方获得数据,定期导入Azure数据库。

有不同的方法将数据导入Azure数据库。在文章《Azure Automation:使用Azure Logic Apps将数据从Azure Blob Storage导入Azure SQL数据库中,我们探讨了使用逻辑应用程序导入数据的问题。

本文将使用Azure数据工厂将数据从Azure SQL数据库填充(导出)到Azure blob存储。

前提条件

  • **Azure数据存储中的目标数据文件。**你应该有一个存储账户和blob容器来存储Azure数据库的数据

    • 存储账户:sourcedataimport
    • Blob容器:sourcedata

    Sample Excel sheet

  • 源Azure SQL数据库。 你需要一个活跃的Azure数据库来从源文件导入数据

    • 服务器名称: azuredemosqldemo.database.windows.net
    • 数据库: azuredemodatabase

    Azure SQL Database

Azure数据工厂

我们需要一个Azure数据工厂实例来填充数据。为此,请导航到Azure服务中的数据工厂。

Data Factories

如果你有一个现有的数据工厂实例,你可以使用它。否则,请点击创建。输入资源组、区域、名称和版本。

Create data factory

在下一页,Git配置,选择选项 -稍后配置Git。这个选项跳过了用Azure DevOps或GitHub配置Git仓库的过程。

Configure Git later

部署Azure Data Factory实例,你会看到以下概览页面。

Azure data factory dashboard

向下滚动并点击打开Azure Data Factory工作室。

Open Azure Data Factory studio

它会打开另一个浏览器标签,并给出以下页面。

Data Ingest

Azure数据工厂中的复制数据工具可以从90多个数据源中以最佳方式进行数据导入。

  • 它简化了你不了解链接服务、管道、数据集、触发器的数据导入过程。
  • 复制数据工具会自动创建数据工厂资源,以便在选定的目的地或汇入地数据存储中复制数据库。
  • 你可以在编写的时候验证数据。这有助于在开始时避免任何潜在的错误。
  • 它还提供了编辑数据工厂资源的灵活性,以便进行定制和实施复杂的业务逻辑。

点击Ingest瓦片 ,启动复制数据工具。你有两个选项。

  1. 内置复制任务。内置的复制任务有预先配置的复制任务,它不需要太多的定制。
  2. **元数据驱动的复制任务(预览)。**元数据驱动任务允许你配置参数化的管道,外部控制表,用于管理大规模的数据拷贝

Built-in copy task

选择内置复制任务并点击下一步。

Copy data tool source and destinations

在这里,我们需要创建源数据存储和目标数据存储的连接。

源数据存储

  • 源类型。从下拉选项中选择Azure SQL数据库
  • 连接。点击+新连接,并指定一个连接名称
    • 在这里,我们选择Azure订阅,逻辑SQL服务器实例和Azure数据库名称

      New Azure SQL Database connection

    • 选择SQL认证,并输入连接到Azure数据库的用户名和密码

    • 点击测试连接以验证与Azure数据库的连接是否成功

Test connection

单击 "创建"。在下一页,它列出了现有的数据库表。你可以选择表的数据源。例如,我选择了SalesLT模式中的以下表。

Select tables for export

你也可以使用查询从一个表导出数据或连接多个表。

Query tables

点击 "下一步"。如果你想过滤数据或指定属性,如查询超时、隔离级别、分区选项,请在高级页面中指定。

Apply filters

目标数据存储

我们需要选择Azure blob存储,以便在目标数据存储中以CSV格式导出这些表。

Destination data store

添加一个新的连接,输入连接名称、Azure订阅、存储账户名称。你可以测试该连接,以验证复制数据工具可以连接到目标Azure Blob存储。

New connection for Azure blob storage

单击 "创建",它将带你回到目标数据存储页面。在这里,你可以看到我们配置的目标类型和连接。在文件夹路径中,浏览到我们要以CSV格式导出表格的blob容器。

Destination data connection

默认情况下,它使用文件名后缀为.txt。根据我们的要求,我把它改为CSV。

File format and suffix

在下一页,你可以配置文件格式设置。可用的选项如下。

  • 文件格式(文本格式、AVRO格式、JSON、ORC和Parquet)。
  • 列分界符(默认 - 逗号(,))。
  • 行定界符
  • 在文件中添加标题。要使用第一行作为列标题
  • 压缩类型
  • 编码

File format settings

在设置页面,输入任务名称和描述。你可以在这个页面上配置一致性检查、日志记录。 在演示中我们将跳过这些选项。

Task name and descriptions

在最后一页,在Azure Data Factory v2的复制数据工具中查看数据流和到目前为止完成的配置。

View and validate summary

点击下一步,它就会部署工作流。在最初的步骤中,你会创建一个数据集、管道和它们的验证。

Validate copy runtime environment

它完成了从Azure数据库的数据导出,并将各个表作为一个单独的CSV文件存储在blob存储中。

Deployment status

你可以到存储账户和blob容器中查看这些导出的表。

View exported files

你可以点击单个文件,将其下载并打开Microsoft excel来查看其数据。例如,在下面的截图中,我们有SalesLTCustomer.CSV的数据

Download file and view its data

监控Azure数据工厂中的管道运行

你可以使用ADS仪表板监控当前运行的管道或工作流程。点击作者和管线运行。默认情况下,它显示最近的24个数据。你可以改变过滤器以获得所需的数据。

在下面的截图中,我们看到管道的状态。你也可以用触发的列来区分手动触发和预定触发。

Monitor pipeline runs in Azure Data Factory

点击管道名称,获得组件的图形视图。

pipeline name

向下滚动,得到活动运行历史。例如,我们将数据从Azure SQL数据库表中导出到Azure blob存储。因此,在活动运行中,它显示了单个表的来源和目的地细节。

activity run history

要获得进一步的细节,将鼠标指针悬停在任何活动行上。它给出了以下选项。

  • 输入
  • 输出
  • 细节

activity row

输入。点击输入选项卡,获得源、目的地和文件格式的JSON数据。

Input data

输出

在输出部分,你可以查看信息,如读取的行数、复制的行数、读取的数据、写入的数据、计费时长、吞吐量、Azure SQL数据库的来源和目的地细节。

  • ***注意:*关于定价部分的更多细节,可以参考数据工厂定价

Output data

细节。 细节部分以图形方式概述了源、目的地、任务状态、Azure集成服务运行时间、吞吐量、开始时间、结束时间。你可以用这个窗口来查看你从输入和输出选项卡上得到的细节。

Details page

你也可以在甘特图中查看活动信息。点击顶部的甘特图,它将表格式的活动日志转换为图形格式。点击图表,显示JSON格式的信息,如下图所示。

Activity runs graph

总结

本文探讨了Azure Data Factory复制数据工具,将Azure SQL数据库数据导出为CSV格式。 它将这些CSV文件存储到Azure blob存储中。这个复制数据工具有90多个内置容器,可以在管道项目中配置和使用,用于数据传输或转换。你可以安排管道在指定的时间和频率自动执行它。

Rajendra Gupta

你好!我是Rajendra Gupta,数据库专家和架构师,帮助企业快速有效地实施Microsoft SQL Server、Azure、Couchbase、AWS解决方案,修复相关问题,以及性能调优,拥有超过14年的经验。

我是《DP-300 Administering Relational Database on Microsoft Azure》一书的作者。我在MSSQLTips、SQLShack、Quest、CodingSight和SeveralNines上发表了650多篇技术文章。

我是最大的关于单一主题的免费在线文章集之一的创建者,他的50篇关于SQL ServerAlways On Availability Groups的系列文章。

基于我对SQL Server社区的贡献,我在2019年、2020年和2021年连续被评为SQLShack著名的年度最佳作者(排名第二),并在2020年获得MSSQLTIPS的冠军奖。

个人博客
www.dbblogger.comI,我一直对新的挑战感兴趣,所以如果你需要咨询帮助,请联系我[:rajendra.gupta16@gmail.com](mailto:rajendra.gupta16@gmail.com)

查看Rajendra Gupta发表的所有文章

Rajendra Gupta