我需要将一些数据从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"
属性?
除了hive表之外,您可以使用hcatalog表,但是您必须提供target-dir位置。
您需要在HDFS中具有写入权限才能导入数据。大多数情况下,hdfs:/// tmp /目录将具有对所有用户的写访问权。将其用作目标目录并运行命令。