每 1 分钟触发一次 Glue ETL 作业

Trigger Glue ETL jobs every 1 minute

我想每 1 分钟触发一次粘合 ETL 作业。

我发现有一个 Schedule 触发器,但最短时间是 5 分钟。

有什么解决方法吗?我可以看到有一个按需触发器,可以从 lambda 函数调用吗?

如果您使用 CloudFormation templates 可以指定 cron 表达式:

 Resources:
  YourJobNameTrigger:
    Type: AWS::Glue::Trigger
    Properties:
      Name: YourJobNameTriggerName
      Type: SCHEDULED
      Description: Daily scheduled trigger
      Schedule: cron(*/1 * * * ? *)
      Actions:
        - JobName: 
            Ref: YourJobName

如果这对您不起作用,则可以使用 lambda 函数解决。您可以创建一个由 cloudwatch 事件触发的 lambda 函数(cron 每 1 分钟),使用 boto3 模块粘合方法start_job_run, 这是 lmabda 函数的语法示例,如下所示:

    import boto3
    glue= boto3.client('glue')
    def lambda_handler(event, context):    
        response = glue.start_job_run(JobName='string')

P.S:-- 而且你还需要有 **

"concurrency limit" increase for your jobs.

** 这只能通过联系 Amazon 支持并要求他们增加作业并发来实现,然后只有你可以 运行 多个作业 运行 一个作业。因为在这里你想每分钟触发一个工作,这意味着当另一个工作 运行 正在进行时你需要有新的工作 运行 (这只是工作的并发数量 运行 s)