用Nifi 从web api 取数据到HDFS

1. 全景图

2. 用ExecuteScript生成动态日期参数

为了只生成一个flowfile:

Groovy 代码:

import org.apache.commons.io.IOUtils
import java.nio.charset.*
import java.text.SimpleDateFormat;
import java.lang.StringBuilder;
import java.util.Calendar;

def flowFile = session.create()

flowFile = session.write(flowFile, {inputStream, outputStream ->
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
Calendar cal = Calendar.getInstance();
StringBuilder sb = new StringBuilder();
for(int i = 0; i < 9500; i++) {
cal.add(Calendar.DATE, -1);
sb.append(sdf.format(cal.getTime()) + "\n" );
}

//println(sb);

outputStream.write(sb.toString().getBytes(StandardCharsets.UTF_8))
} as StreamCallback)

//flowFile = session.putAttribute(flowFile, ‘filename‘, ‘get_date‘)
session.transfer(flowFile, REL_SUCCESS)

3. 用SplitText生成每行一个的日期

Line Split Count    1

4. 用ExtractText 取到日期参数

5. 用UpdateAttribute生成url及filename

这里一定要设置filename,不然,所有的文件名都一样,最后只能成功插入一个记录到HDFS。

6.  用InvokeHttp获取数据

7. 用PutHDFS把数据插入到HDFS

注意这里的Directory 要加上/, 不然就插入到user/root/nifi下了,而不是files下在的nifi了。

时间: 2024-11-10 07:34:13

用Nifi 从web api 取数据到HDFS的相关文章

Html网页使用jQuery传递参数并获取Web API的数据

昨天Insus.NET有开始学习Web API,<ASP.NET MVC的Web Api的实练>http://www.cnblogs.com/insus/p/4334316.html .其中演练中有提及到出现异常并解决,也有举例实现了在html静态网页使用jQuery来去读Web API的数据. 本篇想实现在html网页使用jQuery实现向Web API传递参数并获取数据. 在API创建一个方法public IEnumerable<Order> GetOrderByOrderNu

传递多个参数并获取Web API的数据

近段时间学习Web Api觉得非常有意思.默认的路由情况之下,获取数据时,它不必指定Action操作名. 还有另外感想,就是自从学习asp.net MVC之后,加上jQuery,让Insus.NET已经慢慢远离开ASP.NET,想起了那曾经得心应手的Web控件...... 前两篇<ASP.NET MVC的Web Api的实练>http://www.cnblogs.com/insus/p/4334316.html 没有带参数获取数据.而这篇<Html网页使用jQuery传递参数并获取Web

web api 返回数据XML JSON

WEBAPI返回的数据格式一般是XML和JSON.能根据请求的要求返回.经过试验如下: public object Get(string uid) { return new {msg="成功"}; } // 调用.使用了jquery的AJAX方法,最后一个参数是返回结果的类型.不同参数时,后台返回的数据类型不同,看来服务端能根据前端请求的数据类型自动生成相应类型返回 $.get('get',function(data){ },'json') // 结果 {"msg"

如何实现HttpClient + Web Api架构下数据的压缩

随着移动互联网的发展,各种终端设备的流行,服务器接口要求统一,这个时候RESTful就有用武之地.RESTful一种软件架构风格,而不是标准,只是提供了一组设计原则和约束条件.ASP.NET WebAPI,其核心概念就是构建REST风格的Web服务,把一起数据视为资源,无论是服务请求或者是数据操作. HttpClient + Web Api实现Restful服务 下面实现了提交一个对象json数据到服务器上请求创建操作,对应Http的POST请求. 1)  准备需要传递给WebAPI的参数 2)

Dynamics CRM 2015/2016 Web API:新的数据查询方式

今天我们来看看Web API的数据查询功能,虽然之前介绍CRUD的文章里面提到过怎么去Read数据,但是并没有详细的去深究那些细节,今天我们就来具体看看吧.其实呢,Web API的数据查询接口也是基于OData协议的,所以之前的OData Url Query的构造规则没有很大的变化,例如:$top, $select, $filter, $expand, $order的功能还是在的,不过也添加了一些新东西,例如 $count  -- 返回记录的总数 Paging Mechanism(分页机制)--

不使用jQuery对Web API接口POST,PUT,DELETE数据

前些天,Insus.NET有演示Web API接口的操作: <怎样操作WebAPI接口(显示数据)>http://www.cnblogs.com/insus/p/5670401.html <ASP.NET MVC对WebAPI接口操作(添加,更新和删除)>http://www.cnblogs.com/insus/p/5673641.html 但是,有网友说,不想使用jQuery,全部以ASP.NET MVC来实现.Ok,那来看看,先来实现POST的功能,即是往Web API添加数据

Post model至Web Api创建或是保存数据

前一篇<Post model至Web Api>http://www.cnblogs.com/insus/p/4343538.html中,使用Post来从Web Api获取数据.由于Post方法无法重载,因此前一篇只能算作另外示例. 此篇中,我们需要学习另外功能,就是Pst model至Web Api去进行创建对象或是保存数据.因此把它comment out掉. 当把数据传至Web Api之后,可以对数据进行处理保存等,你可以保存在内存中,文件中或理数据库中.Insus.NET在本演示中,想把上

Web API应用架构在Winform混合框架中的应用(1)

在<Web API应用架构设计分析(1)>和<Web API应用架构设计分析(2)>中对WebAPI的架构进行了一定的剖析,在当今移动优先的口号下,传统平台都纷纷开发了属于自己的Web API平台,方便各种终端系统的接入,很多企业的需求都是以Web API优先的理念来设计整个企业应用体系的.Web API作为整个纽带的核心,在整个核心层需要考虑到统一性.稳定性.以及安全性等方面因素.本文主要介绍,Web API应用架构,在Winform整合中的角色,以及如何实现在Winform混合

Web API应用架构设计分析(1)

Web API 是一种应用接口框架,它能够构建HTTP服务以支撑更广泛的客户端(包括浏览器,手机和平板电脑等移动设备)的框架, ASP.NET Web API 是一种用于在 .NET Framework 上构建 RESTful 应用程序的理想平台.本文主要以ASP.NET Web API 的框架实现来介绍整个Web API应用架构设计,但不局限于.NET的技术. 1.Web API的核心层设计 在目前发达的应用场景下,我们往往需要接入Winform客户端.APP程序.网站程序.以及目前热火朝天的