Sky*_*Sky 0 sql-server migration ssis csv
我想知道在 SSIS 中是否有一种方法可以比较两个没有引用键的 csv 文件(具有相同的结构)以使记录唯一。
根据我的意思给你一个更好的画面;在初始加载时,我们将数据从 csv 文件加载到表中,在后续加载中,我们将获得另一个可以有不同记录的 csv 文件(相同格式)。我们应该比较表中的内容与新版本的 csv 文件中存在的内容,并且只加载更改的子集。如果有新记录,应该插入,如果更新,应该更新,如果源中的记录被删除,它应该在表中标记为不活动。
现在我的问题是:
csv文件的数据量相当大,超过2000万条记录!
任何想法表示赞赏。
谢谢,
纳兹拉
如果您将第一个 CSV 加载到表中,则可以轻松地将另一个 CSV 加载到临时表中(大概与“真实”的结构相同)。然后你可以通过
SELECT * FROM staging_table
EXCEPT
SELECT * FROM real_table
;
Run Code Online (Sandbox Code Playgroud)
新 CSV 中缺少的行可能会在EXCEPT. 但是,鉴于暂存表上缺少键(希望不是真正的键 - 从您的问题中不清楚),根据这种比较删除行可能会很痛苦,尤其是在行如此多的情况下。
完成后,您可以删除临时表。
(据我所知,这种方法适用于任何 RDBMS。)
| 归档时间: |
|
| 查看次数: |
5066 次 |
| 最近记录: |