【问题标题】:Count how many fields where cleansed and which fields on SSIS计算清理了多少字段以及 SSIS 上的哪些字段
【发布时间】:2020-06-25 21:32:19
【问题描述】:

我正在做一个练习,我必须从平面文件源中清理数据并将其写入我的数据库。我已经设法通过为每个字段使用一些数据质量规则来清理所有字段,并且还生成错误代码,当规则被破坏时我将其写入不同的表。

我的问题是,对于练习的最后一步,我必须生成一些 Power BI 图形,其中显示了从源中修复了多少字段以及清理了哪些字段。我唯一想到的是将数据库表与平面文件源进行比较,或者可能对脚本组件做一些事情,但我并不认为这些是真正好的解决方案。

有人遇到过这个问题吗?如果有人可以为我指出这样的信息,那就太好了。谢谢!

【问题讨论】:

  • 您的文件有多大(以 MB 或 Gbs 为单位)?
  • 几 kb,它只是一个 .txt,有 10 行 8 个字段

标签: sql-server ssis etl sql-server-data-tools


【解决方案1】:

如果我遇到类似问题,我将分三步进行:

  1. 导入数据而不对临时表进行任何转换
  2. 清理数据并将其加载到目标表中
  3. 比较暂存表和目标表以获取修复了多少值。

【讨论】:

  • 这似乎是一个很好的解决方案,但现在我有另一个疑问。你如何比较这两个表?使用类似存储过程的东西?还是 SSIS 中的东西?
  • @bojackhorseman99 你必须为每一列写一个查询(注意如果数据不包含唯一ID,你必须添加一个才能使用它)
【解决方案2】:

从设计的角度来看 - 在开始清理之前建立一个密钥是核心。

使用可以使用 SSIS 派生列转换来创建业务键,该键是可用字段的串联以创建唯一键,使用 FindString 函数和字符串函数。

与上述步骤类似,在临时表中添加一列或使用派生列(取决于您是使用 sql cleanup 还是 ssis 任务进行清理)来指示它是否已被清理。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-30
    • 2016-02-01
    • 2023-02-21
    • 1970-01-01
    • 1970-01-01
    • 2011-11-11
    • 2011-05-30
    • 1970-01-01
    相关资源
    最近更新 更多