我正在尝试安排查询在Bigquery UI中当日运行。根据Google的文档,此选项使用cron语法。我已经使用crontab guru来验证语法是否正确,尽管您将调度程序放在什么语法似乎并不接受任何语法都没有关系。这是一个已知的错误?以下是我每6个小时运行一次的cron语法。
0 * / 6 * * *
答案 0 :(得分:3)
选择“自定义”时,需要使用类似Cron的时间规范 例如每3小时。允许的最短时间为十五分钟。 有关其他有效的API,请参见TransferConfig下的计划字段。 值。
期望的格式是“类似Cron”,但不是纯Cron。将您的Cron语法替换为every 6 hours
,这将起作用(请注意,这是UTC时间),请参见下面的示例:
答案 1 :(得分:2)
接受的答案没有直接链接到正确的文档,也没有解释有效的选项,只是给出了工具提示中已经提供的少量示例(但它确实回答了所发布的特定问题)
这篇文章试图为那些可能遇到类似问题的人提供一个更一般的答案。
可以直接在here以及相关资料here under "schedule" field information中找到所允许语法的完整说明。
为全面披露,我将在此处直接从该文档中摘录一些内容,以便使此答案可以“独立”。
通常,时间表必须采用以下格式:
[TYPE] [INTERVAL_VALUE] [INTERVAL_SCOPE]
,您必须决定要使用三种不同间隔中的哪一种:
间隔类型由您提供的时间表隐式选择。
这些是从作业完成时开始的时间间隔。
TYPE
每日间隔必须以“ every
”开头
INTERVAL_VALUE
有效时间单位如下:
minutes
或mins
hours
INTERVAL_SCOPE
不适用于结束时间间隔。
示例
如果为“ every 5 mins
,并且作业在0201处完成,则下一个作业在完成后等待5分钟重新开始,并从0206开始。
严格的查询时间表。
TYPE
每日间隔必须以“ every
”开头
INTERVAL_VALUE
以下时间单位的一些整数:
minutes
或mins
hours
即使使用1作为数量单位也保持不变。
INTERVAL_SCOPE
必须采用以下形式:
from [HH:MM] to [HH:MM]
,其HH = 00,01,...,23和MM = 00,01,...,59。
要么
synchronized
synchronized
重复一个时间间隔,并将其均匀分布在24小时内(例如,像结束时间安排,但将其固定为开始时间)。
与此选项一起提供的[INTERVAL_VALUE]必须是24的因子(1、2、3、4、6、8、12或24),以使每一天都有相同的时间表(否则,您会在第二天收到“溢出”。
示例
示例1:every 5 minutes from 10:00 to 14:00
如果作业从1000开始并花费6分钟,那么它将运行1000、1010、1020,...,因为1005、1015,...由于作业仍在运行而被跳过。
直接报价:
因为作业的开始时间很严格,如果一个作业的实例 运行时间超过定义的时间间隔,然后Cron服务可以 跳过工作。如果出现以下情况,则可以跳过间隔中的单个开始时间 先前的工作尚未完成或超时。
示例2: every 2 hours synchronized
运行0000,0200,0400,...,2200。
这些用于指定日或月级别的时间间隔,而不能指定次日时间间隔。
TYPE
使用every
指定重复间隔:
every day 06:00
every monday
every tuesday
every sunday
可以使用序号(1st
,2nd
,3rd
,或,first
,second
,{{1 }},...,最多third
或31st
)
thirtyfirst
1st,3rd tuesday
请注意,序号和单词可以混合使用。
INTERVAL_VALUE 有效日期是以下各项的任意组合:
2nd, third wednesday of month 09:00
或monday
mon
或tuesday
tue
或wednesday
wed
或thursday
thu
或friday
fri
或saturday
sat
或sunday
sun
一周中的所有天INTERVAL_SCOPE 可以包含
day
of month [HH:MM]
,即以逗号分隔的月份列表请注意,时间必须与任何给定的月份一起给出,of jan,feb,sep,nov [HH:MM]
和HH
的给出如上(分别为00-23和00-59)。如果排除“ of”,则该作业每月运行一次。
允许的值:
MM
或january
jan
或february
feb
或march
mar
或april
apr
may
或june
jun
或july
jul
或august
aug
或september
sep
或october
oct
或november
nov
或december
dec
一年中的所有月份示例
month
2nd monday,thu
1,8,15,22 of month 09:00
请注意,在未明确指定时间(例如1st mon,wednesday,thu of sep,oct,nov 17:00
)的情况下,找不到描述工作运行时间的文档。
2nd monday,thu
->“自定义间隔” second monday,thu
->“自定义间隔” third, twentysecond, 30th mon
->“自定义间隔” 1 of jan,april,july,oct 00:00
->“自定义间隔” 1st monday of sep,oct,nov 09:00
->“自定义间隔” 1st,third monday of month 04:00
->“自定义间隔” 1,8,15,22 of month 09:00
->“自定义间隔” every monday 09:00
->“开始时间间隔” every 5 minutes from 10:00 to 14:00
->“开始时间间隔” every 1 hours from 08:00 to 16:00
->“开始时间间隔” every 2 hours synchronized
->“结束时间间隔” every 5 minutes
->“结束时间间隔” 重要提示:
如上面的介绍中所述,该信息实质上是从现有文档中删除的,但我认为这些信息已经被掩埋了,这个问题值得“独立”参考。