1. 程式人生 > >Sqoop增量抽取Oracle資料,最近8個小時的資料未被抽取

Sqoop增量抽取Oracle資料,最近8個小時的資料未被抽取

在使用sqoop增量抽取資料時,在不指定m的情況下,匯出日誌中可以看到添加了截止時間,但這個時間並不是系統時間,經過多次比較發現,這個時間比當前系統時間早8個小時。因此懷疑是時區問題。


檢查Oracle中的回話時區和資料庫時區:

SQL> SELECTSESSIONTIMEZONE FROM DUAL;

SESSIONTIMEZONE
---------------------------------------------------------------------------
+08:00

會話時區是北京時區

SQL> SELECTDBTIMEZONE FROM DUAL;

DBTIME
------
+00:00

可以看出正好相差8個小時,因此將資料庫時區修改為東8區:

改變資料庫時區
SQL> ALTER DATABASE SET TIME_ZONE = '+8:00';

關閉資料庫

SQL> shutdownimmediate
重啟資料庫
SQL> startup
再次檢查時區,如下所示二者已經一致:

SQL> SELECT TZ_OFFSET(SESSIONTIMEZONE),TZ_OFFSET(DBTIMEZONE) FROM DUAL;

TZ_OFFS TZ_OFFS

------- -------

+08:00    +08:00

再次執行sqoop指令碼,此時已經可以正常抽取。

【參考】https://www.cnblogs.com/jimeper/archive/2013/04/17/3026810.html