1

我有一个包含以下列的 csv 文件:

Email | Date | Location

我几乎想把它直接扔到数据库表中。问题是文件中的位置值是字符串 - 例如:“波士顿”。我要插入的表具有整数属性LocationId

所以,在我的数据流的中途,我需要做一个数据库查询来获取Location对应的LocationId。例如:

SELECT Id as LocationId FROM Locations WHERE Name = { location string from current csv row }

并将其添加到我当前的列集中作为新值“LocationId”。

我不知道该怎么做 - 我尝试了查找,但这意味着我必须将查找放在单独的数据流中 - 我的 csv 文件中的列似乎不可用。

我想使用缓存,因为相同的位置重复了很多次,并且我不想在不需要时为每一行运行选择。

总之:

  1. 我如何才能在数据流的一部分中坚持查找转换(来自不同的源,sql),并将输出与 csv 派生列合并?
  2. 查找是否使用了错误的转换?
4

3 回答 3

3

查找转换将为您工作,它具有缓存,您可以将所有输入列保存到输出,并从您在查找转换中使用的查询中添加列。

您也可以在此处使用合并连接,在某些情况下它是更好的解决方案,但是它会带来额外的开销,因为它需要对其输入进行排序。

于 2013-03-20T10:56:19.100 回答
1

检查这个。

右键单击查找转换->转到显示高级编辑器->转到输入和输出属性。

在这里您可以添加新列,也可以更改现有列的数据类型。有关如何使用查找的更多信息,请单击此处

于 2015-08-26T05:49:45.710 回答
0
  1. 打开平面文件连接管理器,转到高级选项卡。
  2. 单击“新建”以添加新列并修改属性。
  3. 现在回到平面文件目标输出,右键单击 > 映射 > 将查找列映射到新列。
于 2020-02-03T07:50:51.753 回答