gpt4 book ai didi

hadoop - Sqoop2-在导入时如何集成自定义的预处理/后处理代码(例如加密)

转载 作者:行者123 更新时间:2023-12-02 21:52:26 25 4
gpt4 key购买 nike

在执行从关系数据库到HDFS的Sqoop导入时,我已经在Hadoop中使用Sqoop 1集成了自定义预处理代码。基本上,我使用codegen命令创建对象关系映射类,然后修改该类源代码以嵌入我的自定义预处理代码。通过这种方法,当从JDBC结果集中读取字段并且在对象实例中设置字段值之前,我能够修改readFields()方法以处理字段值(在这种情况下,通过加密敏感字段)。

然后,我在执行Sqoop导入操作时使用了这个经过修改的ORM类文件。最终结果是,数据中的某些字段在写入HDFS之前已由我的自定义代码加密。

例如,修改的ORM类:

public class Customer extends SqoopRecord  implements DBWritable, Writable {

...

public void readFields(ResultSet __dbResults) throws SQLException {
this.__cur_result_set = __dbResults;
this.id = JdbcWritableBridge.readInteger(1, __dbResults);
this.last_name = JdbcWritableBridge.readString(2, __dbResults);
this.first_name = JdbcWritableBridge.readString(3, __dbResults);

# encrypt cc (credit card) field, before setting value in object
this.cc = encrypt(JdbcWritableBridge.readString(4, __dbResults));
}

...
}

这种方法在Sqoop 1中效果很好。

但是我看不到在Sqoop 2中集成此类自定义预处理代码的任何方法。在Sqoop2中没有 codegen选项。 Sqoop 2中是否可以使用UDF或其他自定义连接器方法来在Sqoop导入作业期间处理字段?如果是这样,您能给我指出一些示例或文档,以显示其在Sqoop 2中的工作方式吗?

最佳答案

Sqoop 2没有执行任何代码生成,因此,没有“codegen”工具或如何插入自己的代码的方法。我们正在考虑引入一个简单的转换阶段,在该阶段可以实现类似的功能,但Sqoop 2中尚不提供此类功能。

关于hadoop - Sqoop2-在导入时如何集成自定义的预处理/后处理代码(例如加密),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19148039/

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