做ETL抽取的时候,会锁数据源的库表吗?
今天客户说自己的业务系统崩溃了 - -
说是因为半夜ETL抽数据时,怎么着把数据源的数据库给锁住了,后来ETL没有成功,就把业务系统给弄死了,我听的觉得好奇怪啊,没遇见过这种情况啊,按说抽数据只是读操作,会锁数据源表吗?
如果ETL没有成功,假如进入了一个死循环,一直在跑,是不是会将数据源的业务系统弄崩溃呢?
请教各位有没有类似经历呢?谢谢~
[解决办法]
ETL只是对源表进行数据抽取,但不会对源表数据进行任何操作或改动。
至于会不会锁表,这要看源表是否是生产数据,ETL程序是否对源表进行了锁表使其独立运行ETL作业的设置或处理。
如果想知道具体原因,建议楼主把源数据的数据库类型、ETL工具(如果是手写的ETL,是哪种语言写的)贴出来,再结合一些实际,再作进一步分析!
[解决办法]
锁不锁需要看业务系统采用的是什么样的数据库系统。oracle读数据从来都不锁表的
[解决办法]
支持楼上回答,DB2有可能会锁表。
但是一般做etl的时候都是深夜,会有相应的时间戳去取数据,锁机制应该会是最低的,不应该锁表才对。
[解决办法]
要具体问题具体分析,
而且重要的一点是要看什么数据库了
像INFORMIX,DB2都会有锁表的情况出现