0

我是 SSIS 开发的新手。我需要 SSIS 专家的一些指导。以下是问题列表:

我们有大小从 1GB 到 25GB 的 txt 或 dat 类型的文件,带有制表符分隔。有时,这些文件可能包含无效行、无效数据类型或大量字符串值,导致将文件数据导入 SQL 表时失败

任何人都可以提供使用如何在加载到实际的 SQL 表之前对文件执行数据分析,例如

  • 列中具有 NULL 值的无效行数 文件中存在的行数 列中数据类型值错误的行数 例如:文件有可能
    在 int 字段中保存字符串数据
  • 有时列之间的行分隔符例如:如果文件中有 10 列,如果在 5-6 列之间有行分隔符,这导致当前行数据从 6-10 列移动到下一行。应在 Data Profiler 中检查此方案。
    • SSMS 中是否有办法识别每行中的所有列都具有相等的列长度。如果它不存在抛出错误。但识别这些行需要更快
4

2 回答 2

0

I would import text files into SQL tables with all columns set to NVARCHAR 4000. IMO this is best practise even in production - you can never trust text files.

Having done that you can point the SSIS Data Profiler tool at the tables. With minimal effort it will give you a rich look at the data in the files.

Note SSIS cannot handle your issue with row delimiters inside columns. If your source files are of such poor quality I would abandon the SSIS Flat File Source and consume the data using a Script Task as a source, with carefully crafted Split functions etc to try to parse the files. This is not a trivial task.

Good luck!

于 2014-05-09T03:57:27.060 回答
0

当您打开数据流任务时,您不会将数据加载到现有表中,而是在目标任务中创建新表。它会自动从您的源文件中创建一个具有完全相同数据类型/大小的表。之后,您可以转换数据并根据需要对其进行操作,然后将其加载到最终表格中。

于 2020-07-24T17:00:58.063 回答