我正在尝试运行一个 sqoop 作业以将数据从 postgresql 摄取到 hdfs,但我被困在某个点上。
Sqoop在我的“ WHERE ”语句的末尾添加“ AND (1=0) ”,以便在摄取之前获取元数据。
sqoop import
--connect jdbc:postgresql://randomtexthere.com:5432/test
--username user
-P
--query
"
SELECT *
FROM table1 pr
INNER JOIN
table2 fr
ON pr.id = fr.id
WHERE fr.another_id > 12345 AND fr.another_id < 123456 AND \$CONDITIONS
"
--hcatalog-database test
--hcatalog-storage-stanza "STORED AS PARQUET"
--hcatalog-table table1--split-by id
添加上述命令后,查询永远不会完成。(在 Sqoop 和 DBeaver 中)
但是,此查询仅在我设置 SET OPTIMIZER = ON 后才有效(在 DBeaver 中)
SET OPTIMIZER = ON;
SELECT *
FROM table1 pr
INNER JOIN
table2 fr
ON pr.id = fr.id
WHERE fr.another_id > 12345 AND fr.another_id < 123456 AND (1=0);
我正在寻找在我的 sqoop 会话中设置优化器参数的解决方案。
有没有办法做到这一点?