• 2020-08-08:有一批气象观测站,现需要获取这些站点的观测数据,并存储到 Hive 中。但是气象局只提供了 api 查询,每次只能查询单个观测点。那么如果能够方便快速地获取到所有的观测点的数据?


    福哥答案2020-08-08:

    参考答案:
    A.通过shell 或python 等调用api,结果先暂存本地,最后将本地文件上传到 Hive 中。
    B.通过 datax 的 httpReader 和 hdfsWriter 插件,从而获取所需的数据。
    C.比较理想的回答,是在计算引擎的 UDF 中调用查询 api,执行UDF 的查询结果存储到对应的表中。一方面,不需要同步任务的导出导入;另一方面,计算引擎的分布式框架天生提供了分布式、容错、并发等特性。

    [知乎答案:](https://www.zhihu.com/question/412788310)
    那感觉最好用 Hive 的 UDF(User Define Function)功能,将调用api写入UDF的逻辑中。这样能利用Hive的分布式能力。例如:
    定义UDF:

    package test;
    public class GetWeatherDataUDF extends UDF {
        public String evaluate(String param) {
            return getFromApi(param);//调用api
        }
    }
    

    之后打包发布到Hive,定义这个UDF:

    CREATE TEMPORARY FUNCTION GetWeather AS 'test.GetWeatherDataUDF';
    最后就可以使用这个函数了,例如某个表的一列就是所有的参数:
    select GetWeather(param) from one_table;
    ***
    [评论](https://user.qzone.qq.com/3182319461/blog/1596842877)

  • 相关阅读:
    MySQL主从复制与主主复制
    Go语言mgo
    beego07----web博客
    mongo14-----group,aggregate,mapReduce
    mongo13----application set与分片结合
    mongo12---手动预先分片
    TCP/IP详解学习笔记(4)-ICMP协议,ping和Traceroute
    TCP/IP详解学习笔记(3)-IP协议,ARP协议,RARP协议
    TCP/IP详解学习笔记(2)-数据链路层
    TCP/IP详解学习笔记(1)-基本概念
  • 原文地址:https://www.cnblogs.com/waitmoon/p/13460222.html
Copyright © 2020-2023  润新知