다음을 통해 공유


데이터 구문 분석

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

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

2가지 구문 분석 유형

Integration Services는 데이터를 변환하기 위한 구문 분석의 두 가지 유형인 빠른 구문 분석과 표준 구문 분석을 제공합니다.

  • 빠른 구문 분석은 로컬별 데이터 형식 변환을 지원하지 않고 가장 자주 사용되는 날짜 및 시간 형식만 지원하는 빠르고 간단한 구문 분석 루틴 집합입니다.

  • 표준 구문 분석은 Oleaut32.dll 및 Ole2dsip.dll 사용할 수 있는 Automation 데이터 형식 변환 API에서 제공하는 모든 데이터 형식 변환을 지원하는 다양한 구문 분석 루틴 집합입니다.

빠른 구문 분석

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

요구 사항 및 제한 사항

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

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

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

100년, 1년 또는 1개월과 같이 하나 이상의 날짜 부분을 의미하는 잘린 표현은 빠른 구문 분석으로 인식되지 않습니다. 예를 들어 빠른 구문 분석에서는 묵시적 세기의 연도와 월을 지정하는 '-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 데이터 형식을 참조하세요.

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

  • 0개 이상의 선행 및 후행 공백 또는 탭 정지입니다. 예를 들어 " 123 "은 유효한 값입니다. 모든 공백인 값은 0으로 계산됩니다.

  • 선행하는 더하기 기호, 빼기 기호 또는 둘 다입니다. 예를 들어 +123, -123 및 123 값은 유효합니다.

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

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

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

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

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

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

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

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

  • 공백이 없어야합니다.

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

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

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

날짜 데이터 형식

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

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

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

    서식 설명
    YYYYMMDD

    YYYY-MM-DD
    4 자리 연도, 2 자리 월 및 2 자리 일의 기본 및 확장 형식입니다. 확장 형식에서 날짜 부분은 하이픈 (-)으로 구분됩니다.
    YYYY-MM 4 자리 연도와 2 자리 달의 기본 및 확장된 전체 자릿수 형식입니다. 확장 형식에서 날짜 부분은 하이픈 (-)으로 구분됩니다.
    YYYY 네 자리 연도의 축약 형식입니다.

빠른 구문 분석은 날짜 데이터에 대해 다음 형식을 지원하지 않습니다.

  • 알파벳순 월 값입니다. 예를 들어 Oct-31-2003 날짜 형식은 유효하지 않습니다.

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

  • 4자리 달력 연도 및 1년 이내의 3자리 일(YYYYDDD 및 YYYY-DDD)에 대한 기본 및 확장된 잘린 형식입니다.

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

  • 연도 및 주 날짜의 기본 및 확장 잘린 형식은 연도는 4자리 숫자, 주는 2자리 숫자, YYYWww 및 YYYY-Www입니다.

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

자세한 내용은 Integration Services 데이터 형식을 참조하세요.

시간 데이터 형식

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

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

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

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

    서식 설명
    HHMISS

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

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

    000000

    0000

    00

    240000

    24:00:00

    2400

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

    서식 설명
    +HH:MI

    +HHMI
    현지 시간을 얻기 위해 UTC(협정 세계시)에 추가되는 시간 및 분 수를 나타내는 기본 및 확장 형식입니다.
    -HH:MI

    -HHMI
    현지 시간을 얻기 위해 UTC에서 빼는 시간 및 분 수를 나타내는 기본 및 확장 형식입니다.
    +HH 현지 시간을 얻기 위해 UTC에 추가되는 시간을 나타내는 잘린 형식입니다.
    -HH 현지 시간을 얻기 위해 UTC에서 빼는 시간 수를 나타내는 잘린 형식입니다.
    Z 시간이 UTC로 표시됨을 나타내는 값 0입니다.

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

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

    HH:MI:SS[+HH:MI]

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

  • 다음 표에 나열된 것처럼 소수 자릿수를 포함하는 시간 형식입니다.

    서식 설명
    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를 나타냅니다.

    참고 항목

    이전 표의 시간 형식에 대한 분수 구분 기호는 10진수 또는 쉼표일 수 있습니다.

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

    23:59:60[.0000000]

    235960[.0000000]

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

자세한 내용은 Integration Services 데이터 형식을 참조하세요.

날짜/시간 데이터 형식

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

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

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

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

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

날짜/시간 부분 패딩
00을 추가합니다.
00:00을 추가합니다.
Hour 00:00:00을 추가합니다.
요일 해당 월의 날짜에 대해 01을 추가합니다.
Month 해당 월의 01을 추가합니다.

자세한 내용은 Integration Services 데이터 형식을 참조하세요.

빠른 구문 분석 사용

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

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

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

  3. 입력 및 출력 창에서 빠른 구문 분석을 사용하도록 설정할 열을 클릭합니다.

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

  5. 확인을 클릭합니다.

표준 구문 분석

표준 구문 분석은 Oleaut32.dll 및 Ole2dsip.dll 사용할 수 있는 Automation 데이터 형식 변환 API에서 제공하는 모든 데이터 형식 변환을 지원하는 로컬에 민감한 구문 분석 루틴 집합입니다. 표준 구문 분석은 OLE DB 구문 분석 API와 동일합니다.

표준 구문 분석에서는 국제 데이터의 데이터 형식 변환을 지원하며, 빠른 구문 분석에서 데이터 형식을 지원하지 않는 경우 사용해야 합니다.