O DataWorks oferece duas famílias de parâmetros de agendamento para injetar valores dinâmicos de tempo em nomes de partições, nomes de arquivos e consultas SQL: ${...}, com base na data de negócio, e $[...], com base no horário agendado. Este tópico compara os formatos, a precisão e as capacidades de deslocamento para ajudar você a escolha a opção mais adequada.
Para obter as definições de tempo base e as regras de transformação, consulte Formatos suportados para parâmetros de agendamento.
Visão geral dos formatos de parâmetros
A tabela a seguir apresenta todos os seis formatos de parâmetros integrados. Considere que o horário atual seja November 01, 2025 e que uma tarefa seja executada diariamente às 00:00. O parâmetro é referenciado no código como pt=${datetime}.
|
Formato do parâmetro |
Descrição |
Exemplo de atribuição |
Valor resolvido |
|
|
Data de negócio (T-1), com precisão de dia. Ideal para jobs em lote diários particionados por data — não requer deslocamento manual. |
|
|
|
|
Horário de acionamento agendado, com precisão de segundo. Recomendado quando for necessária precisão inferior a um dia. |
|
|
|
|
Obtém o horário de negócio. Equivalente a |
|
|
|
|
Obtém o horário agendado, com precisão de segundo. Equivalente a |
|
|
|
|
Obtém o horário atual, com precisão de dia. |
|
|
|
|
Mês de negócio. Retorna o mês anterior se o horário de negócio e o horário atual estiverem no mesmo mês; caso contrário, retorna o mês do horário de negócio. |
|
|
Exemplo de $bizmonth — se o horário atual for November 01, 2025:
Horário de negócio =
November 02, 2025(mesmo mês do horário atual) →datetime=202510Horário de negócio =
October 31, 2025(mês diferente do horário atual) →datetime=202510
Principais diferenças entre ${...} e $[...]
|
** |
** |
|
|
Base de tempo |
Data de negócio (T-1) |
Horário de acionamento agendado (T) |
|
Precisão de tempo |
Dia (ano, mês, dia) |
Segundo (ano, mês, dia, hora, minuto, segundo) |
|
Suporte a deslocamento |
Anos, meses, semanas, dias |
Dias, horas, minutos |
|
Limitações |
Não permite expressar horas, minutos ou segundos |
Não possui sintaxe direta para deslocamento de ano ou mês ( |
|
Equivalente abreviado |
|
|
Quando usar cada formato
Use
${...}para partições de data no nível de dia em jobs em lote diários. Esse formato reflete automaticamente a data dos dados do dia anterior (T-1) sem necessidade de deslocamento manual.Use
$[...]quando precisar de precisão no nível de hora ou minuto, ou ao calcular deslocamentos de mês ou ano (useadd_months).Use
$bizdateou$cyctimecomo forma abreviada quando o formato corresponder exatamente ao necessário.Use
$gmtdatesempre que precisar do horário atual com precisão de dia.
Para obter detalhes completos de uso, consulte Formatos suportados para parâmetros de agendamento e Configure e usar parâmetros de agendamento.
Exemplos de uso
Os exemplos a seguir utilizam um nó ODPS SQL. O horário agendado é 10:30:00 on July 20, 2025.
|
Valor desejado |
** |
** |
|
Ano: |
|
|
|
Ano curto: |
|
|
|
Ano anterior: |
|
|
|
Mês: |
|
|
|
Dia: |
|
|
|
Data um mês antes: |
|
|
|
Dia anterior: |
|
|
|
Mesma data no ano anterior: |
|
|
|
Apenas horário: |
Não suportado |
|
|
Data e hora completas: |
Não suportado |
Defina dois parâmetros separados por espaço: |
|
Um minuto antes: |
Não suportado |
|
|
Uma hora antes: |
Não suportado |
|
|
Data e hora do dia anterior (sem espaço): |
Não suportado |
|
|
Data e hora do dia anterior (com espaço): |
Não suportado |
Expressões de parâmetros não aceitam espaços. Defina dois parâmetros: |
Próximos passos
Formatos suportados para parâmetros de agendamento — referência completa de sintaxe para
${...}e$[...]Configure e usar parâmetros de agendamento — guia de configuração passo a passo