sql-server - 读取单个文本文件并根据记录到其各自表中的列加载的特定值
问题描述
我一直在互联网上寻找解决问题的方法,但似乎找不到任何信息。我有一个大的单个文本文件(1000 万行),我需要创建一个 SSIS 包以根据分配给该记录的事务组将这些记录加载到不同的表中。也就是说,Tx_grp1 将进入 Tx_Grp1 表,Tx_Grp2 将进入 Tx_Grp2 表,依此类推。单个分隔文本文件中有 37 个不同的事务组,记录被插入到该文件中,以了解它们实际发生的时间(按时间)。此外,每个事务组具有不同数量的字段
样本数据文件
- 日期|tx_grp1|field1|field2|field3
- 日期|tx_grp2|field1|field2|field3|field4
- 日期|tx_grp10|field1|field2 .......
任何有关如何进行的建议将不胜感激。
解决方案
这个任务可以用SSIS来解决,只是有一些经验。以下是主要步骤和讨论:
- 为您的文件定义一个平面文件数据源,描述所有列。这里可能出现的问题 - 基于
tx_group
值的不同数据类型的字段。如果是这种情况,我会将所有字段声明为足够长的字符串,然后在数据流中 - 转换其类型。 - 为您将用于存储结果的数据库创建一个 OLEDB 连接管理器。
- 创建一个主数据流,您将在其中处理该文件,并添加一个平面文件源。
- 将条件拆分添加到平面文件源的输出中,并在其中定义与事务组一样多的过滤器和输出。
- 对于每个事务组数据输出 -如有必要,为字段添加数据转换。注意 - 如果需要将字符串转换为 int,则无法更改现有列的数据类型 - 创建一个新列。
- 为每个目标表添加一个 OLEDB 目标。将其连接到适当的事务组数据流,并映射字段。
基本上,你已经完成了。在生产数据库上使用它之前,在测试数据库上彻底测试包。
推荐阅读
- amazon-web-services - 如何从 S3 存储桶中的文件夹中删除带有后缀的图像
- javascript - 如何获取自定义属性(CSS 变量)列表?- 类似`getPropertyEntries()`
- tensorflow - 训练期间如何在 Keras 中使用 get_updates() of optimizers.SGD?
- android - Failed to notify project evaluation listener: ReactNative
- django - Django 使用 Postgres 在 JSONField 中注释计数
- git - error: failed to push some refs to 'https://git.heroku.com/nameless-cliffs-57613.git'
- javascript - 对于异步测试和钩子,确保调用了“done()”;如果返回一个 Promise,确保它解析 puppeteer 和 mocha
- ansible - Ansible Vault:加密以“-”开头的密码
- javascript - 税收和 Javascript 舍入问题
- php - WDSL 连接超时 (1006)