세계화 팁 및 모범 사례(Analysis Services)

적용 대상: 다차원에만

이러한 팁과 지침을 활용하여 비즈니스 인텔리전스 솔루션의 이식성을 향상하고 언어 및 데이터 정렬 설정과 직접 관련된 오류를 방지할 수 있습니다.

  • 스택 전체에서 유사한 데이터 정렬 사용

  • 일반적인 데이터 정렬 권장 사항

  • 개체 식별자의 대/소문자 구분

  • Excel 및 SQL Server Profiler를 사용한 로캘 테스트

  • 번역을 포함하는 솔루션에서 MDX 쿼리 작성

  • 날짜 및 시간 값을 포함하는 MDX 쿼리 작성

스택 전체에서 유사한 데이터 정렬 사용

전자/반자 구분, 대/소문자 구분, 악센트 구분이 일치하도록 가능하면 데이터베이스 엔진에서 사용하는 것과 같은 데이터 정렬 설정을 Analysis Services에서 사용하세요.

각 서비스에는 자체 데이터 정렬 설정이 있고 데이터베이스 엔진 기본값은 SQL_Latin1_General_CP1_CI_AS로 설정되고 Analysis Services는 Latin1_General_AS로 설정됩니다. 대/소문자, 전자/반자 및 악센트 구분에 대한 기본값은 호환됩니다. 데이터 정렬 중 하나의 설정을 변경하면 데이터 정렬 속성이 기본적으로 달라질 때 문제가 발생할 수 있다는 사전 경고가 표시됩니다.

데이터 정렬 설정이 기능 면에서 동일하더라도 문자열 내의 빈 공백이 각 서비스에 의해 다르게 해석되는 특별한 경우가 발생할 수 있습니다.

유니코드에서 1바이트(SBCS) 또는 더블바이트 문자 집합(DBCS)으로 표시될 수 있기 때문에 공백 문자는 '특별한 경우'입니다. 관계형 엔진에서 각각 SBCS 또는 DBCS를 사용하는 공백으로 구분된 두 복합 문자열은 동일하다고 간주합니다. Analysis Services에서 처리하는 동안 같은 두 복합 문자열은 동일하지 않고 두 번째 인스턴스에 중복 플래그가 표시됩니다.

자세한 내용과 제안된 해결 방법에 대해서는 데이터 정렬에 따라 유니코드 문자열의 공백이 다르게 처리됨(영문)을 참조하세요.

일반적인 데이터 정렬 권장 사항

Analysis Services에서는 항상 모든 사용 가능한 언어 및 데이터 정렬의 전체 목록을 제공하며, 선택된 언어에 따라 데이터 정렬을 필터링하지 않습니다. 실행 가능한 조합을 선택해야 합니다.

자주 사용되는 일부 데이터 정렬이 다음 목록에 나와 있습니다.

이 목록은 다른 옵션을 제외하는 분명한 권장 사항이 아니라 추가 조사의 시작점으로 고려해야 합니다. 특별히 권장되지 않는 데이터 정렬이 데이터에 가장 적합한 데이터 정렬임을 알 수 있습니다. 철저한 테스트는 데이터 값이 적절히 정렬 및 비교되는지 확인하는 유일한 방법입니다. 항상 데이터 정렬을 테스트할 때 처리 및 쿼리 작업을 둘 다 실행해야 합니다.

  • Latin1_General_100_AS는 ISO 기본 라틴어 알파벳의 26자를 사용하는 응용 프로그램에 종종 사용됩니다.

  • 스칸디나비아어 문자(예: ø)를 포함하는 북부 유럽 언어에는 Finnish_Swedish_100을 사용할 수 있습니다.

  • 러시아어 같은 동부 유럽 언어에는 종종 Cyrillic_General_100을 사용합니다.

  • 중국어 언어 및 데이터 정렬은 지역에 따라 달라지지만 일반적으로 중국어 언어 또는 중국어 번체의 하나입니다.

    PRC 및 싱가포르에서 Microsoft 지원은 중국어 간체를 한어병음과 함께 기본 정렬 순서로 확인하는 경향이 있습니다. 권장 데이터 정렬은 Chinese_PRC(SQL Server 2000), Chinese_PRC_90(SQL Server 2005) 또는 Chinese_Simplified_Pinyin_100(SQL Server 2008 이상)입니다.

    대만에서는 획수에 따른 권장 정렬 순서 Chinese_Taiwan_Stroke(SQL Server 2000), Chinese_Taiwan_Stroke_90(SQL Server 2005) 또는 Chinese_Traditional_Stroke_Count_100(SQL Server 2008 이상)으로 중국어 번체를 확인하는 것이 더 일반적입니다.

    다른 지역(예: 홍콩 및 마카오)에서는 중국어 번체도 사용합니다. 홍콩에서는 데이터 정렬로 Chinese_Hong_Kong_Stroke_90(SQL Server 2005)을 확인하는 것이 일반적입니다. 마카오에서는 Chinese_Traditional_Stroke_Count_100(SQL Server 2008 이상)이 자주 사용됩니다.

  • 일본어에서 가장 자주 사용되는 데이터 정렬은 Japanese_CI_AS입니다. Japanese_XJIS_100은 JIS2004를 지원하는 설치에서 사용됩니다. Japanese_BIN2는 일반적으로 Windows 이외의 플랫폼에서 또는 SQL Server 관계형 데이터베이스 엔진 이외의 데이터 원본에서 가져온 데이터를 사용한 데이터 마이그레이션 프로젝트에서 확인됩니다.

    Japanese_Bushu_Kakusu_100은 Analysis Services 작업을 실행하는 서버에서 거의 확인되지 않습니다.

  • Korean_100은 한국어에 대해 권장됩니다. Korean_Wansung_Unicode도 목록에 있지만 더 이상 사용되지 않습니다.

개체 식별자의 대/소문자 구분

SQL Server 2012 SP 2부터 개체 ID의 대/소문자 구분은 데이터 정렬과 개별적으로 적용되지만 동작은 언어별로 달라집니다.

언어 스크립트

대/소문자 구분

기본 라틴어 알파벳

라틴어 스크립트(26개 영어 대문자 또는 소문자)로 표시되는 개체 식별자는 데이터 정렬과 관계없이 대/소문자를 구분하지 않습니다. 예를 들어 54321abcdef, 54321ABCDEF, 54321AbCdEf와 같은 개체 ID는 동일한 것으로 간주합니다. 내부적으로 Analysis Services에서는 문자열의 문자를 모두 대문자인 것처럼 처리하고 언어와 관계없이 간단한 바이트 비교를 수행합니다.

26개 문자에만 적용됩니다. 서부 유럽 언어에 스칸디나비아어 문자가 사용되면 추가 문자는 대문자로 처리되지 않습니다.

키릴 자모, 그리스어, 콥트어, 아르메니아어

키릴 자모 같은 비 라틴 이중 스크립트의 개체 식별자는 항상 대/소문자를 구분합니다. 예를 들어 Измерение 및 измерение는 차이가 첫 번째 문자의 대/소문자뿐이지만 두 개의 개별 값으로 간주합니다.

개체 식별자 대/소문자 구분의 의미

개체 이름이 아니라 개체 식별자에만 표에 설명된 대/소문자 구분 동작이 적용됩니다. 솔루션 작동 방식이 변경되면(비교 전 및 후 - SQL Server 2012 SP 2 이상 설치 후) 처리 문제일 가능성이 가장 큽니다. 쿼리는 개체 식별자의 영향을 받지 않습니다. 두 쿼리 언어 모두(DAX 및 MDX) 수식 엔진에는 식별자가 아니라 개체 이름이 사용됩니다.

[!참고]

대/소문자 구분과 관련된 코드 변경 내용은 일부 응용 프로그램에 대한 주요 변경 내용이었습니다. 자세한 내용은 SQL Server 2012에서 Analysis Services 기능의 주요 변경 내용을 참조하세요.

Excel, SQL Server Profiler 및 SQL Server Management Studio를 사용한 로캘 테스트

번역을 테스트할 때 연결로 번역의 LCID를 지정해야 합니다. SSAS에서 Excel로 여러 언어 가져오기(영문)의 설명대로 Excel을 사용하여 번역을 테스트할 수 있습니다.

이 작업을 하려면 직접 로캘 ID 연결 문자열 속성을 포함하도록 .odc 파일을 편집합니다. Adventure Works 샘플 다차원 데이터베이스로 이 작업을 해 보세요.

  • 기존 .odc 파일을 검색합니다. Adventure Works 다차원에 대한 파일을 찾으면 파일을 마우스 오른쪽 단추로 클릭하여 메모장에서 엽니다.

  • 연결 문자열에 Locale Identifier=1036를 추가합니다. 파일을 저장하고 닫습니다.

  • Excel | 데이터 | 기존 연결을 엽니다. 이 컴퓨터에 있는 연결 파일에 대한 목록만 필터링합니다. Adventure Works에 대한 연결을 찾습니다(이름을 주의해서 살펴보면 두 개 이상 있을 수 있음). 연결을 엽니다.

    Adventure Works 샘플 데이터베이스에서 프랑스어 번역을 확인해야 합니다.

    프랑스어로 번역 된 Excel 피벗 테이블

추가 작업으로 SQL Server Profiler를 사용하여 로캘을 확인할 수 있습니다. Session Initialize 이벤트를 클릭하고 아래 텍스트 영역에서 속성 목록을 확인하여 <localeidentifier>1036</localeidentifier>를 찾습니다.

Management Studio에서 서버 연결에 대한 로캘 ID를 지정할 수 있습니다.

  • 개체 탐색기 | 연결 | Analysis Services | 옵션에서 추가 연결 매개 변수 탭을 클릭합니다.

  • Local Identifier=1036을 입력하고 연결을 클릭합니다.

  • Adventure Works 데이터베이스에 대해 MDX 쿼리를 실행합니다. 쿼리 결과는 프랑스어 번역이어야 합니다.

    SSMS의 프랑스어로 번역 된 MDX 쿼리

번역을 포함하는 솔루션에서 MDX 쿼리 작성

번역은 Analysis Services 개체의 이름에 대한 표시 정보를 제공합니다. 그러나 동일 개체의 식별자는 번역되지 않습니다. 가능하면 번역된 캡션 및 이름 대신 Analysis Services 개체의 식별자 및 키를 사용하십시오. 예를 들어 여러 언어 간 이식성을 위해 MDX(Multidimensional Expressions) 문 및 스크립트에 대해 멤버 이름 대신 멤버 키를 사용할 수 있습니다.

[!참고]

표 형식 개체 이름은 항상 데이터 정렬과 관계없이 대/소문자를 구분하지 않습니다. 반면에 다차원 개체 이름은 데이터 정렬의 대/소문자 구분을 따릅니다. 다차원 개체 이름만 대/소문자를 구분하므로 다차원 개체를 참조하는 모든 MDX 쿼리는 올바르게 대/소문자가 구분되어야 합니다.

날짜 및 시간 값을 포함하는 MDX 쿼리 작성

다양한 언어에서 날짜 및 시간 기반 MDX 쿼리의 이식성을 높이기 위한 제안은 다음과 같습니다.

  1. 비교 및 작업에 대한 숫자 부분 사용

    월/요일 비교 및 작업을 수행할 때 해당하는 문자열 대신 숫자 날짜 및 시간 부분 사용(예: MonthName 대신 MonthNumberofYear 사용). 숫자 값은 언어 번역의 영향을 가장 덜 받습니다.

  2. 결과 집합에 해당하는 문자열 사용

    최종 사용자에게 표시되는 결과 집합을 빌드할 때 다국어 고객이 제공된 번역을 활용할 수 있도록 문자열(예: MonthName)을 사용하는 것이 좋습니다.

  3. 범용 날짜 및 시간 정보에 대한 ISO 날짜 형식 사용

    Analysis Services 전문가 한 명이 이 권장 사항을 제공합니다. "ISO 날짜 형식 yyyy-mm-dd은 분명하고 클라이언트 또는 서버의 국가별 설정과 관계없이 작동하므로 SQL 또는 MDX의 쿼리에 전달하는 날짜 문자열에 항상 이 형식을 사용합니다. 서버에서 모호한 날짜 형식을 구문 분석할 때 국가별 설정에 따라야 한다는 점에는 동의하지만, 해석을 받아들이지 않을 선택권이 있다면 이 형식을 선택하는 것이 더 좋다고 생각합니다."

  4. Use the Format function to enforce a specific format, regardless of regional language settings

    포럼 게시물에서 가져온 다음 MDX 쿼리에서는 형식을 사용하여 기본 국가별 설정과 관계없이 특정 형식으로 날짜를 반환하는 방법을 보여 줍니다.

    원래 게시물에 대해서는 잘못된 날짜를 생성하는 SSAS 2012(Network Steve의 포럼 게시물)(영문)를 참조하세요.

    WITH MEMBER [LinkTimeAdd11Date_Manual] as Format(dateadd("d",15,"2014-12-11"), "mm/dd/yyyy")
    member [LinkTimeAdd15Date_Manual] as Format(dateadd("d",11,"2014-12-13"), "mm/dd/yyyy")
    SELECT
    { [LinkTimeAdd11Date_Manual]
    ,[LinkTimeAdd15Date_Manual]
    }
    ON COLUMNS 
    FROM [Adventure Works]
    

참고 항목

개념

Analysis Services 다차원에 대한 전역화 시나리오

국가별 Transact-SQL 문 작성