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 설명서의 데이터 정렬
주제
데이터 정렬 및 로캘을 제어하는 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_name
은CI_AS
데이터 정렬이어야 합니다.Babelfish DB 클러스터를 생성할 때 선택 가능한 목록에서 데이터 정렬 이름(Collation name)을 선택합니다. 여기에는 Babelfish supported collations table에 나열된 데이터 정렬이 포함됩니다. Babelfish 데이터베이스가 생성된 후
server_collation_name
을 수정하지 마세요.
Babelfish for Aurora PostgreSQL DB 클러스터를 생성할 때 선택하는 설정은 이러한 파라미터의 클러스터와 연결된 DB 클러스터 파라미터 그룹에 저장되고 데이터 정렬 동작을 설정합니다.
결정적 및 비결정적 데이터 정렬 및 Babelfish
Babelfish는 결정적이고 비결정적인 데이터 정렬을 지원합니다.
결정적 데이터 정렬은 동일한 바이트 시퀀스를 가진 문자를 동등하게 평가합니다. 이는
x
및X
가 결정적 데이터 정렬에서는 동일하지 않다는 뜻입니다. 결정적 데이터 정렬에는 대소문자 구분(CS) 및 악센트 구분(AS)이 적용됩니다.비결정적 데이터 정렬은 똑같이 일치할 필요가 없습니다. 비결정적 데이터 정렬은
x
및X
를 동일한 것으로 확인합니다. 비결정적 데이터 정렬은 대소문자 구분하지 않음(CI) 및 악센트 구분하지 않음(AI)이 적용됩니다.
다음 테이블에서 비결정적 데이터 정렬을 사용할 때 Babelfish와 PostgreSQL 간의 동작 차이점을 확인할 수 있습니다.
Babelfish | PostgreSQL |
---|---|
CI_AS 데이터 정렬에 대한 LIKE 절을 지원합니다. |
비결정적 데이터 정렬에서는 LIKE 절을 지원하지 않습니다. |
AI 데이터 정렬의 |
|
비결정적 데이터 정렬에서는 패턴 일치 작업이 지원되지 않습니다. |
SQL Server 및 PostgreSQL과 비교하여 Babelfish의 기타 제한 사항 및 동작 차이점에 대한 목록은 데이터 정렬 제한 및 동작 차이점 섹션을 참조하세요.
Babelfish와 SQL Server는 다음 테이블과 같이 데이터 정렬 속성을 설명하는 데이터 정렬에 대한 명명 규칙을 따릅니다.
속성 | 설명 |
---|---|
AI |
악센트 구분하지 않음. |
AS |
악센트 구분. |
BIN2 |
BIN2는 코드 포인트 순서대로 데이터를 정렬하도록 요청합니다. 유니코드 코드 포인트 순서는 UTF-8, UTF-16 및 UCS-2 인코딩의 문자 순서와 동일합니다. 코드 포인트 순서는 빠른 결정적 데이터 정렬입니다. |
CI |
대소문자 구분하지 않음. |
CS |
대소문자 구분. |
PREF |
소문자 앞에 대문자를 정렬하려면 PREF 데이터 정렬을 사용합니다. 비교가 대소문자를 구분하지 않는 경우 다른 구분이 없으면 대문자 버전은 소문자 버전 앞에 정렬됩니다. ICU 라이브러리는 PREF는 |
Babelfish에서 지원하는 데이터 정렬
다음 데이터 정렬을 서버 데이터 정렬 또는 객체 데이터 정렬로 사용합니다.
데이터 정렬 ID | 참고 |
---|---|
bbf_unicode_general_ci_as |
대소문자를 구분하지 않는 비교와 LIKE 연산자를 지원합니다. |
bbf_unicode_cp1_ci_as |
비결정적 데이터 정렬 |
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 클러스터 생성 시 기본 데이터 정렬이 자동으로 선택되므로 눈에 띄는 영향이 없습니다.