gpt4 book ai didi

oracle - 将数据从 Oracle 提取到 Hadoop。 Sqoop 是个好主意吗

转载 作者:可可西里 更新时间:2023-11-01 16:07:06 25 4
gpt4 key购买 nike

我想从 Oracle 数据库中提取一些数据并将其传输到远程 HDFS 文件系统。似乎有几种可能的方法可以实现这一点:

  1. 使用 Sqoop。该工具将提取数据,通过网络复制并直接存储到 HDFS
  2. 使用 SQL 读取数据并将其存储在本地文件系统中。完成后,将数据复制(ftp?)到 Hadoop 系统。

我的问题是第一种方法(对我来说不太有效)会导致 Oracle 锁定表的时间超过所需时间吗?

我担心的是,当 Sqoop 开始查询数据时,它可能会在数据库上锁定,并且在所有数据都复制到 HDFS 之前不会释放此锁定。由于我将提取大量数据并将其复制到远程位置(因此会有显着的网络延迟),锁将保持比其他方式所需的更长的时间。

最佳答案

  • Sqoop 在 Oracle 数据库上发出通常的选择查询,它确实如此与 select 查询相同的锁。没有额外的额外锁定由 Sqoop 执行。

  • 数据将在多个并发任务(映射器)中传输。任何昂贵的函数调用会给你的数据库服务器。高级功能可以锁定某些表,防止 Sqoop 并行传输数据。这会对传输性能产生不利影响。

  • 要进行高效的高级过滤,请在您的导入之前的数据库,将其输出保存到临时表中,然后运行 Sqoop 将临时表导入到 Hadoop 中,无需使用 —where 参数。

  • Sqoop 导入与跨网络复制数据无关。Sqoop 存储在一个位置并基于复制因子集群HDFS复制数据

关于oracle - 将数据从 Oracle 提取到 Hadoop。 Sqoop 是个好主意吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35435205/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com