ETL使用随记001——保留特定小数位的数据导出
来源:互联网 发布:excel数据有效性时间 编辑:程序博客网 时间:2024/06/14 17:37
在最近的工作中有需要自动导出数据到CSV文件的情况,这次有点特殊需求的是导出的CSV文件用EXCEL打开后会发现有科学计数法格式的情况,故而需要按特定的小数位导出。
分析整个DATA FLOW TASK,源数据为一个SQL SERVER查询,其结果作为source,目的为文本文件(CSV格式)。
本以为是个简单的问题,所以最简便的方式为从数据源固定数据的小数位,所以通过强制类型转换为decimal(38,9)。经测试时发现结果不对。
分析整个工作流:
1.我们从后往前来追溯问题,从目的(Flat File Destination)来看,文本指向正常的文件,通过检查连接管理器中的目的文件的列属性(Advanced),可以看到该文件的列数据类型为decimal,所以是正确的
2,但此时并不能确认问题不在目的,需要进一步检查目的,选择高级编辑模式,可以查看input and Output properties,可以看到目的的external columns中value列的类型与连接器里的一致,而它的input列的类型却为DT_R8即double型。也就是说源的output引出来的列的类型mapping到目的是double型。造成了问题所在。
3.所以我们进一步检查源,选择高级编辑模式,可以类似的查询输入和输出情况,可以清晰的看到其output默认数值时选用了double型,改正即OK了。
综上所述,我们有以下总结:
1、对于在dataflow task中的数据类型不匹配的问题,可以采用逐层检查的方式确定问题所在。
2、在导出到文本时数据类型会以SQL默认选择的数值类型导出,需要仔细检查是否匹配。
3、数据流组件都有输入和输出属性,这个内部转换是隐蔽的,容易被忽略,如需要特殊设置请检查该处设置。
4、尽量在输入和输出地方设置成一致的数据类型,以避免逐层转换的类型带来的性能代价。
记之。
- ETL使用随记001——保留特定小数位的数据导出
- EF 小数位的保留
- flash保留小数位的方法
- C#保留小数位的方法
- JavaScript保留指定的小数位
- HData——ETL 数据导入/导出工具
- HData——ETL 数据导入/导出工具
- HData——ETL 数据导入/导出工具
- Float,double类型数据保留小数位后几位
- 保留小数位
- 保留小数位
- 解决使用DbContext保存Decimal数据时总是保留小数位2位问题
- 数据库中保留小数位的问题
- 把Decimal变量保留指定的小数位
- JS做计算保留小数位的问题。
- 相除的数值保留小数位
- Java保留小数位的四种方法
- java保留小数位的4种方法
- 股指期货和融资融券短期是利空。
- shader 小知识
- VC多线程编程
- SQL核心语句
- java规约
- ETL使用随记001——保留特定小数位的数据导出
- 一些linux 命令
- samba服务搭建
- IP协议及其相关知识
- JAVA基础知识精华总结
- 一位父亲给女儿的九条人生忠告
- 网上收集的2009年推荐书,存此以备忘
- 检测当前安装的flash player版本
- C# 日期相减