我希望从 Oracle 数据库中提取一些数据并将其传输到远程 HDFS 文件系统。似乎有几种可能的方法可以实现这一目标:
- 使用 Sqoop。该工具将提取数据,通过网络复制并将其直接存储到 HDFS
- 使用 SQL 读取数据并存储在本地文件系统中。完成后,将数据复制(ftp?)到 Hadoop 系统。
我的问题是第一种方法(对我来说工作量较小)会导致 Oracle 锁定表的时间超过所需时间吗?
我担心的是,当 Sqoop 开始查询数据时,它可能会在数据库上取出一个锁,并且在所有数据都复制到 HDFS 之前,这个锁不会被释放。由于我将提取大量数据并将其复制到远程位置(因此会有很大的网络延迟),因此锁定将比其他情况下需要的时间更长。