在AWS Glue中,可以使用书签来跟踪作业的进度。AWS Glue触发器可以根据预定的时间表或事件来触发作业。下面是一个包含代码示例的解决方法,用于比较AWS Glue书签中的运行作业和触发器。
import boto3
glue_client = boto3.client('glue')
# 创建作业
response = glue_client.create_job(
Name='job_with_bookmark',
Role='AWSGlueServiceRole',
Command={
'Name': 'glueetl',
'ScriptLocation': 's3://bucket-name/script.py'
},
DefaultArguments={
'--job-bookmark-option': 'job-bookmark-enable',
'--job-bookmark-name': 'job_bookmark_name'
}
)
# 运行作业
response = glue_client.start_job_run(
JobName='job_with_bookmark'
)
在上述示例中,我们首先使用create_job
方法创建一个名为job_with_bookmark
的作业,并在DefaultArguments
参数中设置了--job-bookmark-option
为job-bookmark-enable
和--job-bookmark-name
为job_bookmark_name
来启用书签。然后,我们使用start_job_run
方法运行作业。
import boto3
glue_client = boto3.client('glue')
# 创建触发器
response = glue_client.create_trigger(
Name='trigger_with_bookmark',
Type='SCHEDULED',
Schedule='cron(0 0 * * ? *)',
Actions=[
{
'JobName': 'job_with_bookmark'
}
],
Predicate={
'Logical': 'AND',
'Conditions': [
{
'LogicalOperator': 'EQUALS',
'JobName': 'job_with_bookmark',
'State': 'SUCCEEDED'
}
]
}
)
# 启动触发器
response = glue_client.start_trigger(
Name='trigger_with_bookmark'
)
在上述示例中,我们首先使用create_trigger
方法创建一个名为trigger_with_bookmark
的触发器,并设置了Type
为SCHEDULED
,Schedule
为cron(0 0 * * ? *)
,即每天的00:00:00定时触发。在Actions
参数中指定了要触发的作业名为job_with_bookmark
。在Predicate
参数中设置了作业状态为SUCCEEDED
时触发。然后,我们使用start_trigger
方法启动触发器。
这样,我们就可以使用运行作业或触发器的方式来处理AWS Glue书签。