【问题标题】:With SSIS, how do you export SQL results to multiple CSV files?使用 SSIS,如何将 SQL 结果导出到多个 CSV 文件?
【发布时间】:2020-12-09 02:02:03
【问题描述】:

在我的 SSIS 包中,我有一个执行 SQL 任务,它应该返回多达一亿 (100,000,000) 行。

我想将这些结果导出到多个 CSV 文件,每个文件最多有 500,000 行。因此,如果 SQL 任务生成 100,000,000 个结果,我想生成 200 个 csv 文件,每个文件有 500,000 条记录。

可以自动将结果分割成许多导出的 CSV 文件的最佳 SSIS 任务是什么?

我目前正在开发一个脚本任务,但发现它的性能不是很好。我对 SSIS 有点陌生,所以我不熟悉所有可用的不同任务,我想知道是否有另一个可以更有效地完成它。

有什么建议吗?

【问题讨论】:

    标签: sql-server csv ssis


    【解决方案1】:

    静态方法

    首先添加一个数据流任务。

    在数据流任务中添加以下内容:

    1. A 来源:在屏幕截图中的 ADO NET Source。包含检索数据的查询
    2. 条件拆分:您添加的每个条件都会导致一个蓝色的输出箭头。您需要将每个箭头连接到一个目的地
    3. Excel 目标或平面文件目标。取决于您需要 Excel 文件还是 csv 文件。对于 CSV 文件,您需要设置文件连接。

    在条件拆分中,您可以添加多个条件来拆分数据并具有默认输出。

    平面文件连接管理器:

    动态方法

    1. 使用执行 SQL 任务检索变量以启动 for 循环。 (BatchSize、开始、结束)
    2. 添加 for / foreach
    3. 在循环中添加数据流任务,从循环中传入参数。 (您可以使用表达式属性将参数/表达式传递给数据流中的子进程。
    4. 根据来自 for 循环的参数,在数据流任务中使用源获取数据。
    5. 使用基于循环参数的动态名称写入目标 (Excel/CSV)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-02
      • 1970-01-01
      • 1970-01-01
      • 2021-05-19
      • 1970-01-01
      • 2015-07-28
      • 2017-07-24
      相关资源
      最近更新 更多