我使用 S3 库存 JSON 文件创建了一个 S3 批量操作,该文件指向我的 S3 存储桶中的数十亿个对象。
该操作已停留在“正在准备”状态 24 小时。
此类卷的准备时间是多少?
如果我将所有库存 CSV 加入到一个 uber-CSV 中,而不是提供 JSON 清单,准备时间会缩短吗?
我使用 awscli 创建请求,如下所示:
aws s3control create-job \
--region ... \
--account-id ... \
--operation '{"S3PutObjectCopy":{"TargetResource":"arn:aws:s3:::some-bucket","MetadataDirective":"COPY"}}' \
--manifest '{"Spec":{"Format":"S3InventoryReport_CSV_20161130"},"Location":{"ObjectArn":"arn:aws:s3:::path_to_manifest/manifest.json","ETag":"..."}}' \
--report '{"Bucket":"arn:aws:s3:::some-bucket","Prefix":"reports", "Format":"Report_CSV_20180820", "Enabled":true, "ReportScope":"AllTasks"}' \
--priority 42 \
--role-arn ... \
--client-request-token $(uuidgen) \
--description "Batch request"
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 GNU Parallel 来帮助我处理一些我不想在本地保存的远程文件。
我的命令看起来有点像:
python list_files.py | \
parallel -j5 'aws s3 cp s3://s3-bucket/{} -' | \
parallel -j5 --round --pipe -l 5000 "python process_and_print.py"
Run Code Online (Sandbox Code Playgroud)
process_and_print.py打印某些输入行的输出,但该输出并没有像我预期的那样立即到达标准输出,而是在该过程完成后才看到输出。如果我删除--round参数,一切都按预期工作。
所有这些数据都保存在哪里?我有没有办法将它逐行打印到标准输出,而无需缓冲?