我有几个问题,请各位专家给予解答,谢谢!
1.Sybase IQ分析服务器实时加载的解决方案是什么?是用Replication Server,还是用在ASE端的触发器,触发load table脚本?希望专家给个思路,谢谢。2.为什么用bcp导数据,ase对ase的速度很快,几万条/秒,而从ase导出的数据文件导入iq则很慢,大概七八百条/秒。这是为什么呢?是iq的相关设置没有设置好吗?盼专家解答?谢谢?
另外用bcp向iq导数据时还会出现数据错位的问题(就是某条记录中的某个字段的数据跑到相邻的字段中,而我设置的数据间隔符也不会和数据冲突的,因为同一个数据文件往ase中导则没有这个问题)。希望专家给与答复,谢谢!
3.load table导入数据。原数据中有空值(该数据中的某个字段为空而不是显示NULL),这个如何导入目标库?谢谢?
[ 本帖最后由 zq5143 于 2008-11-14 13:15 编辑 ] :L :L :L :L :L :L 1.Sybase IQ分析服务器实时加载的解决方案是什么?是用Replication Server,还是用在ASE端的触发器,触发load table脚本?希望专家给个思路,谢谢。
A: Sybase IQ分析服务器实时加载最好的办法就是采取Replication Server + IQ,从source中RS进一个staging,然后批量进IQ,staging采用ASA就可以了,只保留非常少量的数据。
2.为什么用bcp导数据,ase对ase的速度很快,几万条/秒,而从ase导出的数据文件导入iq则很慢,大概七八百条/秒。这是为什么呢?是iq的相关设置没有设置好吗?盼专家解答?谢谢?另外用bcp向iq导数据时还会出现数据错位的问题(就是某条记录中的某个字段的数据跑到相邻的字段中,而我设置的数据间隔符也不会和数据冲突的,因为同一个数据文件往ase中导则没有这个问题)。希望专家给与答复,谢谢!
A: IQ的数据加载是非常快的,可以做到5万条以上,不知道你的怎么那么慢?另外间隔符要选择跟数据内容不冲突的。
3.load table导入数据。原数据中有空值(该数据中的某个字段为空而不是显示NULL),这个如何导入目标库?谢谢?
A: 从哪儿到哪儿? 谢谢flyingpig
1.有关从ASE15到IQ12.7的数据准实时同步,RS确实是个不错的解决方案。但是由于商务上的原因,领导让用ETL工具或脚本的方式来达到增删改数据同步而暂时不用RS。还望高手给予指导思路。
2.对于这个问题厂商建议IQ使用loadtable方式来加载数据,这个方法我已验证,正如flyingpig所说。
3.loadtable是从文本文件往IQ中导。关键是用bcp从源库中导出数据时设置比较复杂的分隔符即可(字段分隔符和行分隔符都要指定)。
再次谢谢flyingpig 补充一下,数据同步的同时,还要做相关的数据拆分、重组等清洗功能。 在目前Sybase厂商推荐的Near-Real-Time loading into IQ的方案又叫:Micro-Batch Replication 。 目前测试的结果是由source到staging,测试结果是80条/秒,表宽65byte,从staging 到IQ,loadtable,5万行/秒。
如果数据有很多的transform,建议用ETL工具或者相关脚本来实现。RS为了速度和实时性,不太支持太多数据所转换。
以下是为什么不用ETL,而用RS的理由:
源数据无法提供增量数据标识
时间戳或其他,如果提供,需要修改数据源的程序
有实时或准实时需求
需求是:“Low-Latency”for 进入Sybase IQ的数据
需要BI项目迅速启动 学习学习{:lh_05:}
页:
[1]