是否可以使用 sqoop 命令“导入表”将表从 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>'
我想在表中添加一个时间戳列,以便我知道何时加载了该数据。可能吗?
提前致谢
最佳答案
您可以使用自由格式查询导入而不是表导入,并调用时间戳函数:
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(数据类型更小但精度更低)
关于oracle - 是否可以使用 sqoop 导入表并添加额外的时间戳列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48049528/