La configuración de parámetros de programación es similar en la mayoría de los tipos de nodo, como un nodo SQL de MaxCompute. Sin embargo, el proceso difiere para los nodos shell comunes y PyODPS. Este tema proporciona ejemplos de configuración para diversos tipos de nodo.
Nodos SQL y nodos de sincronización por lotes
La configuración de los nodos SQL y de sincronización por lotes representa a la mayoría de los tipos de nodo. En este ejemplo se utiliza un nodo SQL de MaxCompute para demostrar cómo asignar valores a variables del sistema integradas y a parámetros personalizados, y posteriormente hacer referencia a ellos en su código.
No todos los nodos admiten parámetros de programación. Para comprobar si un nodo específico los admite, consulte la documentación de node development.
-
Definición de parámetros
Parámetro
Valor
var1
$bizdate
var2
${yyyymmdd}
var3
$cyctime
var4
${yyyymmddhh24:mi:ss}
var5
abc
-
Uso de parámetros
-- Get the data timestamp SELECT '${var1}' '${var2}'; -- Get the scheduling time SELECT '${var3}' '${var4}'; -- Get a constant SELECT '${var5}';
Después de asignar valores en la sección Scheduling Parameters, puede hacer referencia a ellos en su código. El ejemplo muestra referencias a las variables del sistema integradas var1 y var3, a los parámetros personalizados var2 y var4, y a la constante var5 con las siguientes asignaciones:
Asignar una marca de tiempo de datos al parámetro var1: var1=$bizdate
Asignar una hora de programación al parámetro var3: var3=$cyctime
Asignar una marca de tiempo de datos al parámetro var2: var2=${yyyymmdd}
Asignar una hora de programación al parámetro var4: var4=$[yyyymmddhh24:mi:ss]
Asignar la constante
abcal parámetro var5: var5=abc
Para obtener más información, consulte Configure node scheduling parameters y Sources and expressions of scheduling parameters.
Nodo PyODPS
Para evitar la modificación directa de su código, los nodos PyODPS no admiten la sustitución de cadenas con el formato ${param_name}. En su lugar, recupere los parámetros de programación desde el objeto de diccionario global args.
-
Definición de parámetros
Parámetro
Valor
var1
$bizdate
var2
${yyyymmdd}
var3
$[yyyymmdd]
-
Uso de parámetros
# Custom parameter: var1 retrieves a built-in parameter value. a =args['var1'] print (format(a)) # Custom parameter: var2 retrieves a value using ${...} format. b =args['var2'] print (format(b)) # Custom parameter: var3 retrieves a value using $[...] format. c =args['var3'] print (format(c))
Como se muestra en el ejemplo anterior, asigne valores en la sección Scheduling Parameters. En su código, haga referencia a los parámetros mediante el objeto de diccionario, por ejemplo, args['var1'], args['var2'] y args['var3']. A continuación se muestran las asignaciones:
Asignar una marca de tiempo de datos al parámetro var1: var1=$bizdate
Asignar una marca de tiempo de datos al parámetro var2: var2=${yyyymmdd}
Asignar una marca de tiempo de datos al parámetro var3: var3=$[yyyymmdd]
Para obtener más información, consulte Configure node scheduling parameters y Sources and expressions of scheduling parameters.
Nodo Python
Los nodos Python reciben los parámetros de programación como argumentos de línea de comandos. Liste los valores de los parámetros en orden dentro de la sección Scheduling Parameters; el sistema los pasará al script durante la ejecución. En el código, acceda a estos valores mediante índices como sys.argv[1] y sys.argv[2].
A diferencia de los nodos PyODPS, los nodos Python no admiten la referencia directa a parámetros por nombre, como $var1. En su lugar, los parámetros se leen posicionalmente mediante sys.argv.
-
Definición de parámetros
En los nodos Python, asigne los valores como una lista separada por espacios. Los valores pueden ser expresiones o constantes, y se asignan a los argumentos del script según su posición.
$[yyyymmdd] abc -
Uso de parámetros
import sys # Print all received parameters print("Current received parameters:", sys.argv) # Get the first and second parameters param1 = sys.argv[1] param2 = sys.argv[2] print("Parameter 1:", param1) print("Parameter 2:", param2)
Como se muestra en el ejemplo anterior, asigne valores a los parámetros en la sección Scheduling Parameters, separados por espacios. Posteriormente, acceda a los valores en su código mediante índices como sys.argv[1] y sys.argv[2]. A continuación se muestran las asignaciones:
Asignar una hora de programación al primer parámetro: $[yyyymmdd].
Asignar la constante
abcal segundo parámetro: abc.
Para obtener más información, consulte Configure node scheduling parameters y Sources and expressions of scheduling parameters.
Nodo shell común
Los nodos shell comunes utilizan parámetros posicionales (como $1, $2 y $3) en lugar de variables con nombre. Para parámetros posteriores al noveno, utilice la sintaxis ${10}.
-
Definición de parámetros
En los nodos shell comunes, asigne los valores como una lista separada por espacios. El orden de los valores debe corresponder al orden de los parámetros posicionales en su script.
$bizdate ${yyyymmdd} $[yyyymmdd] -
Uso de parámetros
# Positional parameter: Get a built-in parameter value. echo $1 # Positional parameter: Get a value using ${...} format. echo $2 # Positional parameter: Get a value using $[...] format. echo $3
Después de asignar valores en la sección Scheduling Parameters, haga referencia a ellos en su código como parámetros posicionales $1, $2 y $3. Las asignaciones en el ejemplo son:
Asignar una marca de tiempo de datos al parámetro posicional $1: $bizdate
Asignar una marca de tiempo de datos al parámetro posicional $2: ${yyyymmdd}
Asignar una hora de programación al parámetro posicional $3: $[yyyymmdd]
Para obtener más información, consulte Configure node scheduling parameters y Sources and expressions of scheduling parameters.