在我的数据库中,我有多个表,每个表都是不同的实体类型。我有一个在 hadoop 中使用的 Avro 模式,它是这些不同实体类型的所有字段的联合,加上它有一个实体类型字段。
我想做的是为每个实体类型设置一个带有 DBWritable 的 DBInputFormat,将实体类型映射到组合的 Avro 类型。然后将每个 DBInputFormat 赋予 MultipleInputs 之类的东西,以便我可以创建复合输入格式。然后可以将复合输入格式提供给我的 map reduce 作业,以便所有表中的所有数据都可以由同一个映射器类一次处理。
数据会不断地添加到这些数据库表中,因此我需要能够为每个实体类型/dbtable 配置 DBInputFormat 以仅获取新数据并正确进行拆分。
基本上,我需要 DBInputFormat 或 DataDrivenDBInputFormat 的功能,但也需要能够将它们组合起来,类似于使用路径和 MultipleInputs 可以做的事情。