当前位置: 首页 > 知识库问答 >
问题:

在AWS Datapipeline完成后删除已处理的源文件

濮献
2023-03-14
#!/usr/bin/env bash
set -eu -o pipefail

aws s3 cp s3://example/processor/transform.awk /tmp/transform.awk

for f in "${INPUT1_STAGING_DIR}"/*; do
  basename=${f//+(*\/|.*)}
  unzip -p "$f" | awk -f /tmp/transform.awk | gzip > ${OUTPUT1_STAGING_DIR}/$basename.tsv.gz
done

共有1个答案

穆鸿波
2023-03-14

几种可能的解决方案:

>

  • 在您的s3桶上创建一个触发器。每当将任何对象添加到bucket-->调用lambda函数(可以是执行转换的python脚本)-->复制回另一个bucket。现在,在另一个bucket上再次调用lambda函数,从第一个bucket中删除文件。

    我个人感觉;您所取得的成果已经足够好了。您所需要的只是在shell脚本中进行异常处理,并且只有在成功创建输出文件时才删除文件(永远不要丢失数据)(可能您还可以检查输出文件的大小)

  •  类似资料:
    • 我有一项服务,每天在Kubernetes上部署数千个短期工作。我试图让Kubernetes在完成后使用这里描述的功能删除这些作业: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#clean-up-finished-jobs-automatically 作业完成,但在表示的时间限制之

    • 我有一个spring集成文件,使用入站适配器从本地目录读取一些文件,然后将其存储在CouchDB中。我最终会想删除它。在我的属性文件中,我使用了delete.source.files=true。然而,这似乎不起作用。我在其他stackflow问题中读到,我可以使用ExpressionEvaluatingRequestHandlerAdvice。我将它与inboundchanneladapter一起

    • 我使用spring Boot2、jpa和Hibernate。Db是后置,我尝试删除一个带有子级的对象 如果我删除了Samplings,Samplings、testsamplings和Compressions也应该被删除。 从sample_letter=?的示例中删除和sampling_id=?和sampling_year=? 2018-10-03 22:21:05.832错误14511--[nio

    • 视频处理完成后的回调 当处理完毕视频后(上传、转码、审核都完成后),Spark 平台会通过由上传接口入参 notify_url 指定的 HTTP/HTTPS 地址以 GET 方式发起回调。若用户网站地址使用HTTPS协议进行数据安全传输时,用户需保证其拥有的CA证书是合法的。 用户指定的 notify_url 符合以下四种 notify_url 格式之一即为合法: 1、http://domain

    • 我试图利用spring-cloud-starter-stream-source-file app(https://github.com/spring-cloud-stream-app-starters/file/tree/master/spring-cloud-starter-stream-source-file)轮询一个目录,并将文件引用发送到定制处理器进行进一步处理。

    • 我无法自动删除由CronJob启动的已完成作业。正如我在此处和此处的QA中以及在官方文档中所阅读的,这可以通过建立作业历史限制< code > . spec . successfuljobshistorylimit 和< code > . spec . failed jobshistorylimit 来完成。我做过,两种情况下都成立为1。但是我的群集保存了不止一个已完成的作业,事实上,它保存的数据