我读了一段时间关于如何上传我的数据到红移,复制命令,胶水等,我的管道几乎完全在NIFI类似的东西:提取数据->插入到S3 ->执行Lamda过程来转换数据或使用雅典娜丰富数据到另一个S3存储桶(让我们称之为已处理的存储桶)。
现在我想继续这个管道,从处理过的存储桶中加载数据并将其插入到redshift中,为此我创建了一个空表。
其思想是在某些表中增量添加,而在其他表中则删除当天加载的所有数据并重新加载。
谁能给我一个提示,告诉我从哪里开始?谢谢!
发布于 2019-11-04 18:11:16
当数据到达您的“已处理的存储桶”中时,您可以触发一个lambda函数,该函数通过调用HTTP webhook在Apache中触发一个流。要公开这样的webhook,您可以使用以下处理器之一:
启动HTTP Server并侦听给定的基本路径,以将传入的请求转换为FlowFiles。服务的默认URI将是http://{hostname}:{port}/contentListener。仅支持HEAD和POST请求。GET、PUT和DELETE将导致错误和HTTP响应状态代码405。
启动HTTP服务器并侦听HTTP请求。对于每个请求,创建一个FlowFile并转移到“成功”。此处理器被设计为与HandleHttpResponse处理器一起使用,以便创建Web服务
因此,流应该是ListenHTTP -> FetchS3 -> Process -> PutSQL (with Redshift connection pool)
。lambda函数将调用GET my-nifi-instance.com:PORT/my-webhook
,以便ListenHTTP
为传入的请求创建一个流文件。
https://stackoverflow.com/questions/58683168
复制相似问题