我需要将一些数据从oracle移动到hive,我发现sqoop可能是一个有用的工具。问题是我需要处理一个查询并将结果插入目标数据库的表中。
oracle函数结果-->hivedb.mytable
我发现这个命令:
sqoop import --connect jdbc:oracle:thin:@******:1522/**
--username myUsername --password pwd --query '...'
--hive-import --split-by "myID" --hive-table "hive-table" --hive-database "hive-database"
但我需要指定一个 --target-dir
强制性的,我在hdfs中没有写权限。
只有当我使用--query时才是这样,因为如果我使用 --table
, --target-dir
不需要。
谁知道有没有办法避免这种情况 "--target-dir"
属性是否使用查询?
2条答案
按热度按时间kpbpu0081#
为了导入数据,您需要在hdfs中具有写访问权限。大多数情况下,hdfs:///tmp/目录将对所有用户具有写访问权限。将其用作目标目录并运行命令。
sycxhyv72#
除了hive表之外,还可以使用hcatalog表,但必须给出目标目录的位置。