Modificar el escenario: Ficha 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
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.