Analizar datosParsing Data

Los flujos de datos de paquetes extraen y cargan datos entre almacenes de datos heterogéneos, que pueden usar diversos tipos de datos estándar y personalizados.Data flows in packages extract and load data between heterogeneous data stores, which may use a variety of standard and custom data types. En un flujo de datos, los orígenes de Integration ServicesIntegration Services realizan el trabajo de extraer datos, analizar datos de cadenas y convertir datos en un tipo de datos de Integration ServicesIntegration Services .In a data flow, Integration ServicesIntegration Services sources do the work of extracting data, parsing string data, and converting data to an Integration ServicesIntegration Services data type. Las transformaciones posteriores pueden analizar datos para convertirlos en un tipo de datos diferentes, o bien crear copias de columnas con diferentes tipos de datos.Subsequent transformations may parse data to convert it to a different data type, or create column copies with different data types. Las expresiones usadas en los componentes también pueden convertir argumentos y operandos en diferentes tipos de datos.Expressions used in components may also cast arguments and operands to different data types. Finalmente, cuando se cargan los datos en un almacén de datos, el destino puede analizar los datos para convertirlos en un tipo de datos que usa el destino.Finally, when the data is loaded into a data store, the destination may parse the data to convert it to a data type that the destination uses. Para más información, consulte Integration Services Data Types.For more information, see Integration Services Data Types.

Dos tipos de análisisTwo types of parsing

Integration ServicesIntegration Services proporciona dos tipos de análisis para convertir los datos: el análisis rápido y el análisis estándar. provides two types of parsing for converting data: Fast parse and Standard parse.

  • El análisis rápido es un conjunto rápido y simple de rutinas de análisis que no admite conversiones de tipos de datos específicos de la configuración regional sino solo los formatos de fecha y hora usados con mayor frecuencia.Fast parse is a fast, simple set of parsing routines that does not support locale-specific data type conversions, and supports only the most frequently used date and time formats.

  • El análisis estándar es un conjunto completo de rutinas de análisis que admite todas las conversiones de tipos de datos proporcionadas por las API de conversión de tipo de datos de automatización disponibles en Oleaut32.dll y Ole2dsip.dll.Standard parse is a rich set of parsing routines that supports all the data type conversions that are provided by the Automation data type conversion APIs available in Oleaut32.dll and Ole2dsip.dll.

Fast ParseFast Parse

El análisis rápido ofrece un conjunto rápido y simple de rutinas para analizar datos.Fast parse provides a fast, simple set of routines for parsing data. Estas rutinas no son dependientes de la configuración regional y solo admiten un subconjunto de formatos de fecha, hora y número entero.These routines are not locale-sensitive and they support only a subset of date, time, and integer formats.

Requisitos y limitacionesRequirements and limitations

Al implementar el análisis rápido, un paquete arriesga su capacidad de interpretar los datos numéricos y de fecha y hora en formatos específicos de configuración regional, así como varios formatos ISO 8601 básicos y extendidos utilizados con frecuencia, pero el paquete mejora su rendimiento.By implementing fast parse, a package forfeits its ability to interpret date, time, and numeric data in locale-specific formats and many frequently used ISO 8601 basic and extended formats, but the package enhances its performance. Por ejemplo, el análisis rápido admite únicamente las representaciones de formato de fecha usadas con más frecuencia, como DDMMYYYY y DD-MM-YYYY, no realiza ningún análisis específico de una configuración regional, no reconoce caracteres especiales en los datos de moneda y no puede convertir una representación hexadecimal o científica de números enteros.For example, fast parse supports only the most commonly used date format representations such as YYYYMMDD and YYYY-MM-DD, does not perform locale-specific parsing, does not recognize special characters in currency data, and cannot convert hexadecimal or scientific representation of integers.

El análisis rápido solamente está disponible cuando se utiliza el origen de archivo plano o la transformación Conversión de datos.Fast parse is available only when you use the Flat File source or the Data Conversion transformation. El aumento del rendimiento puede ser considerable, por lo que debería tener en cuenta la posibilidad de utilizar el análisis rápido en estos componentes de flujo de datos, si es posible.The increase in performance can be significant, and you should consider using fast parse in these data flow components if you can.

Si el flujo de datos en el paquete exige un análisis sensible a la configuración regional, se recomienda el análisis estándar en lugar del rápido.If the data flow in the package requires locale-sensitive parsing, standard parse is recommended instead of fast parse. Por ejemplo el análisis rápido no reconoce los datos relacionados con la configuración regional que incluyen símbolos decimales como la coma, formatos de fecha que no sean los formatos año-mes-fecha y símbolos de moneda.For example, fast parse does not recognize locale-sensitive data that includes decimal symbols such as the comma, date formats other than year-month-date formats, and currency symbols.

Las representaciones truncadas que implican una o más partes de una fecha, como el siglo, año o mes, no son reconocidas por el análisis rápido.Truncated representations that imply one or more date parts, such as a century, a year, or a month, are not recognized by fast parse. Por ejemplo, el análisis rápido no reconoce el formato "-YYMM", que especifica un año y mes en un siglo específico, ni "--MM", que especifica un mes en un año implícito.For example, fast parse recognizes neither the '-YYMM' format, which specifies a year and month in an implied century, nor '--MM', which specifies a month in an implied year. Sin embargo, se reconocen algunas representaciones con precisión reducida.However, some representations with reduced precision are recognized. Por ejemplo, el análisis rápido reconoce el formato 'hhmm;', que indica solamente horas y minutos, y 'YYYY', que indica el año solamente.For example, fast parse recognizes the 'hhmm;' format, which indicates hour and minute only, and 'YYYY', which indicates year only.

El análisis rápido se especifica en el nivel de columna.Fast parse is specified at the column level. En el origen de archivo plano y en la transformación Conversión de datos, puede especificarse el análisis rápido en las columnas de salida.In the Flat File source and the Data Conversion transformation, you can specify Fast parse on output columns. Las entradas y salidas pueden incluir columnas sensibles y no sensibles a la configuración regional.Inputs and outputs can include both locale-sensitive and locale-insensitive columns.

Formatos de datos numéricos (análisis rápido)Numeric data formats (Fast Parse)

El análisis rápido ofrece un conjunto rápido y simple de rutinas, que no distinguen la configuración regional, para analizar datos.Fast parse provides a fast, simple, locale-insensitive set of routines for parsing data. El análisis rápido admite solo un conjunto limitado de formatos para tipos de datos enteros.Fast parse supports only a limited set of formats for integer data types.

Tipo de datos IntegerInteger data type

Los tipos de datos enteros que proporciona Integration ServicesIntegration Services son DT_I1, DT_UI1, DT_I2, DT_UI2, DT_I4, DT_UI4, DT_I8 y DT_UI8.The integer data types that Integration ServicesIntegration Services provides are DT_I1, DT_UI1, DT_I2, DT_UI2, DT_I4, DT_UI4, DT_I8, and DT_UI8. Para más información, consulte Integration Services Data Types.For more information, see Integration Services Data Types.

El análisis rápido admite los siguientes formatos para tipos de datos enteros:Fast parse supports the following formats for integer data types:

  • Espacios iniciales y finales de cero o superiores o tabulaciones.Zero or more leading and trailing spaces or tab stops. Por ejemplo, el valor " 123 " es válido.For example, the value " 123 " is valid. El valor que todo él es espacios equivale a cero.A value that is all spaces evaluates to zero.

  • Un signo más o menos inicial, o ningún signo inicial.A leading plus sign, minus sign, or neither. Por ejemplo, los valores +123, -123 y 123 son válidos.For example, the values +123, -123, and 123 are valid.

  • Uno o más numerales indo-árabes (0-9).One or more Hindu-Arabic numerals (0-9). Por ejemplo, el valor 345 es válido.For example, the value 345 is valid. No se admiten numerales de otros idiomas.Other language numerals are not supported.

    Entre los formatos de datos no admitidos se incluyen los siguientes:Non-supported data formats include the following:

  • Caracteres especiales.Special characters. Por ejemplo, el carácter de moneda $ no se admite y el valor $20 no puede analizarse.For example, the currency character $ is not supported, and the value $20 cannot be parsed.

  • Los caracteres de espacios en blanco como avance de línea, retorno de carro y espacios de no separación.White-space characters such as line feed, carriage returns, and non-breaking spaces. Por ejemplo, el valor " 123" no puede analizarse.For example, the value " 123" cannot be parsed.

  • Representaciones hexadecimales de números enteros.Hexadecimal representations of integers. Por ejemplo, el valor 2EE no puede analizarse.For example, the value 2EE cannot be parsed.

  • Representaciones en notación científica de números enteros.Scientific notation representation of integers. Por ejemplo, el valor 1E+10 no puede analizarse.For example, the value 1E+10 cannot be parsed.

    Los siguientes formatos son datos de salida para números enteros:The following formats are output data formats for integers:

  • Un signo menos para números negativos y nada para números positivos.A minus sign for negative numbers and nothing for positive ones.

  • Ningún espacio en blanco.No white spaces.

  • Uno o más numerales indo-árabes (0-9).One or more Hindu-Arabic numerals (0-9).

Formatos de fecha y hora (análisis rápido)Date and time formats (Fast Parse)

El análisis rápido ofrece un conjunto rápido y simple de rutinas para analizar datos.Fast parse provides a fast, simple set of routines for parsing data. El análisis rápido admite los siguientes formatos para los tipos de datos de fecha y hora.Fast parse supports the following formats for date and time data types.

Tipo de datos de fechaDate data type

El análisis rápido admite los siguientes formatos de cadena para tipos de datos de fecha:Fast parse supports the following string formats for date data:

  • Formatos de fecha con espacios en blanco iniciales.Date formats that include leading white spaces. Por ejemplo, el valor " 2004- 02-03" es válido.For example, the value " 2004- 02-03" is valid.

  • Formatos ISO 8601, que se muestran en la tabla siguiente:ISO 8601 formats, as listed in the following table:

    FormatoFormat DescriptionDescription
    YYYYMMDDYYYYMMDD

    YYYY-MM-DDYYYY-MM-DD
    Los formatos básico y extendido para un año de cuatro dígitos, un mes de dos dígitos y un día de dos dígitos.Basic and extended formats for a four-digit year, a two-digit month, and a two-digit day. En el formato extendido, las partes de la fecha se encuentran separadas por guiones (-).In the extended format, the date parts are separated by a hyphen (-).
    YYYY-MMYYYY-MM Formatos básico y extendido de precisión reducida para un año de cuatro dígitos y un mes de dos dígitos.Basic and extended reduced precision formats for a four-digit year and a two-digit month. En el formato extendido, las partes de la fecha se encuentran separadas por guiones (-).In the extended format, the date parts are separated by a hyphen (-).
    YYYYYYYY El formato de precisión reducida es un año de cuatro dígitos.Reduced precision format is a four-digit year.

    El análisis rápido no admite los siguientes formatos para datos de fecha:Fast parse does not support the following formats for date data:

  • Valores alfabéticos de meses.Alphabetical month values. Por ejemplo, el formato de fecha Oct-31-2003 no es válido.For example, the date format Oct-31-2003 is not valid.

  • Formatos ambiguos como DD-MM-YYYY y MM-DD-YYYY.Ambiguous formats such as DD-MM-YYYY and MM-DD-YYYY. Por ejemplo, las fechas 03-04-1995 y 04-03-1995 no son válidas.For example, the dates 03-04-1995 and 04-03-1995 are not valid.

  • Formatos truncados básico y extendido para un año natural de cuatro dígitos y un día de tres dígitos dentro de un año, YYYYDDD y YYYY-DDD.Basic and extended truncated formats for a four-digit calendar year and a three-digit day within a year, YYYYDDD and YYYY-DDD.

  • Formatos básico y extendido para un año de cuatro dígitos, un número de dos dígitos para la semana del año y un número de un dígito para el día de la semana, YYYYWwwD y YYYY-Www-D.Basic and extended formats for a four-digit year, a two-digit number for the week of the year, and a one-digit number for the day of the week, YYYYWwwD and YYYY-Www-D

  • Los formatos truncados básico y extendido para un año y una semana son un año de cuatro dígitos y un número de dos dígitos para la semana, YYYWww y YYYY-Www.Basic and extended truncated formats for a year and week date are a four-digit year and a two-digit number for the week, YYYWww and YYYY-Www

    El análisis rápido genera los datos como DT_DBDATE.Fast parse outputs the data as DT_DBDATE. Los valores de fechas en formatos truncados se rellenan.Date values in truncated formats are padded. Por ejemplo, YYYY pasa a ser YYYY0101.For example, YYYY becomes YYYY0101.

    Para más información, consulte Integration Services Data Types.For more information, see Integration Services Data Types.

Tipo de datos de horaTime data type

El análisis rápido admite los siguientes formatos de cadena para tipos de datos de hora:Fast parse supports the following string formats for time data:

  • Formatos de hora con espacios en blanco iniciales.Time formats that include leading white spaces. Por ejemplo, el valor " 10:24" es válido.For example, the value " 10:24" is valid.

  • Formato de 24 horas24-hour format. El análisis rápido no admite la notación AM y PM.Fast parse does not support the AM and PM notation.

  • Formatos de hora ISO 8601, que se muestran en la tabla siguiente:ISO 8601 time formats, as listed in the following table:

    FormatoFormat DescriptionDescription
    HHMISSHHMISS

    HH:MI:SSHH:MI:SS
    Los formatos básico y extendido para una hora de dos dígitos, minutos de dos dígitos y segundos de dos dígitos.Basic and extended formats for a two-digit hour, a two-digit minute, and a two-digit second. En el formato extendido, las partes de la hora se encuentran separadas por dos puntos (:).In the extended format, the time parts are separated by a colon (:).
    HHMIHHMI

    HH:MIHH:MI
    Formatos truncados básico y extendido para una hora de dos dígitos y minutos de dos dígitos.Basic and extended truncated format for a two-digit hour and a two-digit minute. En el formato extendido, las partes de la hora se encuentran separadas por dos puntos (:).In the extended format, the time parts are separated by a colon (:).
    HHHH Formato truncado para una hora de dos dígitos.Truncated format for a two-digit hour.
    00:00:0000:00:00

    000000000000

    00000000

    0000

    240000240000

    24:00:0024:00:00

    24002400

    2424
    Formato para medianoche.The format for midnight.
  • Formatos de hora que especifican una zona horaria, como se muestra en la tabla siguiente:Time formats that specify a time zone, as listed in the following table:.

    FormatoFormat DescriptionDescription
    +HH:MI+HH:MI

    +HHMI+HHMI
    Formatos básicos y extendidos que indican el número de horas y minutos que se agregan a la hora universal coordinada (UTC) para obtener la hora local.Basic and extended formats that indicate the number of hours and minutes that are added to Coordinated Universal Time (UTC) to obtain the local time.
    -HH:MI-HH:MI

    -HHMI-HHMI
    Formatos básicos y extendidos que indican el número de horas y minutos que se restan a la UTC para obtener la hora local.Basic and extended formats that indicate the number of hours and minutes that are subtracted from UTC to obtain the local time.
    +HH+HH Formato truncado que indica el número de horas que se agregan a la UTC para obtener la hora local.Truncated format that indicates the number of hours that are added to UTC to obtain the local time.
    -HH-HH Formato truncado que indica el número de horas que se restan a la UTC para obtener la hora local.Truncated format that indicates the number of hours that are subtracted from UTC to obtain the local time.
    ZZ Un valor de 0 que indica que la hora se representa en UTC.A value of 0 that indicates the time is represented in UTC.

    Los formatos para todos los datos de fecha/hora pueden incluir un elemento de zona horaria.The formats for all time and date/time data can include a time zone element. Sin embargo, el sistema omite el valor de zona horaria, excepto cuando los datos son del tipo DT_DBTIMESTAMPOFFSET.However, the system ignores the time zone value except when the data is of type DT_DBTIMESTAMPOFFSET. Para más información, consulte Integration Services Data Types.For more information, see Integration Services Data Types.

    En formatos que incluyen un elemento de zona horaria, no hay ningún espacio entre el elemento de tiempo y el elemento de zona horaria, como se muestra en el ejemplo siguiente:In formats that include a time zone element, there is no space between the time element and the time zone element, as shown in the following example:

    HH:MI:SS[+HH:MI]HH:MI:SS[+HH:MI]

    Los corchetes del ejemplo anterior indican que el valor de zona horaria es opcional.The brackets in the previous example indicate that the time zone value is optional.

  • Formatos de hora que incluyen una fracción decimal, como se muestra en la tabla siguiente:Time formats that include a decimal fraction, as listed in the following table:

    FormatoFormat DescriptionDescription
    HH[.nnnnnnn]HH[.nnnnnnn] n es un valor entre 0 y 9999999 que representa una fracción de horas.n is a value between 0 and 9999999 that represents a fraction of hours. Los corchetes indican que este valor es opcional.The brackets indicate that this value is optional.

    Por ejemplo, el valor 12.750 indica 12:45.For example, the value 12.750 indicates 12:45.
    HHMI[.nnnnnnn]HHMI[.nnnnnnn]

    HH:MI[.nnnnnnn]HH:MI[.nnnnnnn]
    n es un valor entre 0 y 9999999 que representa una fracción de minutos.n is a value between 0 and 9999999 that represents a fraction of minutes. Los corchetes indican que este valor es opcional.The brackets indicate that this value is optional.

    Por ejemplo, el valor 1220.500 indica 12:20:30.For example, the value 1220.500 indicates 12:20:30.
    HHMISS[.nnnnnnn]HHMISS[.nnnnnnn]

    HH:MI:SS[.nnnnnnn]HH:MI:SS[.nnnnnnn]
    n es un valor entre 0 y 9999999 que representa una fracción de segundos.n is a value between 0 and 9999999 that represents a fraction of seconds. Los corchetes indican que este valor es opcional.The brackets indicate that this value is optional.

    Por ejemplo, el valor 122040.250 indica 12:20:40.15.For example, the value 122040.250 indicates 12:20:40.15.

    Nota

    El separador decimal para los formatos de hora de la tabla anterior puede ser un punto o una coma.The fraction separator for the time formats in the previous table can be a decimal or a comma.

  • Valores de hora que incluyen un segundo intercalar, como se muestra en los ejemplos siguientes:Time values that include a leap second, as shown in the following examples:

    23:59:60[.0000000]23:59:60[.0000000]

    235960[.0000000]235960[.0000000]

    El análisis rápido genera cadenas como DT_DBTIME y DT_DBTIME2.Fast parse outputs the strings as DT_DBTIME and DT_DBTIME2. Los valores de horas en formatos truncados se rellenan.Time values in truncated formats are padded. Por ejemplo, HH:MI pasa a ser HH:MM:00.000.For example, HH:MI becomes HH:MM:00.000.

    Para más información, consulte Integration Services Data Types.For more information, see Integration Services Data Types.

Tipo de datos de fecha/horaDate/Time data type

El análisis rápido admite los siguientes formatos de cadena para tipos de datos de fecha/hora:Fast parse supports the following string formats for date/time data:

  • Formatos con espacios en blanco iniciales.Formats that include leading white spaces. Por ejemplo, el valor " 2003-01/10T203910" es válido.For example, the value " 2003-01-10T203910" is valid.

  • Combinaciones de formatos de fecha válidos y los formatos de hora válidos separados por una T mayúscula, y formatos de zona horaria válidos, como YYYYMMDDT[HHMISS][+HH:MI].Combinations of valid date formats and valid time formats separated by an uppercase T, and valid time zone formats, such as YYYYMMDDT[HHMISS][+HH:MI]. Los valores de hora y zona horaria no son obligatorios.The time and time zone values are not required. Por ejemplo, "2003-10-14" es válido.For example, "2003-10-14" is valid.

    El análisis rápido no admite intervalos de tiempo.Fast parse does not support time intervals. Por ejemplo, un intervalo de tiempo identificado con una fecha y hora de inicio y fin en el formato YYYYMMDDThhmmss/YYYYMMDDThhmmss no se puede analizar.For example, a time interval identified by a start and end date and time in the format YYYYMMDDThhmmss/YYYYMMDDThhmmss cannot be parsed.

    El análisis rápido genera cadenas como DT_DATE, DT_DBTIMESTAMP, DT_DBTIMESTAMP2 y DT_DBTIMESTAMPOFFSET.Fast parse outputs the strings as DT_DATE, DT_DBTIMESTAMP, DT_DBTIMESTAMP2, and DT_DBTIMESTAMPOFFSET. Los valores de fecha/hora en formatos truncados se rellenan.Date/time values in truncated formats are padded. En la siguiente tabla se muestran los valores que se agregan para las partes de fecha y hora que faltan.The following table lists the values that are added for missing date and time parts.

Parte de fecha y horaDate/Time part RellenoPadding
SegundosSeconds Agregar 00.Add 00.
MinutosMinutes Agregar 00:00.Add 00:00.
HourHour Agregar 00:00:00.Add 00:00:00.
DayDay Agregar 01 para el día del mes.Add 01 for the day of the month.
MonthMonth Agregar 01 para el mes del año.Add 01 for the month of the year.

Para más información, consulte Integration Services Data Types.For more information, see Integration Services Data Types.

Habilitar el análisis rápidoEnable Fast Parse

La propiedad de análisis rápido debe configurarse para cada columna del origen o la transformación que utilice el análisis rápido.The fast parse property must be set for each column of the source or transformation that uses fast parse. Para configurar la propiedad, utilice el Editor avanzado del origen de archivo plano y la transformación Conversión de datos.To set the property, use the Advanced editor of the Flat File source and Data Conversion transformation.

  1. Haga clic con el botón derecho en el origen de archivo plano o en la transformación Conversión de datos y, después, haga clic en Mostrar editor avanzado.Right-click the Flat File source or Data Conversion transformation, and then click Show Advanced Editor.

  2. En el cuadro de diálogo Editor avanzado haga clic en la pestaña Propiedades de entrada y salida .In the Advanced Editor dialog box, click the Input and Output Properties tab.

  3. En el panel Entradas y salidas , haga clic en la columna para la cual desee habilitar el análisis rápido.In the Inputs and Outputs pane, click the column for which you want to enable fast parse.

  4. En la ventana Propiedades, expanda el nodo Propiedades personalizadas y establezca la propiedad FastParse en True.In the Properties window, expand the Custom Properties node, and then set the FastParse property to True.

  5. Haga clic en Aceptar.Click OK.

Standard ParseStandard Parse

El análisis estándar es un conjunto de rutinas de análisis dependientes de la configuración regional y que admiten todas las conversiones de tipo de datos proporcionadas por las API de conversión de tipo de datos de automatización disponibles en Oleaut32.dll y Ole2dsip.dll.Standard parse is a locale-sensitive set of parsing routines that support all the data type conversions provided by the Automation data type conversion APIs that are available in Oleaut32.dll and Ole2dsip.dll. El análisis estándar es equivalente a las API de análisis de OLE DB.Standard parse is equivalent to the OLE DB parsing APIs.

El análisis estándar proporciona conversión de tipo de datos internacionales y se debe usar si el análisis rápido no admite el formato de datos.Standard parse provides support for data type conversion of international data, and it should be used if the data format is not supported by Fast parse. Para obtener más información sobre la conversión API de los tipos de automatización de datos, vea "Los tipos de conversión de datos API" en la biblioteca MSDN.For more information about the Automation data type conversion API, see "Data Type Conversion APIs" in the MSDN Library.