如何在Azure Synapse Analytics中配置昼夜不同的管道触发规则
在Azure Synapse Analytics中实现分时段触发需求的方案
方案一:图形界面配置双触发器
你可以创建两个独立的时间触发器分别处理白天和夜间的调度需求,步骤如下:
创建白天15分钟调度触发器
- 进入Synapse工作区,导航到集成 > 触发器,点击新建 > 时间触发器
- 命名为
Daytime_15min_Trigger,关联目标管道 - 调度设置:
- 频率选分钟,间隔填
15 - 限定时间范围为每天03:00 至 20:59(覆盖凌晨3点到晚上9点前的时段)
- 选择对应时区(比如
Asia/Shanghai) - 也可直接用CRON表达式:
*/15 3-20 * * *(CRON顺序:分、时、日、月、周)
- 频率选分钟,间隔填
- 保存并启用触发器
创建夜间凌晨1点单次触发器
- 同样新建时间触发器,命名为
Nightly_1AM_Trigger,关联同一管道 - 调度设置:
- 频率选天,间隔填
1 - 启动时间设为每天01:00
- 时区保持和白天触发器一致
- 也可直接用CRON表达式:
0 1 * * *
- 频率选天,间隔填
- 保存并启用触发器
- 同样新建时间触发器,命名为
最后禁用原有的每15分钟全局触发器,避免重复触发。
方案二:代码/CLI自动化实现
完全可以通过代码或Azure CLI完成触发器的自动化创建,以下是具体示例:
使用Azure CLI部署触发器
先准备两个JSON配置文件,再执行CLI命令:
- 白天触发器配置文件(
daytime-trigger.json):
{ "properties": { "type": "ScheduleTrigger", "typeProperties": { "recurrence": { "frequency": "Minute", "interval": 15, "startTime": "2024-01-01T03:00:00Z", "timeZone": "Asia/Shanghai", "schedule": { "hours": [3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20], "minutes": [0,15,30,45] } } }, "pipelines": [ { "pipelineReference": { "referenceName": "YourTargetPipeline", "type": "PipelineReference" } } ] } }
- 夜间触发器配置文件(
nightly-trigger.json):
{ "properties": { "type": "ScheduleTrigger", "typeProperties": { "recurrence": { "frequency": "Day", "interval": 1, "startTime": "2024-01-01T01:00:00Z", "timeZone": "Asia/Shanghai", "schedule": { "hours": [1], "minutes": [0] } } }, "pipelines": [ { "pipelineReference": { "referenceName": "YourTargetPipeline", "type": "PipelineReference" } } ] } }
- 执行CLI命令:
# 部署白天触发器 az synapse trigger create --workspace-name YourSynapseWorkspace --name Daytime_15min_Trigger --file @daytime-trigger.json # 部署夜间触发器 az synapse trigger create --workspace-name YourSynapseWorkspace --name Nightly_1AM_Trigger --file @nightly-trigger.json # 禁用原有触发器(按需执行) az synapse trigger disable --workspace-name YourSynapseWorkspace --name YourOriginal15minTrigger
关键注意事项
- 确保所有触发器的时区配置统一,避免因时区偏移导致触发时间错误
- 部署后检查触发器状态为已启用
- 后续调整时段时,直接修改调度规则或CRON表达式即可
内容的提问来源于stack exchange,提问作者Tony Dong
相关产品推荐
相关产品推荐

