데이터 구문 분석

적용 대상: Azure Data Factory SSIS Integration Runtime SQL Server

패키지의 데이터 흐름에서는 다양한 표준 및 사용자 지정 데이터 형식이 사용될 수 있는 다른 유형의 데이터 저장소 간의 데이터가 추출 및 로드됩니다. 데이터 흐름에서 Integration Services 원본은 데이터를 추출하고, 문자열 데이터를 구문 분석하고, 데이터를 Integration Services 데이터 형식으로 변환하는 작업을 수행합니다. 이후의 변환에서는 데이터를 다른 데이터 형식으로 변환하기 위해 데이터를 구문 분석하거나 다른 데이터 형식이 포함된 열 복사본을 만들 수 있습니다. 구성 요소에 사용된 식에서는 인수와 피연산자를 다른 데이터 형식으로 캐스팅할 수도 있습니다. 마지막으로, 데이터가 데이터 저장소에 로드될 때 대상에서는 대상에 사용되는 데이터 형식으로 데이터를 변환하기 위해 데이터를 구문 분석할 수 있습니다. 자세한 내용은 Integration Services Data Types을 참조하세요.

두 가지 유형의 구문 분석

Integration Services 에서는 데이터 변환을 위해 빠른 구문 분석과 표준 구문 분석이라는 두 가지 유형의 구문 분석을 제공합니다.

  • 빠른 구문 분석은 신속하고 간단한 구문 분석 루틴이지만 로캘 특정 데이터 형식 변환을 지원하지 않으며 가장 자주 사용되는 날짜 및 시간 형식만 지원합니다.

  • 표준 구문 분석은 다양한 기능이 포함된 구문 분석 루틴이며 Oleaut32.dll 및 Ole2dsip.dll에서 사용할 수 있는 자동 데이터 형식 변환 API에 제공되는 모든 데이터 형식 변환을 지원합니다.

Fast Parse

빠른 구문 분석에서는 데이터 구문 분석을 위한 신속하고 간단한 루틴을 제공합니다. 이러한 루틴은 로캘을 구분하지 않으며 날짜, 시간 및 정수 형식의 하위 집합만 지원합니다.

요구 사항 및 제한 사항:

빠른 구문 분석을 구현하면 패키지는 날짜, 시간 및 숫자 데이터를 로캘 관련 형식 및 자주 사용하는 ISO 8601 기본 및 확장 형식으로 해석하는 기능을 사용할 수 없지만 성능이 향상됩니다. 예를 들어 빠른 구문 분석에서는 YYYYMMDD 및 YYYY-MM-DD처럼 가장 일반적으로 사용되는 날짜 형식 표현만 지원되고, 로캘 관련 구문 분석은 수행되지 않으며, 통화 데이터의 특수 문자가 인식되지 않고, 정수의 16진수 또는 과학적 표기법이 변환되지 않습니다.

빠른 구문 분석은 플랫 파일 원본 또는 데이터 변환을 사용하는 경우에만 사용할 수 있습니다. 성능 향상이 중요한 경우 가능하면 이러한 데이터 흐름 구성 요소에 빠른 구문 분석을 사용해야 합니다.

패키지의 데이터 흐름에 로캘 구분 구문 분석이 필요한 경우 빠른 구문 분석 대신 표준 구문 분석이 권장됩니다. 예를 들어 빠른 구문 분석에서는 쉼표, 연도-월-날짜 형식 이외의 날짜 형식 및 통화 기호와 같은 숫자 기호가 포함되는 로캘 구분 데이터가 인식되지 않습니다.

세기, 연도 또는 월과 같은 하나 이상의 날짜 부분을 의미하는 잘린 표시는 빠른 구문 분석에서 인식되지 않습니다. 예를 들어 빠른 구문 분석에서는 세기가 암시적으로 잘린 연도 및 월을 나타내는 '-YYMM' 형식이나 연도가 암시적으로 잘린 월을 나타내는 '--MM'이 인식되지 않습니다. 하지만 일부 축약 형식 표현은 인식됩니다. 예를 들어 빠른 구문 분석에서는 시간과 분만 나타내는 'hhmm;' 형식과 연도만 나타내는 'YYYY'가 인식됩니다.

빠른 구문 분석은 열 수준에서 지정됩니다. 플랫 파일 원본과 데이터 변환의 경우 출력 열에 빠른 구문 분석을 지정할 수 있습니다. 입력과 출력에는 로캘 구분 및 로캘 비구분 열이 모두 포함될 수 있습니다.

숫자 데이터 형식(빠른 구문 분석)

빠른 구문 분석에서는 데이터 구문 분석을 위해 로캘을 구분하지 않는 신속하고 간단한 루틴을 제공합니다. 빠른 구문 분석은 일부 제한된 정수 데이터 형식만 지원합니다.

Integer 데이터 형식

Integration Services 에서 제공되는 정수 데이터 형식은 DT_I1, DT_UI1, DT_I2, DT_UI2, DT_I4, DT_UI4, DT_I8 및 DT_UI8입니다. 자세한 내용은 Integration Services Data Types을 참조하세요.

빠른 구문 분석에서는 정수 데이터에 대해 다음과 같은 형식이 지원됩니다.

  • 0개 이상의 선행 및 후행 공백이나 탭 정지. 예를 들어 " 123 "은 유효한 값입니다. 공백으로만 이뤄진 값은 0으로 계산됩니다.

  • 선행 더하기 기호, 빼기 기호 또는 아무 기호도 사용되지 않음. 예를 들어 +123, -123 및 123은 유효한 값입니다.

  • 하나 이상의 힌두-아라비아 숫자(0-9). 예를 들어 345는 유효한 값입니다. 다른 언어의 숫자는 지원되지 않습니다.

지원되지 않는 데이터 형식은 다음과 같습니다.

  • 특수 문자. 예를 들어 통화 문자 $는 지원되지 않으며 $20 값은 구문 분석할 수 없습니다.

  • 줄 바꿈, 캐리지 리턴 및 줄 바꿈하지 않는 공백과 같은 공백 문자. 예를 들어 "123" 값은 구문 분석할 수 없습니다.

  • 정수의 16진 표시. 예를 들어 2EE 값은 구문 분석할 수 없습니다.

  • 정수의 공학 표시. 예를 들어 1E+10 값은 구문 분석할 수 없습니다.

다음 형식은 정수에 대한 출력 데이터 형식입니다.

  • 음수에는 빼기 기호가 표시되고 양수에는 기호가 표시되지 않습니다.

  • 공백이 사용되지 않습니다.

  • 하나 이상의 힌두-아라비아 숫자(0-9).

날짜 및 시간 형식(빠른 구문 분석)

빠른 구문 분석에서는 데이터 구문 분석을 위한 신속하고 간단한 루틴을 제공합니다. 빠른 구문 분석에서는 날짜 및 시간 데이터 형식에 대해 다음과 같은 형식이 지원됩니다.

날짜 데이터 형식

빠른 구문 분석에서는 날짜 데이터에 대해 다음과 같은 문자열 형식이 지원됩니다.

  • 선행 공백을 포함하는 날짜 형식. 예를 들어 " 2004-02-03"은 유효한 값입니다.

  • 다음 표에 나열된 ISO 8601 형식

    서식 Description
    YYYYMMDD

    YYYY-MM-DD
    네 자리 연도, 두 자리 월 및 두 자리 일이 포함된 기본 및 하이픈으로 연결된 형식입니다. 하이픈으로 연결된 형식에서 날짜 부분은 하이픈(-)으로 구분됩니다.
    YYYY-MM 네 자리 연도와 두 자리 연도의 기본 및 하이픈으로 연결된 축약 형식입니다. 하이픈으로 연결된 형식에서 날짜 부분은 하이픈(-)으로 구분됩니다.
    YYYY 네 자리 연도의 축약 형식입니다.

빠른 구문 분석에서는 날짜 데이터에 대해 다음과 같은 형식이 지원되지 않습니다.

  • 영문자 월 값. 예를 들어 Oct-31-2003 날짜 형식은 유효하지 않습니다.

  • DD-MM-YYYY 및 MM-DD-YYYY와 같은 모호한 형식. 예를 들어 03-04-1995 및 04-03-1995는 유효하지 않습니다.

  • 네 자리 역년과 일 년 내의 세 자리 일의 기본 및 확장 잘림 형식(YYYYDDD 및 YYYY-DDD)입니다.

  • 네 자리 연도, 해당 연도의 주를 나타내는 두 자리 숫자 및 해당 주의 일을 나타내는 한 자리 숫자의 기본 및 확장 형식(YYYYWwwD 및 YYYY-Www-D)입니다.

  • 연도와 주 날짜에 대한 기본 및 확장 잘림 형식(YYYWww 및 YYYY-Www)은 네 자리 연도와 주를 나타내는 두 자리 숫자입니다.

빠른 구문 분석에서는 날짜가 DT_DBDATE로 출력됩니다. 잘림 형식의 날짜 값은 채워집니다. 예를 들어 YYYY는 YYYY0101이 됩니다.

자세한 내용은 Integration Services Data Types을 참조하세요.

Time 데이터 형식

빠른 구문 분석에서는 시간 데이터에 대해 다음과 같은 문자열 형식이 지원됩니다.

  • 선행 공백을 포함하는 시간 형식. 예를 들어 " 10:24"는 유효한 값입니다.

  • 24시간 형식. 빠른 구문 분석에서는 AM 및 PM 표기가 지원되지 않습니다.

  • 다음 표에 나열된 ISO 8601 시간 형식

    서식 Description
    HHMISS

    HH:MI:SS
    두 자리 시간, 두 자리 분 및 두 자리 초의 기본 및 확장 형식입니다. 확장 형식에서 시간 부분은 콜론(:)으로 구분됩니다.
    HHMI

    HH:MI
    두 자리 시간과 두 자리 분의 기본 및 확장 잘림 형식입니다. 확장 형식에서 시간 부분은 콜론(:)으로 구분됩니다.
    HH 두 자리 시간의 잘림 형식입니다.
    00:00:00

    000000

    0000

    00

    240000

    24:00:00

    2400

    24
    자정 형식입니다.
  • 다음 표에 나열된 표준 시간대를 지정하는 시간 형식

    서식 Description
    +HH:MI

    +HHMI
    현지 시간을 얻기 위해 UTC(Coordinated Universal Time)에 더한 시간과 분을 나타내는 기본 및 확장 형식입니다.
    -HH:MI

    -HHMI
    현지 시간을 얻기 위해 UTC에서 뺀 시간과 분을 나타내는 기본 및 확장 형식입니다.
    +HH 현지 시간을 얻기 위해 UTC에 더한 시간을 나타내는 잘림 형식입니다.
    -HH 현지 시간을 얻기 위해 UTC에서 뺀 시간을 나타내는 잘림 형식입니다.
    Z 값 0은 시간이 UTC 시간임을 나타냅니다.

    모든 시간 및 날짜/시간 데이터의 형식은 표준 시간대 요소를 포함할 수 있습니다. 그러나 데이터가 DT_DBTIMESTAMPOFFSET 유형인 경우를 제외하고 시스템에서는 표준 시간대 값이 무시됩니다. 자세한 내용은 Integration Services Data Types을 참조하세요.

    표준 시간대 요소를 포함하는 형식에서는 다음 예와 같이 시간 요소와 표준 시간대 요소 사이에 공백이 없습니다.

    HH:MI:SS[+HH:MI]

    앞의 예에서 대괄호는 표준 시간대 값이 선택 사항임을 나타냅니다.

  • 다음 표에 나열된 소수 부분을 포함하는 시간 형식

    서식 Description
    HH[.nnnnnnn] n은 시간의 소수 부분을 나타내는 0에서 9999999 사이의 값입니다. 대괄호는 이 값이 선택 사항임을 나타냅니다.

    예를 들어 값 12.750은 12:45를 나타냅니다.
    HHMI[.nnnnnnn]

    HH:MI[.nnnnnnn]
    n은 분의 소수 부분을 나타내는 0에서 9999999 사이의 값입니다. 대괄호는 이 값이 선택 사항임을 나타냅니다.

    예를 들어 값 1220.500은 12:20:30을 나타냅니다.
    HHMISS[.nnnnnnn]

    HH:MI:SS[.nnnnnnn]
    n은 초의 소수 부분을 나타내는 0에서 9999999 사이의 값입니다. 대괄호는 이 값이 선택 사항임을 나타냅니다.

    예를 들어 값 122040.250은 12:20:40.15를 나타냅니다.

    참고

    앞의 표에서 시간 형식의 소수 구분 기호는 소수점이나 쉼표일 수 있습니다.

  • 다음 예와 같이 윤초를 포함하는 시간 값

    23:59:60[.0000000]

    235960[.0000000]

빠른 구문 분석에서는 문자열이 DT_DBTIME 및 DT_DBTIME2로 출력됩니다. 잘림 형식의 시간 값은 채워집니다. 예를 들어 HH:MI는 HH:MM:00.000이 됩니다.

자세한 내용은 Integration Services Data Types을 참조하세요.

날짜/시간 데이터 형식

빠른 구문 분석에서는 날짜/시간 데이터에 대해 다음과 같은 문자열 형식이 지원됩니다.

  • 선행 공백을 포함하는 형식. 예를 들어 " 2003-01-10T203910"은 유효한 값입니다.

  • 대문자 T로 구분된 유효한 날짜 형식과 유효한 시간 형식의 조합(예: YYYYMMDDT[HHMISS][+HH:MI]). 시간 및 표준 시간대 값은 필요하지 않습니다. 예를 들어 "2003-10-14"는 유효합니다.

빠른 구문 분석에서는 시간 간격이 지원되지 않습니다. 예를 들어 YYYYMMDDThhmmss/YYYYMMDDThhmmss 형식에서 시작 및 종료 날짜/시간으로 구분된 시간 간격은 구문 분석할 수 없습니다.

빠른 구문 분석에서는 문자열이 DT_DATE, DT_DBTIMESTAMP, DT_DBTIMESTAMP2 및 DT_DBTIMESTAMPOFFSET으로 출력됩니다. 잘림 형식의 날짜/시간 값은 채워집니다. 다음 표에서는 누락된 날짜 및 시간 부분에 대해 추가되는 값을 나열합니다.

날짜/시간 부분 안쪽 여백
00을 추가합니다.
00:00을 추가합니다.
시간 00:00:00을 추가합니다.
해당 월의 일에 대해 01을 추가합니다.
Month 해당 연도의 월에 대해 01을 추가합니다.

자세한 내용은 Integration Services Data Types을 참조하세요.

빠른 구문 분석 활성화

빠른 구문 분석을 사용하는 원본 또는 변환의 각 열에는 빠른 구문 분석 속성을 설정해야 합니다. 이 속성을 설정하려면 플랫 파일 원본 및 데이터 변환의 고급 편집기를 사용합니다.

  1. 플랫 파일 원본이나 데이터 변환을 마우스 오른쪽 단추로 클릭하고 고급 편집기 표시를 클릭합니다.

  2. 고급 편집기 대화 상자에서 입/출력 속성 탭을 클릭합니다.

  3. 입/출력 창에서 빠른 구문 분석을 설정할 열을 클릭합니다.

  4. 속성 창에서 사용자 지정 속성 노드를 확장하고 FastParse 속성을 True로 설정합니다.

  5. 확인을 클릭합니다.

Standard Parse

표준 구문 분석은 로캘 기반의 구문 분석 루틴이며 Oleaut32.dll 및 Ole2dsip.dll에서 사용할 수 있는 Automation 데이터 형식 변환 API에 제공되는 모든 데이터 형식 변환을 지원합니다. 표준 구문 분석은 API를 구문 분석하는 OLE DB와 동일합니다.

표준 구문 분석은 국가별 데이터에 대한 데이터 형식 변환을 지원하며 데이터 형식이 빠른 구문 분석에서 지원되지 않는 경우에만 사용되어야 합니다.