SSIS 将 ADO Net 源聚合到 SQL Server 数据库中

Posted

技术标签:

【中文标题】SSIS 将 ADO Net 源聚合到 SQL Server 数据库中【英文标题】:SSIS Aggregate ADO Net source into SQL Server database 【发布时间】:2021-10-06 10:42:42 【问题描述】:

我有一个 ADO .Net 源,我正在尝试按日期插入行数摘要。

源表有超过十亿行。我只想总结一下当月的行数。

这个查询产生我想要的输出。将 2 列插入 SQL Server 数据库的最佳方法是什么?

SELECT
    g.[ActivityDate], COUNT(*) RecCount
FROM 
    [lab10].[ADONETSource_Integrated] g
JOIN
    vPublic.DimDate AS D ON g.activityDate = d.FullDate
WHERE
    d.FullDate >= CAST(DATEADD(d, (DATEPART(d, DATEADD(m, 0, GETDATE())) * -1) + 1, DATEADD(m, -0, GETDATE())) AS DATE) 
GROUP BY
    g.[ActivityDate]
ORDER BY 
    g.[ActivityDate] DESC

INSERT INTO dbo.OLEDB_Inegrated (activityDate, RecCount)

【问题讨论】:

如果这是在同一个数据库中,我认为“最佳方法”是在数据库中简单地运行 insert/select。这些表是否在同一个数据库中? 【参考方案1】:

您可以将源结果直接连接到 SSIS 中的目标表插入数据。

我使用以下步骤复制了带有示例数据的包。

    创建了一个包含源和目标的数据流。

    将源连接到 ADO.NET 源表并在 SQL 命令下构建查询。 (预览测试结果)。

    创建目标表连接并通过连接源和目标将源映射到目标列。

    执行数据流。

参考:Load data into SQL Database

【讨论】:

以上是关于SSIS 将 ADO Net 源聚合到 SQL Server 数据库中的主要内容,如果未能解决你的问题,请参考以下文章

如何将参数传递给 ssis 中的 ado.net 源?

使用脚本任务创建 ADO NET (ODBC) 数据流源

将动态表传递给 SSIS 中的 ADO.NET 目标

使用 ssis 从 SQL Server 表复制到 Oracle 11g

LDAP SSIS 在 ADO.NET 数据源上引发一般错误

SSIS MySQL ADO.net SQL 任务输入和输出