oracle—是否可以导入带有sqoop的表并添加额外的timestamp列?

rm5edbpk  于 2021-05-29  发布在  Hadoop
关注(0)|答案(2)|浏览(421)

是否可以使用sqoop命令“import table”将表从oracle数据库导入hadoop集群,并添加一个带有当前时间戳的额外列(用于故障排除)?到目前为止,我有以下命令: sqoop import -Dorg.apache.sqoop.splitter.allow_text_splitter=true --connect jdbc:oracle:thin:@//MY_ORACLE_SERVER --username USERNAME --password PASSWORD --target-dir /MyDIR --fields-terminated-by '\b' --table SOURCE_TABLE --hive-table DESTINATION_TABLE --hive-import --hive-overwrite --hive-delims-replacement '<newline>' 我想在表中添加一个timestamp列,以便知道数据何时被加载。有可能吗?
提前谢谢

cigdeys3

cigdeys31#

您可以使用自由形式的查询导入而不是表导入,并调用timestamp函数:

sqoop import -Dorg.apache.sqoop.splitter.allow_text_splitter=true --connect jdbc:oracle:thin:@//MY_ORACLE_SERVER --username USERNAME --password PASSWORD --target-dir /MyDIR --fields-terminated-by '\b' ----query 'SELECT a.*,systimestamp FROM SOURCE_TABLE a' --hive-table DESTINATION_TABLE  --hive-import --hive-overwrite --hive-delims-replacement '<newline>'

也许您可以使用sysdate代替systimestamp(较小的数据类型,但精度较低)

kgsdhlau

kgsdhlau2#

您可以使用sqoop创建一个临时配置单元表,然后使用带有额外必需列的旧配置单元表创建一个新的配置单元表。

相关问题