我正在寻找从Oracle数据库提取一些数据并将其传输到远程HDFS文件系统。似乎有几个可能的方法来实现这一点:将数据从Oracle提取到Hadoop。 Sqoop是一个好主意
- 使用Sqoop。此工具将提取数据,将其复制到网络中并直接存储到HDFS中
- 使用SQL读取数据并存储在本地文件系统中。完成后,将数据复制(ftp?)到Hadoop系统。
我的问题是第一种方法(对我来说工作会减少)会导致Oracle锁定表的时间超过所需时间?
我担心的是,Sqoop可能会在数据库开始查询数据时取消锁定,并且在所有数据都被复制到HDFS之前,这个锁定不会被释放。由于我将提取大量数据并将其复制到远程位置(所以会出现严重的网络延迟),因此锁的使用时间将比所需的时间长。
感谢您的信息,这是真的很有帮助。我得知,一旦查询完成,锁将被释放,但是你知道这是在数据传输到HDFS之前还是之后?这一点很重要,因为转换时间可能很长,我不希望锁持续时间超过他们需要的时间。 – Stormcloud