首页 > 解决方案 > 将大型数据集从 SQL Server 转换为 Azure SQL 的方法?

问题描述

我有一个包含 5 亿行的大表,需要将其导入 Azure SQL 数据库。

通过将表转换为 .CSV 文件并将其作为表导入 Azure SQL 数据库,我能够成功导入较小的集合。但是,我必须导入的表很大并且想知道如何做同样的事情。

以下是导入小表的代码示例。

    file_location = "/FileStore/tables/data.csv"
    file_type = "csv"

    # CSV options
    infer_schema = "false"
    first_row_is_header = "true"
    delimiter = ","

    # The applied options are for CSV files. For other file types, these will be ignored.
    df = spark.read.format(file_type) \
      .option("inferSchema", infer_schema) \
      .option("header", first_row_is_header) \
      .option("sep", delimiter) \
      .load(file_location)

    display(df)


permanent_table_name = "data"

df.write.format("parquet").saveAsTable(permanent_table_name)

标签: sql-serverazureazure-data-lake

解决方案


由于您的表有大量数据(大约 500 GB),也许您可​​以考虑使用Data Factory

以下是使用 ADF 可实现的 Copy 性能和可扩展性在此处输入图像描述

有两个教程可以帮助你:

  1. 使用 Azure 数据工厂将数据复制到 SQL Server 和从 SQL Server 复制数据
  2. 使用 Azure 数据工厂将数据复制到 Azure SQL 数据库或从中复制数据

您还可以通过此文档复制活动性能和可伸缩性指南来提高复制性能。

希望这可以帮助。


推荐阅读