Este tema explica las variables utilizadas en la orquestación de tareas.
Descripción general de variables
Las variables son valores dinámicos dentro de un flujo de tareas y se clasifican en variables de sistema, variables de tiempo y variables sin tiempo. Puede hacer referencia a cualquier variable dentro de un nodo mediante la sintaxis ${varName}.
Variables de sistema
Las variables de sistema son valores predefinidos, como el ID del flujo de tareas actual y el momento de ejecución del flujo.
Si una variable personalizada tiene el mismo nombre que una variable de sistema, su valor reemplaza al de la variable de sistema, por lo que la variable personalizada tiene mayor prioridad.
Variables de tiempo
-
Variable de flujo de tareas (variable global): esta variable se calcula al aplicar un desplazamiento de tiempo a la marca de tiempo de los datos. De forma predeterminada, la marca de tiempo de los datos corresponde al momento de ejecución menos un día. Al ser una variable global, está disponible para todos los nodos del flujo de tareas actual.
NotaConfigure una variable de flujo de tareas en cualquier nodo del flujo. La configuración se sincroniza automáticamente con todos los demás nodos.
-
Variable de nodo: es una variable de tiempo creada al aplicar un desplazamiento de tiempo a la variable integrada
bizdate(T-1). El alcance de esta variable se limita al nodo donde se define.Por ejemplo, si la fecha actual es el 22 de agosto de 2023 y aplica un desplazamiento de +1 día, el valor de la variable será el 23 de agosto de 2023.
Variables sin tiempo
Constante de flujo de tareas (variable global): es un valor fijo utilizable en todos los nodos del flujo de tareas actual.
-
Variable de entrada: el sistema completa automáticamente las variables de entrada. Haga referencia a una variable de entrada en las instrucciones SQL del nodo actual mediante la sintaxis ${var_name}, o bien úsela como variable condicional en un nodo Conditional Branch. Las variables de entrada incluyen:
Variable ascendente: es una variable de salida proveniente de un nodo anterior.
Variable de estado: para obtener más información, consulte Status variables.
Variable de sistema: para obtener más información, consulte System variables.
-
Variable de salida: defina y asigne un valor a esta variable en el nodo actual. Los nodos posteriores pueden acceder a ella y utilizarla como referencia.
Por ejemplo, si configura una variable de salida en un nodo Script, podrá referenciarla en las instrucciones SQL de un nodo posterior.
Variable de salida de un nodo Single Instance SQL: este tipo de nodo permite definir un conjunto de resultados a partir de una consulta SQL, el cual forma una matriz bidimensional. Durante la definición de la variable, extraiga un solo elemento o concatene todos los valores de una fila o columna.
-
Variable de salida de script: si la última línea de la salida de un script es un objeto JSON con el formato
{ key1: value1, key2: value2, … }y los valores son de tipo String, la tarea del script analiza automáticamente los pares clave-valor de JSON. Esto genera una variable llamada key, cuyo valor se establece según el valor correspondiente. Haga referencia a la variable como${key}.Por ejemplo, si la última línea del script es
echo {"hello": "world"}, la tarea del script crea una variable llamada hello con el valor world.
Configurar variables de tiempo
|
Parámetro |
Descripción |
|
Variable name |
Introduzca el nombre de la variable personalizada. Nota
Para eliminar una variable configurada, haga clic en el icono |
|
Variable rule |
Configure las reglas para la variable de tiempo.
Nota
Una vez configurada una variable de tiempo, refiriéncela en instrucciones SQL mediante la sintaxis |
Formatos de tiempo
A continuación, la tabla describe los especificadores de formato de tiempo compatibles.
|
Especificador |
Descripción |
Ejemplo de entrada |
Ejemplo de salida |
|
Era |
|
Gyyyy |
AD 2021 |
|
Año |
|
yyyy |
2021 |
|
Mes |
|
MM |
08 |
|
Semana |
|
ww |
13 |
|
Día |
|
D |
360 |
|
Día de la semana |
|
e |
1 |
|
AM/PM |
|
a |
AM |
|
Hora |
|
HH |
10 |
|
Minuto |
|
m |
27 |
|
Segundo |
|
ss |
08 |
|
Zona horaria |
|
z |
UTC+08:00 |
Ejemplos de formatos de tiempo combinados:
|
Ejemplo de entrada |
Ejemplo de salida |
|
|
2021-08-12 |
|
|
20210801 |
|
|
11:05:21 |
|
|
20210812 11:05:21 |
Variables de sistema
|
Nombre de la variable |
Descripción |
Ejemplo |
|
sys.flow.start.timestamp |
La marca de tiempo del momento de ejecución. |
2021-05-24T11:20:07.562+08:00 |
|
sys.flow.start.year |
El año del momento de ejecución. |
2021 |
|
sys.flow.start.month |
El mes del momento de ejecución. |
5 |
|
sys.flow.start.day |
El día del momento de ejecución. |
24 |
|
sys.flow.start.hour |
La hora del momento de ejecución. |
11 |
|
sys.flow.start.minute |
El minuto del momento de ejecución. |
20 |
|
sys.flow.start.second |
El segundo del momento de ejecución. |
7 |
|
sys.flow.start.milliseconds |
Los milisegundos del momento de ejecución. |
562 |
|
sys.flow.start.timezone |
La zona horaria del momento de ejecución. |
Asia/Shanghai |
|
sys.flow.biztime |
La marca de tiempo de los datos. De forma predeterminada, corresponde al momento de ejecución menos un día. |
1621740007562 |
|
sys.flow.name |
El nombre del flujo de tareas. |
dwd_activity_daily_pv |
|
sys.node.name |
El nombre del nodo. |
Single Instance SQL-1 |
Variables de estado
|
Nombre de la variable |
Descripción |
|
all_success |
Todas las tareas anteriores se ejecutaron correctamente. |
|
all_failed |
Todas las tareas anteriores se ejecutaron con errores. |
|
one_success |
Como mínimo una tarea anterior se ejecutó correctamente. |
|
one_failed |
Como mínimo una tarea anterior se ejecutó con errores. |
Utilice variables de estado en un nodo Conditional Branch para controlar si el flujo de tareas ejecuta las tareas subsiguientes según un estado de ejecución específico.
.