0 / 0

Modificar el escenario: Ficha Etapa (DataStage)

Última actualización: 12 mar 2025
Etapa Modificar: Pestaña Etapa (DataStage)

Para especificar los aspectos de la etapa Modificar, efectúe una doble pulsación en la etapa y actualice los valores en la pestaña Etapa.

La sección Propiedades permite especificar lo que hace la etapa. La sección Avanzado permite especificar cómo se ejecuta la etapa.

Propiedades

La etapa Modificar solo tiene una propiedad, aunque puede repetirla según sea necesario.
Tabla 1. Propiedades
Categoría/Propiedad Valores Valor predeterminado ¿Obligatoria? ¿Repeticiones? Dependiente de
Opciones/Especificación serie N/A Y Y N/A

Especificación

Es una sentencia con uno de los siguientes formatos:

  • DROP columnname [, columnname]
  • KEEP columnname [, columnname]
  • new_columnname:new_type = [explicit_conversion_function] old_columnname

Si opta por descartar una o varias columnas, se retendrán todas menos las que se descarten explícitamente. Si elige mantener una o varias columnas, se excluyen todas las columnas excepto las que mantenga explícitamente.

Cada línea es una especificación nueva. Si indica varias especificaciones, cada una se ejecutará secuencialmente.

Algunas conversiones de tipo IBM® DataStage® pueden llevarse a cabo automáticamente, mientras que otras necesitan que especifique una función de conversión explícita. Algunas conversiones no están disponibles.

En la tabla siguiente, se resume la disponibilidad, con los campos de origen mostrados verticalmente y los campos de destino mostrados horizontalmente. Un valor "d" indica la conversión automática (predeterminada), "m" indica que es necesaria una conversión manual y un cuadrado en blanco indica que la conversión no es posible:

  int8 uint8 int16 uint16 int32 uint32 int64 uint64 sfloat dfloat
int8   d d d d d d d d d m
uint8 d   d d d d d d d d
int16 d m d   d d d d d d d
uint16 d d d   d d d d d d
int32 d m d d d   d d d d d
uint32 d d d d d   d d d d
int64 d m d d d d d   d d d
uint64 d d d d d d d   d d
sfloat d m d d d d d d d   d
dfloat d m d d d d d d d d  
decimal d m d d d d m d d m d m d d m
serie d m d d m d d d m d d d d m
ustring d m d d m d d d m d d d d m
raw m       m          
Fecha m   m   m m        
Hora m       m         m
time stamp m       m         m
  decimal serie ustring sin formato fecha Hora indicación de fecha y hora
int8 d d m d m   m m m
uint8 d d d        
int16 d d m d m        
uint16 d d m d m        
int32 d d m d m   m   m
uint32 d m m   m    
int64 d d d        
uint64 d d d        
sfloat d d d        
dfloat d m d m d m     m m
decimal   d m d m        
serie d m   d   m m m
ustring d m d       m m
raw              
Fecha   m m       m
Hora   m m       d m
Indicación de fecha y hora   m m   m m  

Para una conversión de tipo predeterminada, la especificación tendrá el siguiente formato:


new_columnname:new_type = [explicit_conversion_function] old_columnname 

Por ejemplo, para generar un tipo de columna int8:


int8col:int8 = uint64col

Cuando se requiere una conversión manual, la especificación tiene el formato:


new_columnname:new_type = conversion_function (old_columnname)

Por ejemplo:


day_column:int8 = month_day_from_date (date_column)

new_type puede ser cualquiera de los tipos de destino soportados para las conversiones desde el origen (es decir, cualquiera de las columnas marcadas como "m" en la tabla anterior). Por ejemplo, puede utilizar la conversión hours_from_time para convertir una hora a int8, o a int16, int32, dfloat, etc. IBM DataStage le avisa cuando está realizando una conversión de tipo de datos implícita, por ejemplo, hours_from_time espera convertir una hora a un int8, y le avisará si está convirtiendo a un int16, int32o dfloat.

En la tabla siguiente, se listan las funciones de conversión disponibles. El origen y los destinos siempre se especifican en términos de nombres de columna. Los argumentos preliminares se escriben entre corchetes, el nombre de la columna de origen se escribe entre paréntesis.

Conversión Argumentos Tipo de resultado Descripción Ejemplo
fecha_desde_días_desde [base_date (date)] (number_col (int32)) fecha Convierte un campo entero en una fecha añadiendo el entero a la fecha base especificada. base_date debe tener un formato yyyy-mm-dd y debe ir entre

comillas dobles o ser una variable.

date_col:date = date_from_days_since ["1958-08-18"] (int_col)
date_from_julian_day (juliandate_col (uint32)) fecha Fecha del día juliano. date_col:date = date_from_julian_day (julian_col)
date_from_string [date_format] (string_col (string)) fecha Convierte la serie en una representación de fecha utilizando el date_format especificado. De forma predeterminada, el formato de serie es yyyy-mm-dd. date_col:date = date_from_string ["%yyyy-%mm-%dd"] (string_col)
date_from_timestamp (timestamp_col (timestamp) ) fecha Convierte la indicación de fecha y hora en una representación de fecha. date_col:date = date_from_timestamp (ts_col)
date_from_ustring [date_format] (string_col (ustring)) fecha Convierte la serie en una representación de fecha utilizando el date_format especificado. De forma predeterminada, el formato de serie es yyyy-mm-dd. date_col:date = date_from_ustring (ustring_col, "%yyyy-%mm-%dd")
days_since_from_date [source_date (date)] (date_col (string)) int32 Devuelve un valor correspondiente al número de días de source_date hasta la fecha especificada. source_date debe estar en el formato aaaa-mm-dd y puede estar entrecomillado o no. dayssince_col:int32 = days_since_from_date ["1958-08-18"] (sourcedate_col,)
decimal_from_decimal [r_type] (source_decimal_col (decimal)) decimal Decimal de decimal. decimal_col:decimal = decimal_from_decimal [ceil] (source_col)
decimal_from_dfloat [r_type] (source_dfloat_col (dfloat)) decimal Decimal de dfloat. decimal_col:decimal = decimal_from_dfloat [ceil] (source_col)
decimal_from_string [r_type] (source_string_col (serie)) decimal Decimal de serie. decimal_col:decimal = decimal_from_string [ceil] (source_col)
decimal_from_ustring [r_type] (source_ustring_col (ustring)) decimal Decimal de ustring. decimal_col:decimal = decimal_from_ustring [ceil] (source_col)
dfloat_from_decimal [fix_zero] (source_dec_col (decimal)) dfloat Dfloat de decimal. dfloat_col:dfloat = dfloat_from_decimal [fix_zero] (source_col)
hours_from_time (source_time_col (time)) int8 Horas de tiempo. hours_col:int8 = hours_from_time (time_col)
int32_from_decimal [r_type, fix_zero] (source_decimal_col (decimal)) int32 Int32 de decimal. int32_col:int32 = int32_from_decimal [ceil] [fix_zero] (dec_col)
int64_from_decimal [r_type, fix_zero] (source_decimal_col (decimal)) int64 Int64 de decimal. int64_col:int64 = int64_from_decimal [ceil] (dec_col)
julian_day_from_date (date_col (date)) uint32 Día juliano de fecha. julianday_col:uint32 = julian_day_from_from_date (date_col)
lookup_string_from_int16 [table_definition ], (number_col (int16)) serie Convierte valores numéricos en series mediante una tabla de búsqueda. gendercol:string = lookup_string_from_int16 [{default_value = 2} ('f' = 1; 'm' = 2)] (gendercode)
lookup_ustring_from_int16 [table_definition ] (number_col (int16)) ustring Convierte valores numéricos en ustrings mediante una tabla de búsqueda. gendercol:ustring = lookup_ustring_from_int16 [{default_value = 2} ('f' = 1; 'm' = 2)] (gendercode)
lookup_ustring_from_int32 [table_definition ] (number_col (int32)) ustring Convierte valores numéricos en ustrings mediante una tabla de búsqueda. gendercol:ustring = lookup_string_from_int32 [{default_value = 2} ('f' = 1; 'm' = 2)] (gendercode)
lookup_string_from_uint32 [table_definition ] (number_col (uint32)) serie Convierte valores numéricos en series mediante una tabla de búsqueda. gendercol: string = lookup_string_from_uint32 [{default_value = 2} ('f '= 1;' m' = 2)] (gendercode)
lookup_int16_from_string [table_definition ] (string_col (string)) int16 Convierte series en valores numéricos mediante una tabla de búsqueda. int_col:int16 = lookup_int16_from_string [{default_value = 2} ('f' = 1; 'm' = 2)] (gendercode)
lookup_int16_from_ustring [table_definition ] (ustring_col (ustring)) int16 Convierte series en valores numéricos mediante una tabla de búsqueda. int_col:int16 = lookup_int16_from_ustring [{default_value = 2} ('f' = 1; 'm' = 2)] (gendercode)
lookup_uint32_from_string [table_definition ] (string_col (string)) uint32 Convierte series en valores numéricos mediante una tabla de búsqueda. int_col:uint32 = lookup_uint32_from_string [{default_value = 2} ('f' = 1; 'm' = 2)] (gendercode)
lookup_uint32_from_ustring [table_definition ] (ustring_col (ustring)) uint32 Convierte ustrings en valores numéricos mediante una tabla de búsqueda. int_col:uint32 = lookup_uint32_from_ustring [{default_value = 2} ('f' = 1; 'm' = 2)] (gendercode)
lowercase_string (instring_col (string)) serie Convierte series en todo minúsculas. Los caracteres no alfabéticos se omiten en la conversión. ostring_col:string = lowercase_string (istring_col)
lowercase_ustring (instring_col (ustring)) serie Convierte ustrings en todo minúsculas. Los caracteres no alfabéticos se omiten en la conversión. ostring_col:ustring = lowercase_string (istring_col)
mantissa_desde_decimal (decimal_col (decimal)) dfloat Devuelve la mantisa del decimal dado matissa_col:dfloat = mantissa_from_decimal (dec_col)
mantissa_from_dfloat (dfloat_col (dfloat)) dfloat Devuelve la mantisa del dfloat dado matissa_col:dfloat = mantissa_from_dfloat (dfloat_col)
hora_de_microsegundos (time_col (time)) int32 Devuelve los microsegundos de un campo de tiempo. msec_col:int32 = microseconds_from_time (time_col)
Media noche, segundos_de_hora (time_col (time)) dfloat Devuelve los segundos desde medianoche de la hora suministrada. midsec_col:dfloat = midnight_seconds_from_time (time_col)
minutes_from_time (time_col (time)) int8 Devuelve los minutos de un campo de tiempo. minsec_col:int8 = minutes_from_time (time_col)
día_mes_de_fecha_de_de_mes (date_col (date)) int8 Devuelve el día del mes de un campo de fecha. monthday_col:int8 = month_day_from_date (date_col)
month_from_date (date_col (date)) int8 Devuelve el mes numérico de un campo de fecha. month_col:int8 = month_from_date (date_col)
next_weekday_from_date [day] (date_col (date)) fecha Devuelve la fecha del día especificado de la semana inmediatamente después de la fecha de origen (incluida la fecha de origen). day es una serie que especifica un día de la semana. Puede especificar day utilizando los tres primeros caracteres del nombre del día o el nombre de día completo. day se puede escribir en comillas simples o comillas dobles, o bien se pueden omitir. nextday_col:date = next_weekday_from_date [wed](date_col)
notnull (any) int8 Devuelve true (1) cuando una expresión no se evalúa en el valor nulo. isnotnull_col:int8 = notnull (test_col)
nulo (any) int8 Devuelve true (1) cuando una expresión se evalúa en el valor nulo isnull_col:int8 = null (test_col)
previous_weekday_from_date [day] (date_col (date)) fecha El destino contiene la fecha más cercana al día especificado de la semana anterior a la fecha de origen (incluida la fecha de origen). day es una serie que especifica un día de la semana. Puede especificar day utilizando los tres primeros caracteres del nombre del día o el nombre de día completo. day se puede escribir en comillas simples o comillas dobles, o bien se pueden omitir. prevday_col:date = previous_weekday_from_date [wed](date_col)
raw_from_string (string_col (string)) sin formato Devuelve una serie en una representación sin formato. raw_col:raw = raw_from_string (string_col)
raw_length (raw_col (raw)) int32 Devuelve la longitud de un campo sin formato. rawlength_col:int32 = raw_length (raw_col)
seconds_from_time (time_col (time)) dfloat Devuelve los segundos de un campo de tiempo. sec_col:dfloat = seconds_from_time (time_col)
seconds_since_from_timestamp (timestamp_col (timestamp)) dfloat Segundos desde la hora indicado por timestamp secsince_col:dfloat = seconds_since_from_timestamp (timestamp_col)
string_from_date [date_format] (date_col (date)) serie Convierte la fecha en una representación de serie utilizando el date_format especificado. datestring_col:string = string_from_date [%dd-%mm-%yyyy] (date_col)
string_from_decimal [fix_zero] (decimal_col (decimal) serie Devuelve una serie de un decimal. string_col:string = string_from_decimal [fix_zero] (dec_col)
string_from_time [time_format] (time_col (time)) serie Convierte la hora en una representación de serie utilizando el time_format especificado. El formato de hora predeterminado es %hh:%nn:%ss. timestring_col:string = string_from_time [%hh:%nn:%ss.] (time_col)
serie_fecha_de_hora_de_de_serie [timestamp_format] (timestamp_col (timestamp))   Convierte la indicación de fecha y hora en una representación de serie utilizando el timestamp_formatespecificado. El formato de indicación de fecha y hora predeterminado es %aaaa-%mm-%dd. %hh:%nn:%ss. stringtimestamp_col:string = string_from_timestamp [%yyyy-%mm-%dd. %hh:%nn:%ss.] (timestamp_col)
string_from_ustring (string_col (ustring)) serie Devuelve una serie de una ustring. string_col:string = string_from_ustring (ustring_col)
string_length (string_col (string)) int32 Devuelve un int32 que contiene la longitud de una serie. length_col:int32 = string_length (string_col)
substring [startPosition,len] (string_col (string)) serie Convierte series largas en series más cortas utilizando la extracción de serie. startPosition especifica la ubicación inicial de la subserie; len especifica la longitud de la subserie. Si startPosition es positivo, especifica el desplazamiento de byte en la serie desde el principio de la serie. Si startPosition es negativo, especifica el desplazamiento de byte desde el final de la serie. shorstring_col:string = substring [5,10] (longstring_col)
time_from_midnight_seconds (dfloat_col (dfloat)) Hora Devuelve una hora de un campo seconds-from-midnight. time_col:time = time_from_midnight_seconds (dfloat_col)
time_from_string [time_format] (string_col (string)) Hora Convierte la serie en una representación de tiempo utilizando el time_format especificado. El formato de hora predeterminado es %hh:%nn:%ss. time_col:time = time_from_string [%hh:%nn:%ss.] (string_col)
time_from_timestamp (timestamp_col (timestamp)) Hora Hora de la indicación de fecha y hora. time_col:time = time_from_timestamp (timestamp_col)
time_from_ustring (string_col (ustring)) Hora Devuelve una hora de una ustring. time_col:time = time_from_ustring (string_col)
timestamp_from_date [time](date_col (date)) indicación de fecha y hora Indicación de fecha y hora de la fecha. El argumento time especifica opcionalmente la hora que se utilizará para crear el resultado de indicación de fecha y hora, y debe tener el formato hh:nn:ss. Si se omite, se utiliza la hora predeterminada de medianoche. timestamp_col:timestamp = timestamp_from_date [08:20:33] (date_col)
indicaciónfechahora_de_segundos_desde (secondssince_col (dfloat)) indicación de fecha y hora Indicación de fecha y hora de un valor segundos desde. timestamp_col:timestamp = timestamp_from_seconds_since (secondssince_col)
indicaciónfechahora_de_serie [timestamp_format] (string_col (string)) indicación de fecha y hora Convierte la serie en una representación de indicación de fecha y hora utilizando el timestamp_formatespecificado. De forma predeterminada, el formato de serie es %aaaa-%mm-%dd hh:nn:ss.

timestamp_col:timestamp = timestamp_from_string [%yyyy-%mm-%dd hh:nn:ss] (string_col)
timestamp_from_time

[date](time_col (time)) indicación de fecha y hora Indicación de fecha y hora de la hora. El argumento date es necesario. Especifica la parte de fecha de la indicación de fecha y hora y debe tener el formato yyyy-mm-dd.

timestamp_col:timestamp = timestamp_from_time [1958-08-18] (time_col)
timestamp_from_timet (timet_col (int32)) indicación de fecha y hora Indicación de fecha y hora de time_t El campo de origen debe contener una indicación de fecha y hora tal como la define la representación time_t de UNIX. timestamp_col:timestamp = timestamp_from_timet (timet_col)
indicaciónfechahora_de_ustring (string_col (ustring)) indicación de fecha y hora Devuelve una indicación de fecha y hora de una ustring. timestamp_col:timestamp = timestamp_from_ustring (string_col)
timet_from_timestamp (tstamp_col (timestamp)) int32 Time_t de indicación de fecha y hora. La columna de destino contiene una indicación de fecha y hora tal como la define la representación time_t de UNIX. timet_col:int32 = timet_from_timestamp (tstamp_col)
uint64_from_decimal [r_type, fix_zero] (dec_col (decimal)) uint64 Uint64 de decimal. int_col:uint64 = uint64_from_decimal [ceil, fix_zero] (dec_col)
uppercase_string (string_col (string)) serie Convierta las series a todas las letras en mayúsculas. Los caracteres no alfabéticos se omiten en la conversión. string_col:string = uppercase_string (instring_col)
uppercase_ustring (string_col (ustring)) ustring Convierta las ustrings a todas las letras en mayúsculas. Los caracteres no alfabéticos se omiten en la conversión. ustring_col:string = uppercase_ustring (string_col)
u_raw_from_string (string_col (ustring)) sin formato Devuelve una serie sin formato de una ustring raw_col:raw = u_raw_from_string (string_col)
ustring_from_date (date_col (date)) ustring Devuelve una ustring de una fecha. string_col:ustring = ustring_from_date (date_col)
ustring_from_decimal (dec_col (decimal)) ustring Devuelve una ustring de un decimal. string_col:ustring = ustring_from_decimal (dec_col)
ustring_from_string (string_col (string)) ustring Devuelve una ustring de una serie. string_col:ustring = ustring_from_string (string_col)
ustring_from_time (time_col (time)) ustring Devuelve una ustring de una hora. string_col:ustring = ustring_from_time (time_col)
ustring_from_timestamp (timestamp_col (timestamp)) ustring Devuelve una ustring de una indicación de fecha y hora. string_col:ustring = ustring_from_timestamp (timestamp_col)
ustring_length (string_col (ustring)) int32 Devuelve la longitud de una ustring. length_col:int32 = ustring_length (string_col)
u_substring [startPosition,len] (string_col (string)) ustring Convierte ustrings largas en ustrings más cortas utilizando la extracción de serie. startPosition especifica la ubicación inicial de la subserie; len especifica la longitud de la subserie. Si startPosition es positivo, especifica el desplazamiento de byte en la serie desde el principio de la serie. Si startPosition es negativo, especifica el desplazamiento de byte desde el final de la serie. shorstring_col:ustring = substring [5,10] (longstring_col)
weekday_from_date [originDay] (date_col (date)) int8 Día de la semana de la fecha. originDay es una serie que especifica el día considerado como el día cero de la semana. Puede especificar el día utilizando los tres primeros caracteres del nombre del día o el nombre de día completo. Si se omite, el domingo se define como el día cero. originDay puede ir entre comillas simples o dobles, o bien pueden omitirse. dow_int:int8 = [mon] (date_col)
year_day_from_date (date_col (date)) int16 Día del año de la fecha (valor devuelto 1-366). doy_col:int16 = year_day_from_date (date_col)
year_from_date (date_col (date)) int16 Año de la fecha. year_col:int16 = year_from_date (date_col)
year_week_from_date (date_col (date)) int8 Semana del año de la fecha. week_col:int8 = year_week_from_date (date_col)

table_definition define las filas de una tabla de búsqueda de series y tiene el formato siguiente:


{propertyList} ('string' = value; 'string' = value; ... )

donde:

  • propertyList es una o varias de las siguientes opciones; la lista completa se adjunta entre llaves y las propiedades se separan con comas si hay más de una:
    • case_sensitive. Realice una búsqueda de series coincidentes que distinga entre mayúsculas y minúsculas; el valor predeterminado es no distinguir entre mayúsculas y minúsculas.
    • default_value = defVal. El valor numérico predeterminado devuelto para una serie que no coincide con ninguna de las series de la tabla.
    • default_string = defString. La serie predeterminada ha devuelto valores numéricos que no coinciden con ningún valor numérico de la tabla.
  • string especifica una lista separada por comas de series asociadas con el valor; escriba cada serie entre comillas.
  • value especifica una lista separada por comas de valores de enteros de 16 bits asociados con string.

date_format es la serie de formato de fecha estándar

R_type es una serie que representa el tipo de redondeo y debe contener uno de los siguientes valores:

  • ceil. Redondea el campo de origen al infinito positivo. Por ejemplo, 1.4 -> 2, -1.6 -> -1.
  • floor. Redondea el campo de origen al infinito negativo. Por ejemplo, 1.6-> 1, -1.4-> -2.
  • round_inf. Redondea o trunca el campo de origen al valor representable más cercano, rompiendo los empates redondeando los valores positivos al infinito positivo y los valores negativos al infinito negativo. Por ejemplo, 1.4-> 1, 1.5-> 2, -1.4-> -1, -1.5-> -2.
  • trunc_zero. Descarta los dígitos fraccionarios a la derecha del dígito fraccionario más a la derecha soportado en el destino, independientemente del signo. Por ejemplo, si el destino es un entero, se truncan todos los dígitos fraccionales. Si el destino es otro decimal con una escala más pequeña, redondea o trunca el tamaño de escala del decimal de destino. Por ejemplo, 1.6-> 1, -1.6-> -1.

Puede especificar fix_zero para las columnas de origen decimal, para que las columnas que contienen todos ceros (de forma predeterminada, no permitido) se traten como un decimal válido con un valor igual a cero.

Avanzado

Esta sección le permite especificar lo siguiente:

  • Modalidad de ejecución. La etapa se puede ejecutar en modalidad paralela o en modalidad secuencial. En modalidad paralela, los datos de entrada se procesan en los nodos disponibles, tal como se especifica en el archivo de configuración, y según las restricciones de nodo especificadas en la sección Avanzado. En la modalidad secuencial, el nodo conductor procesa el conjunto de datos completo.
  • Modalidad de combinabilidad. Esto es Auto de forma predeterminada, lo que permite a IBM DataStage combinar los operadores que subyacen a las etapas paralelas para que se ejecuten en el mismo proceso si es sensible para este tipo de etapa.
  • Conservar particionamiento. Es Establecer de forma predeterminada. Puede seleccionar explícitamente Establecer o Borrar. Seleccione Establecer para solicitar que la siguiente etapa intente mantener el particionamiento.