Babelfish がサポートする照合順序 - Amazon Aurora

Babelfish がサポートする照合順序

Babelfish で Aurora PostgreSQL DB クラスターを作成するときは、データの照合を選択します。照合順序は、特定の人間言語で書かれたテキストまたは文字を生成するソート順とビットパターンを指定します。照合順序には、特定のビットパターンのセットに対してデータを比較するルールが含まれます。照合順序はローカリゼーションに関連しています。ロケールが異なると、文字マッピング、ソート順などに影響します。照合順序の属性は、さまざまな照合順序の名前に反映されます。属性の詳細については、「Babelfish collation attributes table」を参照してください。

Babelfish は、Babelfish が提供する同等の照合に SQL Server 照合をマッピングします。Babelfish は、文化的に敏感な文字列比較とソート順で、 Unicode 照合を事前に定義しています。また Babelfish は、SQL Server DB 内の照合を最も近い Babelfish 照合に変換する方法も提供します。ロケール固有の照合順序は、異なる言語および地域に対して提供されます。

一部の照合では、クライアント側のエンコーディングに対応したコードページを指定します。Babelfish は、各出力列の照合順序に応じて、サーバーエンコーディングからクライアントエンコーディングに自動的に変換します。

Babelfish は、「Babelfish supported collations table」に列挙された照合順序をサポートしています。Babelfish は、Babelfish が提供する同等の照合に SQL Server 照合をマッピングします。

Babelfish は International Components for Unicode (ICU) 照合順序ライブラリのバージョン 153.80 を使用しています。ICU 照合の詳細については、ICU ドキュメントの「Collation」(照合順序) を参照してください。PostgreSQL と照合の詳細については、PostgreSQL ドキュメントの「照合順序のサポート」を参照してください。

照合順序とロケールを制御する 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 では、サーバーの照合順序によって識別子の比較方法が決定されるため、CI_AS 照合順序は server_collation_name でなければならなりません。

Babelfish DB クラスターを作成するときは、選択リストから [照合順序名] を選択します。これらには、「Babelfish supported collations table」に列挙された照合順序が含まれます。belfish データベースの作成後は、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 は、データをコードポイント順に並べ替えるよう要求します。Unicode コードポイントの順序は、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

日本語をサポートする非決定的照合順序。Supported in Babelfish 2.1.0 and higher releases.

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

ウクライナ語をサポートする非決定的な照合順序。

vietamese_ci_as

ベトナム語をサポートする非決定的照合順序。

次の照合順序をオブジェクト照合として使用できます。

言語 決定的なオプション 非決定的オプション

アラビア語

Arabic_CS_AS

Arabic_CI_AS, Arabic_CI_AI

中国語

Chinese_CS_AS

Chinese_CI_AS、Chinese_CI_AI

Cyrillic_General

Cyrillic_General_CS_AS

Cyrillic_General_CI_AS、Cyrillic_General_CI_AI

エストニア語

Estonian_CS_AS

Estonian_CI_AS, Estonian_CI_AI

Finnish_Swedish

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

Korean_Wamsung_CS_AS

Korean_Wamsung_CI_AS、Korean_Wamsung_CI_AI

Modern_Spanish

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

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 クラスターの作成時にデフォルトの照合が自動的に選択されるため、目に見える影響はありません。