首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在使用Glue导出DynamoDB表时查看进度

如何在使用Glue导出DynamoDB表时查看进度
EN

Stack Overflow用户
提问于 2020-10-08 01:27:38
回答 2查看 173关注 0票数 1

我正在尝试将DynamoDB表中的每一项导出到S3。我找到了这个教程https://aws.amazon.com/blogs/big-data/how-to-export-an-amazon-dynamodb-table-to-amazon-s3-using-aws-step-functions-and-aws-glue/,并按照示例进行了操作。基本上,

代码语言:javascript
复制
table = glueContext.create_dynamic_frame.from_options(
  "dynamodb",
  connection_options={
    "dynamodb.input.tableName": table_name,
    "dynamodb.throughput.read.percent": read_percentage,
    "dynamodb.splits": splits
  }
)

glueContext.write_dynamic_frame.from_options(
  frame=table,
  connection_type="s3",
  connection_options={
    "path": output_path
  },
  format=output_format,
  transformation_ctx="datasink"
)

我在非fine环境中的一个小表中测试了它,它工作得很好。但是我在生产中的Dynamo表有超过400 my,200 mil的项目。我想这需要一段时间,但我不知道需要多长时间。几个小时,甚至几天?有没有什么方法可以显示进展?例如,显示已经处理了多少项的计数。我不想盲目地开始这项工作并等待。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-10-08 01:36:27

一种方法是通过enable continuous logging为您的AWS胶水作业监控其进度。

另一种方法是使用Amazon S3 event notifications在S3中存储文件时触发Lambda函数。

票数 1
EN

Stack Overflow用户

发布于 2021-10-28 17:32:27

您在was文档中尝试过custom waiter类吗?例如,Glue工作的自定义服务员应该看起来像这样:

代码语言:javascript
复制
class JobCompleteWaiter(CustomWaiter):
    def __init__(self, client):
        super().__init__(
            "JobComplete",
            "get_job_run",
            "JobRun.JobRunState",
            {"SUCCEEDED": WaitState.SUCCEEDED, "FAILED": WaitState.FAILED},
            client,
            max_tries=100,
        )

    def wait(self, JobName, RunId):
        self._wait(JobName=JobName, RunId=RunId)

根据boto3文档,你应该期望一个任务有6种不同的可能状态:STARTING'|'RUNNING'|'STOPPING'|'STOPPED'|'SUCCEEDED'|'FAILED'|'TIMEOUT',所以我选择了签入,无论是SUCCEEDED还是FAILED

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64249267

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档