2

我正在尝试使用 SSIS 获取一个表,以获取 SQL Server 数据库的每个表中每个字段的缺失值百分比。

理想情况下,我想在另一个数据库中创建一个包含 4 个字段的新表

表/字段/类型/PctMissingValues

表格的每个字段都有一行。类型将是字段类型

我的想法是使用 foreach 循环容器循环遍历表和字段,在容器内部有一个数据流任务,包括 OLE DB Source > Aggregate > OLE DB Destination 但我不知道如何做到这一点,我是新手一般的 SSIS 和 ETL

4

2 回答 2

2

以下 SQL 查询在数据库中为每列生成一个查询,该查询计算总行数和值为 NULL 的行数。

您可以将其加载到一个变量中并在 SSIS 中循环遍历它,每次运行每一行中的语句并将查询的结果表单记录到另一个表中。

SELECT 
 OBJECT_SCHEMA_NAME(C.object_id) AS TableSchema
,OBJECT_NAME(C.object_id) AS TableName
,C.name AS ColumnName
,'SELECT COUNT(*) AS TotalRows, COUNT(IIF([' +C.name+ '] IS NULL,1,NULL)) AS NullRows 
    FROM [' + OBJECT_SCHEMA_NAME(C.object_id) + '].[' + OBJECT_NAME(C.object_id) + ']' AS CountQuery
FROM sys.columns AS C
INNER JOIN sys.tables AS T
    ON C.object_id = T.object_id
于 2019-10-24T14:16:30.433 回答
1

您可以使用SSIS 数据分析任务来获取表中的 NULL 值比率。网上有很多链接可提供分步指南:

于 2019-10-24T22:04:27.740 回答