开发者社区> 问答> 正文

[@小川游鱼][¥20]大数据环境中,根据一张表(idList)的数据去修改另一张表的数据(id_label),有没有比较高效的方法?

晓生寒 2018-12-14 16:15:42 389

现在有一个类似的需求,在cloudera环境中,是根据一个表的数据去更新另一个表的对应的行的某个字段。

如在hive中有:

表A(字段有一个,为id),对应数据为(1,2);

表B(字段有两个,分别为 id:label),对应数据为(1:N,2:N,3:N,4:N);

现在根据需求,需要将表B中id在表A中的数据更新。

更新后表B数据应为(1:Y,2:Y,3N,4:N)

现在已经有的实现是在hive中直接通过sql做修改,但是效率很低,想问下这类问题在大数据环境中有没有更好的解决方法(如通过其他工具,现在考虑将修改的操作移回ORACLE数据库做处理),或者在hive是否有方法能对这个更新操作的效率做优化。

现在在hive的sql为update A set label ='Y' where A.id in (select id from B);

希望大大提供下思路,谢谢了

SQL Oracle 大数据 关系型数据库 数据库 HIVE
分享到
取消 提交回答
全部回答(1)
  • fuxt
    2019-07-17 23:21:07

    不要用 a.id in (...)
    改为
    select
    case when A.id is not null then 'Y' end
    from B left outer join A on B.id = A.id

    0 0
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

推荐文章
相似问题