我们的网站作为软件即服务为许多客户运行.
他们要求能够在我们的数据库中导入他们的数据.由于数据库有许多客户,因此每个客户都会对哪些字段映射到需要转换的内容和需要转换的内容有不同的需求.
我们可以编写自己的映射工具并执行BULK Insert,这没关系.
我从来没有使用SSIS,但已经读到这是它的功能.如果是这样,我们如何让他们访问SSIS?它是否像报表生成器,您可以下载"用户界面",客户可以这样做(只是......他们不是通过Excel的计算机文化),或者我们是否必须对程序包进行编程(在这种情况下也可以它自己)?
他们的数据可能是CSV或Excel.
SSIS不是客户工具.它很复杂,对ETL过程有很深的理解.典型客户用户有0%的机会使用它创建导入.
我们有数百个使用SSIS的进口和接近10的员工来创建和监控它们.所有资深专业人士.如果你正确地做这件事,这不是简单的事情.
我们的开发模式是我们创建一个标准包来完成客户最常需要的工作.如果他们想要使用标准,我们就要求他们以标准格式向我们发送文件,以便我们可以挂钩导入.我们使用父包和子包来执行此操作,sowe可以更改每个客户的配置.如果使用标准流程,我们不允许人们发送Excel文件.至少得到CSV,如Excel和SSIS一样,不能很好地协同工作.管道分隔的文本文件是最好的.这是最便宜的选项,因为连接标准文件的新父包比创建自定义包所需的时间少得多.
其他客户需要自定义导入.我们也这样做,但为他们收取更多的钱,因为他们将花费超过两倍的时间.我们现在为新客户做的定制进口和出口估计超过2000小时(这是多次进口和出口).在一次导入上花费超过100小时的开发时间并不罕见.这不是一个快速或廉价的任务.如果他们为您提供Excel文件,则估算成本的成本是CSV或文本文件的两倍.Excel导入真的很糟糕.一旦他们明白它的成本更高,大多数地方都不会提供Excel文件.
不要只是为生产表创建批量插入.这是解决数据完整性问题的方法.(来自Excel和csv的数据非常糟糕,比通常来自数据库的数据差得多.)文件中的数据需要暂存和评估数据问题,并在可能的情况下进行清理.我们的包将错误数据发送到异常表,因此客户端可以知道需要修复的内容(我们将异常通过电子邮件发送给客户端).我们还对电话号码等事情做了一些相当标准的清洁工作,以确保它们正确无误.某些类型的错误会导致整个导入失败.您需要确定什么是好文件以及哪些错误是问题的要求.根据数据类型的不同,这些可能会有很大差异.
客户需要了解他们在发送文件时能做什么和不能做什么.第一条规则是任何文件结构更改都是编程更改,客户端将负责进行更改,并且必须事先批准更改并给出时间,就像任何其他编程任务一样.文件struture没有最后一刻的文件更改.这些将导致进口的自动化.一旦他们意识到这些变化成本高昂并且导致他们的数据无法立即获得,大多数客户将尽力将这些变更保持在最低限度.
始终对进行导入工作以及追踪导入错误和确定原因所需的支持时间收费.一般来说,一旦导入是稳定的并且在prod上,问题很少是代码中的错误,它几乎总是文件中的错误数据的问题.但是,客户端需要确切地知道哪些数据是坏的以及为什么.顺便说一句,在设置进程时,永远不要在导入后抛弃原始文件,alawys将其保存在存档中.您最终需要研究一些可能在几个月或几年前导入的错误数据,并且您需要这些文件来证明您的过程没有错,他们的数据是.
导入就像任何其他项目一样.它们应该在源代码管理中,并且应该具有与其他代码相同的QA测试级别.他们应该进行代码审查.
当您的系统包含大量数据导入时,您需要了解数据对于产品的成功或失败至关重要.客户端因数据问题不好而离开,而不是因为笨拙或难以使用的用户界面.如果数据是您业务的命脉,您应该有专家来处理数据.在数据上花费的资金和开发时间应该大于每个广泛处理数据的应用程序中的应用程序,特别是如果它以任何方式处理隐私问题,法律或监管问题和/或金钱.数据将决定一个在范围上不是微不足道的应用程序.
| 归档时间: |
|
| 查看次数: |
61 次 |
| 最近记录: |