excel - 当平面文件中的列和行不匹配时,如何解决(使用)ETL

标签 excel csv ssis etl flat-file

我有 2 个大文件,一个 Excel 电子表格和一个 csv 文件,这些文件很乱,但仍然需要上传到表格中。我正在学习如何使用 SSIS。假设列和行看起来像这样..

第一个 Excel 电子表格(文件扩展名 .xlxs)...

  ID    Name    GroupName City        Time        Price Date
  A1    South   Group1    London      10/06/2018  $4.50 13.30
  A2    North   Group2    New York                $60   10/07/2018  09:00  AM  

图1

第二个 Excel 电子表格(文件扩展名 .csv)...

ID  Name    GroupName   City         Date         Time   Price  
A3  East    Group3      Paris        09/09/2017   $5.00  03:00  AM   
A4  West    Group4      Berlin                    01/05/2018    $12.50  18:00

图2

如果您查看图 1 中的 ID A2,您将在不同的列中看到日期为 9.00,然后是 AM。你如何解决这样的问题?这是一个示例,因此每列中的时间数据是随机不同的。另请注意图 2 中的 A4

我对脚本任务Foreach循环容器有一定程度的熟悉。

我在网上搜索发现this网站....

这就是我正在寻找的东西。

现在已经使用这些列名称创建了一个表

ID, Name, GroupName, City, Date, Time and Price.

所以理想情况下,当数据加载到表中时,它应该看起来像这样......

  ID    Name    GroupName   City         Date         Time   Price  
  A1    South   Group1      London       10/06/2018   13.30   $4.50           
  A2    North   Group2      New York     10/07/2018   09:00AM $60 
  A3    East    Group3      Paris        09/09/2017   03:00AM $5.00  
  A4    West    Group4      Berlin       01/05/2018   18:00   $12.50

我不知道如何解决这个问题。

请注意:我只想知道我需要使用哪些 SSIS 工具箱组件。一旦我知道了,我会尝试解决这个问题。这就是没有代码示例的原因。

提前致谢。

更新

谢谢哈迪。如果没有人介意,我会保持此线程开放,并在 SSIS 在 VS 2019 中完全可用时进行更新,并有机会找到解决方案。

最佳答案

我认为没有简单的解决方案。但我会尝试给出一些建议:

  1. 将 Excel 文件转换为 csv 文件
  2. 在平面文件连接管理器中,仅在类型为 DT_STR 且长度 = 4000 的列上定义
  3. 在数据流任务中添加一个脚本组件来分割每一行并验证每个列值并将其分配给相关的输出列

您可以引用以下答案来了解更多信息,因为它包含有关当数据结构不很好时如何从平面文件读取数据的有用信息(即使情况不同)

关于excel - 当平面文件中的列和行不匹配时,如何解决(使用)ETL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56651651/

相关文章:

ssis - DTExec : The package execution returned DTSER_FAILURE (1) in SSIS package execution

c# - 去除 Excel 工作表的非法字符

vba - Excel 自动筛选,复制选择,粘贴到新工作表

python - 打印 csv 文件中的信息

sql-server - 即使任务失败如何跳过SSIS包失败

c# - CRM 4 方法的模拟 CRM 2011 中的 CrmService.CreateAsync(UpdateAsync)

excel - 如何增加复选框的大小?

excel - 为谷歌表格中的一个单元格创建多个下拉列表?

csv - 使用 Drive v2 API 将 CSV 上传到 Google Drive 电子表格

c# - 转换 CSV 中的单个数据行,如 C# 中的字符串