Babelfish에서 지원하는 데이터 정렬 - Amazon Aurora

Babelfish에서 지원하는 데이터 정렬

Babelfish를 사용하여 Aurora PostgreSQL DB 클러스터를 생성하는 경우 데이터의 데이터 정렬을 선택하게 됩니다. 데이터 정렬은 주어진 문자 언어로 텍스트 또는 문자를 생성하는 정렬 순서와 비트 패턴을 지정합니다. 데이터 정렬에는 지정된 비트 패턴 세트에 대한 데이터를 비교하는 규칙이 포함됩니다. 데이터 정렬은 현지화와 관련이 있습니다. 서로 다른 로캘은 문자 매핑, 정렬 순서 등에 영향을 줍니다. 데이터 정렬 속성은 다양한 데이터 정렬의 이름에 반영됩니다. 속성에 대한 자세한 내용은 Babelfish collation attributes table 섹션을 참조하세요.

Babelfish는 SQL Server 데이터 정렬을 Babelfish에서 제공하는 유사한 데이터 정렬에 매핑합니다. Babelfish는 문화적으로 민감한 문자열 비교 및 정렬 순서를 사용하여 유니코드 데이터 정렬을 미리 정의합니다. 또한 Babelfish는 SQL Server DB에 있는 데이터 정렬을 가장 r근접하게 일치하는 Babelfish 데이터 정렬로 변환하는 방법을 제공합니다. 로캘별 데이터 정렬은 다양한 언어 및 지역에 대해 제공됩니다.

일부 데이터 정렬은 클라이언트 측 인코딩에 해당하는 코드 페이지를 지정합니다. Babelfish는 각 출력 열의 데이터 정렬에 따라 서버 인코딩에서 클라이언트 인코딩으로 자동 변환됩니다.

Babelfish는 Babelfish supported collations table에 나열된 데이터 정렬을 지원합니다. Babelfish는 SQL Server 데이터 정렬을 Babelfish에서 제공하는 유사한 데이터 정렬에 매핑합니다.

Babelfish는 International Components for Unicode(ICU) 데이터 정렬 라이브러리 버전 153.80을 사용합니다. ICU 데이터 정렬의 자세한 내용은 ICU 설명서의 데이터 정렬을 참조하세요. PostgreSQL 및 데이터 정렬에 대한 자세한 내용은 PostgreSQL 설명서의 Collation Support(데이터 정렬 지원)을 참조하세요.

데이터 정렬 및 로캘을 제어하는 DB 클러스터 파라미터

다음 파라미터는 데이터 정렬 동작에 영향을 줍니다.

babelfishpg_tsql.default_locale

이 파라미터는 데이터 정렬에 사용되는 기본 로캘을 지정합니다. 또한, Babelfish collation attributes table에 나열된 속성과 함께 사용되어 특정 언어 및 지역에 대한 데이터 정렬을 사용자 지정합니다. 이 파라미터의 기본값은 en-US입니다.

기본 로캘은 BBF로 시작하는 모든 Babelfish 데이터 정렬 이름과 Babelfish 데이터 정렬에 매핑되는 모든 SQL Server 데이터 정렬에 적용됩니다. 기존 Babelfish DB 클러스터의 이 파라미터에 대한 설정을 변경해도 기존 데이터 정렬의 로캘에는 영향을 주지 않습니다. 데이터 정렬 목록은 Babelfish supported collations table 섹션을 참조하세요.

babelfishpg_tsql.server_collation_name

이 파라미터는 서버(Aurora PostgreSQL DB 클러스터 인스턴스)와 데이터베이스의 기본 데이터 정렬을 지정합니다. 기본값은 sql_latin1_general_cp1_ci_as입니다. T-SQL에서 서버 데이터 정렬이 식별자를 비교하는 방법을 결정하므로 server_collation_nameCI_AS 데이터 정렬이어야 합니다.

Babelfish DB 클러스터를 생성할 때 선택 가능한 목록에서 데이터 정렬 이름(Collation name)을 선택합니다. 여기에는 Babelfish supported collations table에 나열된 데이터 정렬이 포함됩니다. Babelfish 데이터베이스가 생성된 후 server_collation_name을 수정하지 마세요.

Babelfish for Aurora PostgreSQL DB 클러스터를 생성할 때 선택하는 설정은 이러한 파라미터의 클러스터와 연결된 DB 클러스터 파라미터 그룹에 저장되고 데이터 정렬 동작을 설정합니다.

결정적 및 비결정적 데이터 정렬 및 Babelfish

Babelfish는 결정적이고 비결정적인 데이터 정렬을 지원합니다.

  • 결정적 데이터 정렬은 동일한 바이트 시퀀스를 가진 문자를 동등하게 평가합니다. 이는 xX가 결정적 데이터 정렬에서는 동일하지 않다는 뜻입니다. 결정적 데이터 정렬에는 대소문자 구분(CS) 및 악센트 구분(AS)이 적용됩니다.

  • 비결정적 데이터 정렬은 똑같이 일치할 필요가 없습니다. 비결정적 데이터 정렬은 xX를 동일한 것으로 확인합니다. 비결정적 데이터 정렬은 대소문자 구분하지 않음(CI) 및 악센트 구분하지 않음(AI)이 적용됩니다.

다음 테이블에서 비결정적 데이터 정렬을 사용할 때 Babelfish와 PostgreSQL 간의 동작 차이점을 확인할 수 있습니다.

Babelfish PostgreSQL

CI_AS 데이터 정렬에 대한 LIKE 절을 지원합니다.

비결정적 데이터 정렬에서는 LIKE 절을 지원하지 않습니다.

AI 데이터 정렬의 LIKE 절을 지원하지 않습니다.

비결정적 데이터 정렬에서는 패턴 일치 작업이 지원되지 않습니다.

SQL Server 및 PostgreSQL과 비교하여 Babelfish의 기타 제한 사항 및 동작 차이점에 대한 목록은 데이터 정렬 제한 및 동작 차이점 섹션을 참조하세요.

Babelfish와 SQL Server는 다음 테이블과 같이 데이터 정렬 속성을 설명하는 데이터 정렬에 대한 명명 규칙을 따릅니다.

속성 설명

AI

악센트 구분하지 않음.

AS

악센트 구분.

BIN2

BIN2는 코드 포인트 순서대로 데이터를 정렬하도록 요청합니다. 유니코드 코드 포인트 순서는 UTF-8, UTF-16 및 UCS-2 인코딩의 문자 순서와 동일합니다. 코드 포인트 순서는 빠른 결정적 데이터 정렬입니다.

CI

대소문자 구분하지 않음.

CS

대소문자 구분.

PREF

소문자 앞에 대문자를 정렬하려면 PREF 데이터 정렬을 사용합니다. 비교가 대소문자를 구분하지 않는 경우 다른 구분이 없으면 대문자 버전은 소문자 버전 앞에 정렬됩니다. ICU 라이브러리는 colCaseFirst=upper의 대문자 기본 설정을 지원하지만 CI_AS 데이터 정렬은 지원하지 않습니다.

PREF는 CS_AS 결정적 데이터 정렬에만 적용될 수 있습니다.

Babelfish에서 지원하는 데이터 정렬

다음 데이터 정렬을 서버 데이터 정렬 또는 객체 데이터 정렬로 사용합니다.

데이터 정렬 ID 참고

bbf_unicode_general_ci_as

대소문자를 구분하지 않는 비교와 LIKE 연산자를 지원합니다.

bbf_unicode_cp1_ci_as

비결정적 데이터 정렬은 CP1252라고도 합니다.

bbf_unicode_CP1250_ci_as

비결정적 데이터 정렬은 라틴 문자를 사용하는 중부 유럽 및 동유럽 언어로 텍스트를 표현하는 데 사용됩니다.

bbf_unicode_CP1251_ci_as

비결정적 데이터 정렬은 키릴 문자를 사용하는 언어에 사용됩니다.

bbf_unicode_cp1253_ci_as

비결정적 데이터 정렬은 현대 그리스어를 표현하는 데 사용됩니다.

bbf_unicode_cp1254_ci_as

비결정적 데이터 정렬은 터키어를 지원합니다.

bbf_unicode_cp1255_ci_as

비결정적 데이터 정렬은 히브리어를 지원합니다.

bbf_unicode_cp1256_ci_as

비결정적 데이터 정렬은 아랍 문자를 사용하는 언어를 작성하는 데 사용됩니다.

bbf_unicode_cp1257_ci_as

비결정적 데이터 정렬은 에스토니아어, 라트비아어 및 리투아니아어를 지원하는 데 사용됩니다.

bbf_unicode_cp1258_ci_as

비결정적 데이터 정렬은 베트남 문자를 작성하는 데 사용됩니다.

bbf_unicode_cp874_ci_as

비결정적 데이터 정렬은 태국 문자를 작성하는 데 사용됩니다.

sql_latin1_general_cp1250_ci_as

비결정적 싱글바이트 문자 인코딩은 라틴 문자를 표현하는 데 사용됩니다.

sql_latin1_general_cp1251_ci_as

비결정적 데이터 정렬은 라틴 문자를 지원합니다.

sql_latin1_general_cp1_ci_as

비결정적 데이터 정렬은 라틴 문자를 지원합니다.

sql_latin1_general_cp1253_ci_as

비결정적 데이터 정렬은 라틴 문자를 지원합니다.

sql_latin1_general_cp1254_ci_as

비결정적 데이터 정렬은 라틴 문자를 지원합니다.

sql_latin1_general_cp1255_ci_as

비결정적 데이터 정렬은 라틴 문자를 지원합니다.

sql_latin1_general_cp1256_ci_as

비결정적 데이터 정렬은 라틴 문자를 지원합니다.

sql_latin1_general_cp1257_ci_as

비결정적 데이터 정렬은 라틴 문자를 지원합니다.

sql_latin1_general_cp1258_ci_as

비결정적 데이터 정렬은 라틴 문자를 지원합니다.

chinese_prc_ci_as

비결정적 데이터 정렬은 중국어(PRC)를 지원합니다.

cyrillic_general_ci_as

비결정적 데이터 정렬은 키릴어를 지원합니다.

finnish_swedish_ci_as

비결정적 데이터 정렬은 핀란드어를 지원합니다.

french_ci_as

비결정적 데이터 정렬은 프랑스어를 지원합니다.

japanese_ci_as

비결정적 데이터 정렬은 일본어를 지원합니다. Babelfish 2.1.0 이상 릴리스에서 지원됩니다.

korean_wansung_ci_as

비결정적 데이터 정렬은 한국어를 지원합니다(사전 정렬 사용).

latin1_general_ci_as

비결정적 데이터 정렬은 라틴 문자를 지원합니다.

modern_spanish_ci_as

비결정적 데이터 정렬은 현대 스페인어를 지원합니다.

polish_ci_as

비결정적 데이터 정렬은 폴란드어를 지원합니다.

thai_ci_as

비결정적 데이터 정렬은 태국어를 지원합니다.

traditional_spanish_ci_as

비결정적 데이터 정렬은 스페인어(전통에 따라 정렬)를 지원합니다.

turkish_ci_as

비결정적 데이터 정렬은 터키어를 지원합니다.

ukrainian_ci_as

비결정적 데이터 정렬은 우크라이나어를 지원합니다.

vietnamese_ci_as

비결정적 데이터 정렬은 베트남어를 지원합니다.

다음 데이터 정렬을 객체 데이터 정렬로 사용할 수 있습니다.

언어 결정적 옵션 비결정적 옵션

아랍어

Arabic_CS_AS

Arabic_CI_AS, Arabic_CI_AI

중국어

Chinese_CS_AS

Chinese_CI_AS, Chinese_CI_AI

키릴 문자_일반

Cyrillic_General_CS_AS

Cyrillic_General_CI_AS, Cyrillic_General_CI_AI

에스토니아어

Estonian_CS_AS

Estonian_CI_AS, Estonian_CI_AI

필란드어_스웨덴어

Finnish_Swedish_CS_AS

Finnish_Swedish_CI_AS, Finnish_Swedish_CI_AI

프랑스어

French_CS_AS

French_CI_AS, French_CI_AI

그리스어

Greek_CS_AS

Greek_CI_AS, Greek_CI_AI

히브리어

Hebrew_CS_AS

Hebrew_CI_AS, Hebrew_CI_AI

일본어(Babelfish 2.1.0 이상)

Japanese_CS_AS Japanese_CI_AI, Japanese_CI_AS

한국어_완성형

Korean_Wamsung_CS_AS

Korean_Wamsung_CI_AS, Korean_Wamsung_CI_AI

현대_스페인어

Modern_Spanish_CS_AS

Modern_Spanish_CI_AS, Modern_Spanish_CI_AI

몽골어

Mongolian_CS_AS

Mongolian_CI_AS, Mongolian_CI_AI

폴란드어

Polish_CS_AS

Polish_CI_AS, Polish_CI_AI

태국어

Thai_CS_AS

Thai_CI_AS, Thai_CI_AI

정통_스페인어

Traditional_Spanish_CS_AS

Traditional_Spanish_CI_AS, Traditional_Spanish_CI_AI

터키어

Turkish_CS_AS

Turkish_CI_AS, Turkish_CI_AI

우크라이나어

Ukranian_CS_AS

Ukranian_CI_AS, Ukranian_CI_AI

베트남어

Vietnamese_CS_AS

Vietnamese_CI_AS, Vietnamese_CI_AI

Babelfish의 기본 데이터 정렬

이전에는 pg_catalog.default가 정렬 가능한 데이터 형식의 기본 데이터 정렬이었습니다. 이러한 데이터 형식에 의존하는 데이터 형식 및 객체는 대/소문자 구분 데이터 정렬을 따릅니다. 이 조건은 대소문자를 구분하지 않는 데이터 세트가 있는 데이터 세트의 T-SQL 객체에 잠재적으로 영향을 미칩니다. Babelfish 2.3.0부터 정렬 가능한 데이터 형식(TEXT 및 NTEXT 제외)의 기본 데이터 정렬은 babelfishpg_tsql.server_collation_name 파라미터의 데이터 정렬과 동일합니다. Babelfish 2.3.0으로 업그레이드하면 DB 클러스터 생성 시 기본 데이터 정렬이 자동으로 선택되므로 눈에 띄는 영향이 없습니다.