gpt4 book ai didi

oracle - Sqoop 增量导入和更新

转载 作者:可可西里 更新时间:2023-11-01 16:26:13 24 4
gpt4 key购买 nike

我正在尝试将数据从 sql 导入到配置单元数据库中。目标是使用sqoop import将oracle数据库中的变化更新到hive中。 sqoop命令如下:

sqoop import -D mapred.child.java.opts='\-Djava.security.egd=file:/dev/../dev/urandom' 
--connect jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(LOAD_BALANCE=ON)(FAILOVER=ON)(ADDRESS=(PROTOCOL=TCP)(HOST=)(PORT=1545))(ADDRESS=(PROTOCOL=TCP)(HOST=)(PORT=1545)))(CONNECT_DATA=(SERVICE_NAME=)(SERVER=DEDICATED)))'
--username abcde
--password 1234rgtds
--table Customer_Acc
--columns Name,ID,Address,Date_booking ,Last_update_date
-m 1
--target-dir /final/table
--hive-import
--hive-table tesupd
--map-column-hive Name,ID,Address,Date_booking
--null-string '\\N'
--null-non-string '\\N'
--hive-delims-replacement ' '
--incremental lastmodified
--check-column Last_update_date
--last-value "2009-12-31 12:14:28"

最终输出应该是大于最后一个值的数据,但在上述情况下它是附加数据而不是增量更新数据。

我希望数据被更新而不是附加。

最佳答案

sqoop-import 命令中使用 --merge-key 选项。这将用最新记录替换旧记录。

您也可以使用 sqoop-merge 命令,但应该分两步完成。首先是不带 merge-keysqoop-import 然后是 sqoop-merge

关于oracle - Sqoop 增量导入和更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25388644/

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