Babelfish でのパーティショニングについて - Amazon Aurora

Babelfish でのパーティショニングについて

バージョン 4.3.0 以降、Babelfish はサポートが制限されたテーブルとインデックスのパーティショニングを導入しました。以下のセクションでは、パーティション関数の作成、パーティションスキームの定義、Babelfish でのパーティションテーブルとインデックスの実装について詳しく説明します。

Babelfish でのパーティショニングの紹介

  • パーティション関数:

    • CREATE PARTITION FUNCTION: パーティション分割列タイプと各パーティションの値の範囲を指定して、テーブルまたはインデックスをパーティション分割する方法を定義します。

    • DROP PARTITION FUNCTION: 既存のパーティション関数を削除します。

  • パーティションスキーム:

    • CREATE PARTITION SCHEME: パーティションとファイルグループ間のマッピングを定義します。

      注記

      Babelfish では、ファイルグループはダミーオブジェクトとして扱われ、物理的なストレージの場所を表すものではありません。

    • DROP PARTITION SCHEME: 既存のパーティションスキームを削除します。

  • システム関数:

    • $PARTITION: このシステム関数は、パーティショニング列内の指定された値が、指定されたパーティションテーブルに属するパーティション番号を返します。

  • パーティションテーブルとインデックス:

    • CREATE TABLE ... ON partition_scheme_name (partition_column_name): 指定されたパーティションスキームとパーティション列に基づいてパーティションテーブルを作成します。

    • CREATE INDEX ... ON partition_scheme_name (partition_column_name): 指定されたパーティションスキームとパーティション列に基づいてパーティションインデックスを作成します。

  • メタデータをパーティショニングするためのシステムビュー:

    パーティショニングに関連するメタデータを提供するために、次のシステムビューが追加されました。

    • sys.destination_data_spaces

    • sys.partitions

    • sys.partition_functions

    • sys.partition_parameters

    • sys.partition_range_values

    • sys.partition_schemes

制限と回避策

Babelfish でのパーティショニングには、以下の制限が適用されます。

  • ALTER PARTITION FUNCTION および ALTER PARTITION SCHEME はまだサポートされていません。

    注記

    Babelfish では分割またはマージオペレーションがまだサポートされていないため、パーティションの追加または削除はできず、すべてのパーティションをパーティション関数で事前に定義しておく必要があります。

  • 計算列は、パーティショニング列としてまだサポートされていません。

  • INSERT BULK および BCP ユーティリティは、パーティションテーブルではまだサポートされていません。

  • パーティション関数の LEFT 境界オプションはまだサポートされていません。

  • SQL_VARIANT データ型は、パーティション関数でまだサポートされていません。

  • TRUNCATE TABLE ... WITH PARTITION はまだサポートされていません。

  • ALTER TABLE ... SWITCH PARTITION はまだサポートされていません。

  • パーティションスキームやパーティションテーブルとは異なるパーティション列など、整列されていないパーティションインデックスはサポートされていません。

  • Babelfish ソースからの DMS 移行は、パーティションテーブルのフルロードタスクでのみサポートされます。

  • 次の構文はまだサポートされていませんが、回避策があります。

    • CREATE TABLE ステートメントでの制約またはインデックスを含むパーティションスキームの使用。

    • ALTER TABLE ... ADD CONSTRAINT ... ON partition_scheme_name (partition_column_name)。

    注記

    babelfishpg_tsql.escape_hatch_storage_on_partition エスケープハッチは無視するように設定できます。これにより、パーサーは制約またはインデックスで使用されるパーティションスキームオプションを無視でき、バックエンドは各パーティションに個別の制約またはインデックスを作成します。