在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书签。