V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
leavan
V2EX  ›  程序员

hive 是否支持从 hdfs 以外的数据源读取数据?

  •  
  •   leavan · 2020-05-27 11:02:03 +08:00 · 1366 次点击
    这是一个创建于 1639 天前的主题,其中的信息可能已经有所发展或是发生改变。

    是这样的,我现在有一个需求就是在 hivesql 中把某个 partition_key 列举出来,比如对于表 t

    CREATE TABLE t (
      num int)
    PARTITIONED BY (
      p1 string,
      p2 string);
    

    我需要把 p1 确定的情况下的 p2 列举出来,比如

    select distinct(p2) from t where p1 = 'test';
    

    理论上来说,这个查询只涉及到元数据库中的数据,没必要去 hdfs 上把每条数据都读出来,但 hive 确实是这样做了,效率非常低。

    所以现在的想法就是我自己来实现这个逻辑,允许 hive 能够直接从自己的元数据库中读取信息,想知道 hive 有没有从 hdfs 以外的数据源读取数据的能力?

    4 条回复    2020-05-27 12:12:01 +08:00
    MinGo215
        1
    MinGo215  
       2020-05-27 11:44:14 +08:00
    额,分区不多的话直接 show partitions 就好了啊
    31p7410
        2
    31p7410  
       2020-05-27 12:00:36 +08:00
    show partitions, 分区多的话 hadoop fs -ls /user/hive/warehouse/database.db/t/p1=test/
    ackoly
        3
    ackoly  
       2020-05-27 12:06:35 +08:00 via iPhone
    记得支持建立映射表,直读关系型数据库
    leavan
        4
    leavan  
    OP
       2020-05-27 12:12:01 +08:00
    @MinGo215 是想把分区信息作为一个表去读取和处理这些信息,show partitions 只是单纯的列举分区,而且也没法写进 SQL 里吧。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1063 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 18ms · UTC 19:16 · PVG 03:16 · LAX 11:16 · JFK 14:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.