Alibaba Cloud Data Online Migration または ossimport ツールを使用して、Amazon Redshift から AnalyticDB for PostgreSQL にデータを移行します。
前提条件
-
ソースとなる Amazon Redshift インスタンス。
-
Amazon Redshift インスタンスからデータをエクスポートするための Amazon S3 バケット。
-
Alibaba Cloud Object Storage Service (OSS) を有効化済みであること。OSS の詳細については、「Object Storage OSS とは」をご参照ください。
-
OSS バケットが作成済みであること。詳細については、「バケットの作成」をご参照ください。
説明AnalyticDB for PostgreSQL インスタンスと同じリージョンに OSS バケットを作成することを推奨します。これにより、データベースへのデータインポートが簡素化されます。
-
AnalyticDB for PostgreSQL インスタンスを作成します。インスタンスの仕様を選択する方法については、「インスタンスの仕様を選択する」をご参照ください。
仕様の選択
送信先の AnalyticDB for PostgreSQL インスタンスの仕様は、ソースとなる Amazon Redshift インスタンスの仕様に基づいて選択します。
Amazon Redshift インスタンスは、リーダーノード と複数の コンピュートノード で構成されています。
-
リーダーノード は、AnalyticDB for PostgreSQL のコーディネーターノードに相当します。クライアントとの通信、クエリの解析、実行計画の作成、およびコンピュートノードへのタスクのディスパッチを担当します。
-
コンピュートノード:コンピュートノードは、AnalyticDB for PostgreSQL のセグメントノードに相当し、複数のノードスライスで構成されています。各ノードスライスは、AnalyticDB for PostgreSQL の単一のセグメントノードに相当し、データストレージおよびクエリ計算を担当します。
適切な AnalyticDB for PostgreSQL ノードスペックを決定するには、ソースとなる Amazon Redshift インスタンス内の各ノードスライスの仕様と一致させる必要があります。
例
ソースとなる Amazon Redshift インスタンスには 4 つのコンピュートノードが含まれており、各コンピュートノードには 2 つのノードスライスがあります。各ノードスライスは、2 コア、16 GB のメモリ、および 1 TB のストレージを備えています。
ソースとなる Amazon Redshift インスタンスの仕様に基づき、AnalyticDB for PostgreSQL インスタンスを作成する際に 8 つのセグメントノードを選択できます。各セグメントノードに対しては、2 コア 16 GB の仕様を選択し、ストレージ容量を 1,000 GB に設定します。
-
AnalyticDB for PostgreSQL インスタンスの作成方法の詳細については、「インスタンスの作成」をご参照ください。
-
ストレージディスクタイプには、ESSD クラウドディスク を選択することを推奨します。ESSD は Ultra Disk よりも優れた I/O パフォーマンスを提供します。
操作手順
ステップ 1:Amazon Redshift からデータをエクスポート
UNLOAD コマンドを使用してデータをエクスポートできます。詳細については、UNLOAD のドキュメントをご参照ください。
UNLOAD コマンドの構文は次のとおりです。
UNLOAD ('select-statement')
TO 's3://object-path/name-prefix'
AUTHORIZATION
[ option [ ... ] ]
WHERE option IS
{ [ FORMAT [ AS ] ] CSV | PARQUET
| PARTITION BY ( column_name [, ... ] ) [ INCLUDE ]
| MANIFEST [ VERBOSE ]
| HEADER
| DELIMITER [ AS ] 'delimiter-char'
| FIXEDWIDTH [ AS ] 'fixedwidth-spec'
| ENCRYPTED [ AUTO ]
| BZIP2
| GZIP
| ZSTD
| ADDQUOTES
| NULL [ AS ] 'null-string'
| ESCAPE
| ALLOWOVERWRITE
| CLEANPATH
| PARALLEL [ { ON | TRUE } | { OFF | FALSE } ]
| MAXFILESIZE [AS] max-size [ MB | GB ]
| REGION [AS] 'Amazon-region' }
-
データをエクスポートする際は、FORMAT AS PARQUET または CSV フォーマットを使用することを推奨します。
-
エクスポート効率を向上させ、より多くのファイルシャードを生成するには、PARALLEL ON を使用して並列エクスポートを有効化することを推奨します。
-
MAXFILESIZE パラメーターを使用して複数のファイルセグメントを生成します。AnalyticDB for PostgreSQL インスタンスのノード数の整数倍になるようにセグメント数を設定することで、OSS 外部テーブルによる並列インポート効率を向上できます。
ステップ 2:データを Alibaba Cloud OSS に同期
データの同期には、Data Online Migration または ossimport ツールのいずれかの方法を使用できます。
Data Online Migration
-
Alibaba Cloud Data Transport コンソール にログインします。
-
データ同期用のソースデータアドレスおよび送信先データアドレスを作成します。
-
左側のナビゲーションウィンドウで、 を選択します。
-
データアドレスの作成 をクリックして、ソースアドレスを作成します。
-
データアドレスの作成 パネルで、以下のパラメーターを設定し、OK をクリックします。
パラメーター
必須
説明
名前
はい
-
名前は 3~63 文字である必要があります。
-
名前には小文字、数字、ハイフン (-)、アンダースコア (_) を使用できます。大文字と小文字は区別されます。
-
名前はハイフン (-) またはアンダースコア (_) で開始できません。
タイプ
はい
AWS S3 を選択します。
ドメイン名
はい
AWS S3 サービスのエンドポイントを入力します。 エンドポイントはAmazon S3 エンドポイントに記載されています。
AccessKeyId
はい
IAM ユーザーのアクセスキーを入力します。このキーは、ソースデータへの読み取りアクセスを認証するために使用されます。
SecretAccessKey
はい
バケット
はい
ソース AWS S3 バケットの名前を入力します。
説明バケット名の先頭または末尾にスペース、改行、タブを含めることはできません。
Prefix
いいえ
データの一部のみを移行する場合にプレフィックスを指定します。
-
指定した場合、そのプレフィックス配下のデータのみが移行されます。プレフィックスはスラッシュ (/) で開始してはならず、スラッシュ (/) で終了する必要があります。
-
このパラメーターを省略した場合、バケット内のすべてのデータが移行されます。
Tunnel
いいえ
使用するチャネルの名前を選択します。
重要-
Express Connect または VPN 接続経由でのデータ移行、またはセルフマネージドストレージシステムからの移行を行う場合にのみ、このパラメーターが必要です。
-
送信先がローカルファイルシステムの場合、または金融クラウドや Apsara Stack 環境など専用接続を使用する移行を行う場合は、エージェントを関連付ける必要があります。
Agent
いいえ
使用するエージェントの名前を選択します。
重要-
Express Connect または VPN 接続経由でのデータ移行、またはセルフマネージドストレージシステムからの移行を行う場合にのみ、このパラメーターが必要です。
-
指定されたチャネルに対して最大 200 個のエージェントを選択できます。
-
-
再度 データアドレスの作成 をクリックして、送信先アドレスを作成します。
-
データアドレスの作成 パネルで、以下のパラメーターを設定し、OK をクリックします。
パラメーター
必須
説明
データタイプ
はい
送信先データアドレスのタイプです。OSS を選択します。
データ名
はい
ソースデータアドレスの名前です。名前は 3~63 文字である必要があります。ハイフン (-) およびアンダースコア (_) 以外の特殊文字を含めることはできません。
データリージョン
はい
送信先データアドレスが存在するリージョンです。
転送アクセラレーションの有効化
いいえ
Object Storage Service (OSS) の転送アクセラレーション機能を Data Online Migration と併用する場合は、バケットの転送アクセラレーション機能を有効化してください。転送アクセラレーション機能は有効化後 30 分以内に適用されます。機能を有効化した後は、移行ジョブを作成する前に 30 分間お待ちください。
重要OSS バケットにアクセスする際に転送アクセラレーション機能を使用すると、追加の転送アクセラレーション料金が発生します。詳細については、「転送アクセラレーションを使用した OSS へのアクセス」をご参照ください。
OSS エンドポイント
はい
送信先データアドレスのエンドポイントです。送信先データアドレスが存在するリージョンに基づいてエンドポイントを選択してください。詳細については、「リージョンとエンドポイント」をご参照ください。
説明サードパーティのクラウドサービスから OSS にデータを移行する際は、インターネット経由でパブリックエンドポイントから OSS にアクセスする必要があります。
Access Key Id および Access Key Secret
はい
送信先データアドレスへのデータ書き込みに使用する RAM ユーザーの AccessKey ペアです。この AccessKey ペアは、RAM ユーザーが送信先データアドレスへのデータ書き込み権限を持っているかどうかを OSS が確認するために使用されます。
OSS バケット
はい
データを移行する OSS バケットです。
OSS プレフィックス
いいえ
送信先データアドレスのプレフィックスです。
-
プレフィックスを指定した場合、ソースデータは指定されたディレクトリに移行されます。値はスラッシュ (/) で開始してはならず、スラッシュ (/) で終了する必要があります。例:
data/to/oss/。 -
プレフィックスを指定しない場合、ソースデータは送信先バケットのルートディレクトリに移行されます。
重要ソースファイルの名前がスラッシュ (/) で始まる場合、送信先データアドレスを指定する際に OSS プレフィックスを指定する必要があります。OSS プレフィックスを指定しないと、移行ジョブは失敗します。たとえば、移行対象のファイル名が /test/test.png の場合、oss/ のような OSS プレフィックスを指定する必要があります。移行完了後、ファイル名は /test/test.png から oss//test/test.png に変更されます。
-
-
-
オンライン移行ジョブを作成します。
-
左側のナビゲーションウィンドウで、 を選択します。
-
移行タスクの作成 をクリックします。
-
移行タスクの作成 パネルで、利用規約を読み、上記の利用規約を理解し、Data Transport を有効化します を選択し、次へ をクリックします。
-
料金支払いリマインダー ダイアログボックスで、確認して継続 をクリックします。
-
タスクの設定 タブで、以下のパラメーターを設定し、次へ をクリックします。
パラメーター
必須
説明
ジョブ名
はい
ソースデータアドレスの名前です。名前は 3~63 文字である必要があります。ハイフン (-) およびアンダースコア (_) 以外の特殊文字を含めることはできません。
ソースデータアドレス
はい
作成済みのソースデータアドレスです。
送信先データアドレス
はい
作成済みの送信先データアドレスです。
指定ディレクトリ
いいえ
移行または移行しないファイルおよびサブディレクトリが存在するディレクトリです。有効な値:
-
フィルターなし:ソースデータアドレスのすべてのデータを移行します。
-
除外:指定されたディレクトリ内のファイルまたはサブディレクトリを移行しません。
たとえば、
root_dir/ディレクトリ内のroot_dir/bad_sub1/およびroot_dir/bad_sub2/を除くすべてのディレクトリを移行したい場合、この方法を選択し、bad_sub1/およびbad_sub2/を指定します。 -
含む:指定されたディレクトリ内のファイルおよびサブディレクトリのみを移行します。
たとえば、
root_dir/ディレクトリ内のroot_dir/good_sub1/およびroot_dir/good_sub2/のみを移行したい場合、この方法を選択し、good_sub1/およびgood_sub2/を指定します。
説明-
ディレクトリ名には数字と英字のみを使用できます。特殊文字を使用すると、移行ジョブが失敗する可能性があります。
-
ディレクトリ名はスラッシュ (/) またはバックスラッシュ (\) で開始してはならず、二重スラッシュ (//)、二重ピリオド (..)、二重引用符 (") を含んではなりません。指定されたすべてのディレクトリ名からなる文字列の長さは 10 KB を超えてはなりません。
-
ディレクトリ名はスラッシュ (/) で終了する必要があります。たとえば、
docs/をディレクトリ名として指定できます。 -
除外または含むタイプのディレクトリは最大 20 個まで指定できます。
移行タイプ
はい
データ移行モードです。有効な値:
-
完全:ソースデータアドレスのすべてのデータを送信先データアドレスに移行します。ファイルの開始時刻 パラメーターを設定する必要があります。指定時刻以降に最終更新されたすべてのデータが移行されます。すべてのデータの移行が完了すると、移行ジョブは終了します。
移行ジョブ完了後にソースデータアドレスのデータを変更した場合、別のジョブを送信してすべてのデータを移行できます。この場合、変更されたデータのみが移行されます。
-
増分:移行間隔 パラメーターおよび 移行回数 パラメーターに指定した値に基づいて移行ジョブを実行します。
-
ファイルの開始時刻 パラメーターを設定する必要があります。初回移行では、指定時刻以降に最終更新されたすべてのデータが移行されます。初回移行完了後、移行間隔 パラメーターに指定した値に基づいて増分移行が実行されます。各増分移行では、前回の移行開始時刻から今回の移行開始時刻までの間に作成または更新されたデータのみが移行されます。
-
移行回数パラメーターを N に設定した場合、完全移行が 1 回実行され、その後増分移行が (N - 1) 回実行されます。
たとえば、現在時刻が 2019 年 3 月 10 日 08:00 であり、移行間隔パラメーターを 1、移行回数パラメーターを 5、ファイルの開始時刻 パラメーターを 2019 年 3 月 5 日 08:00 に設定したとします。初回移行開始時、2019 年 3 月 5 日 08:00 から 2019 年 3 月 10 日 08:00 の間に最終更新されたすべてのファイルが移行されます。この例では、初回移行に 1 時間かかり、2 回目の移行は 2019 年 3 月 10 日 10:00 に開始されます。08:00 から 10:00 までの期間は、初回移行プロセスに 1 時間、移行間隔に 1 時間が含まれます。2 回目の移行では、2019 年 3 月 10 日 08:00 から 2019 年 3 月 10 日 10:00 の間に最終更新されたファイルが移行されます。移行ジョブは、完全移行 1 回と増分移行 4 回で構成されます。
-
重要完全移行または増分移行を開始する前に、システムはソースデータアドレスのファイルと送信先データアドレスのファイルを比較します。ソースファイルと送信先ファイルの名前が同じ場合、以下のいずれかの条件を満たすと、送信先ファイルが上書きされます。
-
ソースデータアドレスと送信先データアドレスのファイルの Content-Type 値が異なる。
-
ソースデータアドレスのファイルの最終更新時刻が、送信先データアドレスのファイルの最終更新時刻よりも新しい。
-
ソースデータアドレスのファイルのサイズが、送信先データアドレスのファイルのサイズと異なる。
ファイルの開始時刻
はい
移行対象データをフィルターするための時刻です。指定時刻以降に作成または更新されたデータが移行されます。有効な値:
-
すべて:すべてのファイルを移行します。
-
[割り当て]: 指定時刻以降に作成または変更されたファイルのみを移行します。
たとえば、時刻を 2018 年 11 月 1 日 08:00:00 に設定した場合、2018 年 11 月 1 日 08:00:00 以降に作成または更新されたファイルのみが移行されます。
移行間隔
移行タイプパラメーターを増分に設定した場合に必須です。
デフォルト値は 1、最大値は 24 です。単位:時間。
移行時間
移行タイプパラメーターを増分に設定した場合に必須です。
デフォルト値は 1、最大値は 30 です。
ファイル上書き方法
はい
ソースデータアドレスのファイル名が送信先データアドレスのファイル名と同じ場合に使用する処理方法です。有効な値:
-
LastModified:ソースファイルと送信先ファイルの名前が同じ場合、ファイルの LastModified プロパティで示される最終更新時刻を比較します。
-
ソースデータアドレスのファイルの最終更新時刻が送信先データアドレスのファイルの最終更新時刻よりも新しい場合、ソースデータアドレスのファイルが移行され、送信先データアドレスのファイルが上書きされます。
-
ソースデータアドレスのファイルの最終更新時刻が送信先データアドレスのファイルの最終更新時刻よりも古い場合、ソースデータアドレスのファイルは移行されず、送信先データアドレスのファイルが保持されます。
-
両ファイルの最終更新時刻が同じ場合、ファイルの Size プロパティおよび Content-Type プロパティの値を確認します。
両ファイルの Size および Content-Type の値が同じ場合、ソースデータアドレスのファイルは移行されません。少なくとも 1 つのプロパティの値が異なる場合、ソースデータアドレスのファイルが移行され、送信先データアドレスのファイルが上書きされます。
-
-
Condition:ソースファイルと送信先ファイルの名前が同じ場合、ファイルの LastModified、Size、および Content-Type プロパティの値を比較します。
-
両ファイルのすべてのプロパティ値が同じ場合、ソースデータアドレスのファイルは移行されません。
-
少なくとも 1 つのプロパティの値が異なる場合、ソースデータアドレスのファイルが移行され、送信先データアドレスのファイルが上書きされます。
-
-
すべて:ソースファイルと送信先ファイルの名前が同じ場合、比較を行わず、直接送信先ファイルをソースファイルで上書きします。
-
いいえ:ソースファイルと送信先ファイルの名前が同じ場合、比較を行わず、直接移行中のソースファイルをスキップします。
警告-
Condition または LastModified を選択した場合、古いファイルが新しいファイルを上書きする可能性があります。
-
Condition または LastModified を選択する場合は、ソースファイルに LastModified、Size、および Content-Type の値があることを確認してください。これらの値がない場合、上書きポリシーが無効になり、期待どおりにデータが移行されない可能性があります。
-
-
-
パフォーマンスチューニング タブの データ予測 セクションで、移行対象データサイズ および 移行対象ファイル数 を入力します。
説明スムーズな移行を確保するため、データをできるだけ正確に推定してください。詳細については、「移行データの推定」をご参照ください。
-
オプション: パフォーマンスチューニング タブの フロー制御 セクションで、時間範囲 および 最大フロー を設定し、追加 をクリックします。
説明オンラインビジネスに影響を与えないようにするため、ビジネスのピーク時とオフピーク時に基づいて移行の 時間範囲 および 最大フロー を設定することを推奨します。
-
作成 をクリックし、移行ジョブの完了を待ちます。
-
ossimport
-
スタンドアロンモードで ossimport をダウンロードしてインストールします。詳細については、「ossimport の概要」をご参照ください。
スタンドアロンモードの ossimport のファイル構造は次のとおりです。
ossimport ├── bin │ └── ossimport2.jar # Master、Worker、TaskTracker、Console モジュールを含むフル JAR ├── conf │ ├── local_job.cfg # ジョブ設定ファイル │ └── sys.properties # システム実行時パラメーター設定ファイル ├── console.bat # Windows 用コマンドラインインターフェイス (CLI)。分散タスクを送信可能 ├── console.sh # Linux 用 CLI。分散タスクを送信可能 ├── import.bat # Windows 用ワンクリックインポート。conf/local_job.cfg で設定された移行タスクを実行(起動、移行、検証、再試行を含む) ├── import.sh # Linux 用ワンクリックインポート。conf/local_job.cfg で設定された移行タスクを実行(起動、移行、検証、再試行を含む) ├── logs # ログディレクトリ └── README.md # ドキュメント。使用前に *必ず* お読みください。 -
スタンドアロンモードで ossimport を設定します。
conf/local_job.cfg 設定ファイルの以下のパラメーターを変更します。
srcType=s3 srcAccessKey=<Amazon AccessKey ID> srcSecretKey=<Amazon AccessKey Secret> srcDomain=<Amazon S3 リージョンのドメイン名> srcBucket=<Amazon S3 バケット名> destAccessKey=<Alibaba Cloud AccessKey ID> destSecretKey=<Alibaba Cloud AccessKey Secret> destDomain=<OSS リージョンのエンドポイント> destBucket=<OSS バケット名> destPrefix= isSkipExistFile=trueossimport 設定の詳細については、「ossimport の概要」をご参照ください。
-
ossimport を実行して OSS にデータを同期します。スタンドアロンモードの ossimport の詳細については、「スタンドアロンデプロイメント」をご参照ください。
ステップ 3:送信先テーブルの作成
ソースとなる Amazon Redshift テーブルと同じ構造を持つ送信先テーブルを AnalyticDB for PostgreSQL インスタンス内に作成します。テーブル作成の構文については、「CREATE TABLE」をご参照ください。
スキーマ、テーブル、関数、ビューなどのオブジェクトの DDL 定義を変更する必要がある場合は、「DDL 構文の変換」をご参照ください。
ステップ 4:OSS からデータをインポート
COPY コマンドまたは OSS 外部テーブルを使用して、AnalyticDB for PostgreSQL にデータをインポートします。
-
OSS から COPY コマンドを使用してデータをインポートする方法については、「COPY または UNLOAD コマンドを使用した OSS へのデータのインポートまたはエクスポート」をご参照ください。
-
OSS から OSS 外部テーブルを使用してデータをインポートする方法については、「OSS 外部テーブルを使用したデータレイク分析」をご参照ください。
DDL 構文の変換
Amazon Redshift の DDL 構文は AnalyticDB for PostgreSQL の構文と異なります。移行前に以下の DDL ステートメントを変換する必要があります。
スキーマの作成
AnalyticDB for PostgreSQL の構文に基づいてスキーマを作成します。以下に例を示します。
CREATE SCHEMA schema1 AUTHORIZATION xxxpoc;
GRANT ALL ON SCHEMA schema1 TO xxxpoc;
GRANT ALL ON SCHEMA schema1 TO public;
COMMENT ON SCHEMA model IS 'for xxx migration poc test';
CREATE SCHEMA oss_external_table AUTHORIZATION xxxpoc;
関数の作成
AnalyticDB for PostgreSQL は、一部の Amazon Redshift SQL 関数と互換性がありません。これらの関数はカスタマイズまたは再書き換えする必要があります。例:
-
CONVERT_TIMEZONE(a,b,c)は、次のステートメントに置き換えます。timezone(b, timezone(a,c)) -
GETDATE()は、次のステートメントに置き換えます。current_timestamp(0)::timestamp -
ユーザー定義関数 (UDF) を置き換えまたは最適化します。Redshift のサンプル関数は次のとおりです。
CREATE OR REPLACE FUNCTION public.f_jdate(dt timestamp WITHOUT time zone) RETURNS character varying AS ' from datetime import timedelta, datetime if dt.hour < 4: d = timedelta(days=-1) dt = dt + d return str(dt.date())' LANGUAGE plpythonu IMMUTABLE; COMMIT;上記の関数を次のステートメントで置き換えます。
to_char(a - interval '4 hour', 'yyyy-mm-dd') -
その他の Amazon Redshift の標準関数。
Amazon Redshift と AnalyticDB for PostgreSQL の間で互換性のない関数を修正または実装する際は、PostgreSQL の関数および演算子に関するドキュメントを参照してください。互換性のない関数の例:
テーブルの作成
-
テーブル名の変更
Amazon Redshift のテーブル名の最大長は 127 バイトですが、AnalyticDB for PostgreSQL のテーブル名のデフォルトの最大長は 63 バイトです。この制限を超えるオブジェクト名(テーブル、関数、ビューなど)は短縮する必要があります。
-
圧縮アルゴリズムの変更
Amazon Redshift の
CREATE TABLEステートメントからENCODE XXXを削除し、次の句に置き換えます。WITH (COMPRESSTYPE={ZLIB|ZSTD|RLE_TYPE|NONE})AnalyticDB for PostgreSQL がサポートする圧縮アルゴリズムの詳細については、「圧縮」をご参照ください。
-
分散キーの変更
Amazon Redshift は3 つのディストリビューションスタイルをサポートしています。次のルールに従って、分散キーを変更してください。
-
EVEN:
DISTRIBUTED RANDOMLYに置き換えます。 -
KEY:
DISTRIBUTED BY (column, [ ... ] )に置き換えます。 -
ALL:
DISTRIBUTED REPLICATEDに置き換えます。
-
-
ソートキーの変更
Amazon Redshift のソートキー句
[ COMPOUND | INTERLEAVED ] SORTKEY (column_name [, ...] ) ]から COMPOUND または INTERLEAVED オプションを削除し、次の句に置き換えます。ORDER BY (column, [ ... ])
以下に例を示します。
-
例 1
Amazon Redshift の
CREATE TABLEステートメント:CREATE TABLE schema1.table1 ( filed1 VARCHAR(100) ENCODE lzo, filed2 INTEGER DISTKEY, filed3 INTEGER, filed4 BIGINT ENCODE lzo, filed5 INTEGER ) INTERLEAVED SORTKEY ( filed1, filed2 );AnalyticDB for PostgreSQL に変換された
CREATE TABLEステートメント:CREATE TABLE schema1.table1 ( filed1 VARCHAR(100) , filed2 INTEGER, filed3 INTEGER, filed4 BIGINT, filed5 INTEGER ) WITH(APPENDONLY=true,ORIENTATION=column,COMPRESSTYPE=zstd) DISTRIBUTED BY (filed2) ORDER BY (filed1, filed2); -- Sort SORT schema1.table1; MULTISORT schema1.table1; -
例 2
ENCODE および SORTKEY オプションを含む Amazon Redshift の
CREATE TABLEステートメント:CREATE TABLE schema2.table2 ( filed1 VARCHAR(50) ENCODE lzo, filed2 VARCHAR(50) ENCODE lzo, filed3 VARCHAR(20) ENCODE lzo, ) DISTSTYLE EVEN INTERLEAVED SORTKEY ( filed1 );AnalyticDB for PostgreSQL に変換された
CREATE TABLEステートメント:CREATE TABLE schema2.table2 ( filed1 VARCHAR(50), filed2 VARCHAR(50), filed3 VARCHAR(20) ) WITH(APPENDONLY=true, ORIENTATION=column, COMPRESSTYPE=zstd) DISTRIBUTED randomly ORDER BY (filed1); -- Sort SORT schema2.table2; MULTISORT schema2.table2;説明ソートキーの詳細については、「列指向テーブルでのソートキーおよびラフセットインデックスを使用したクエリの高速化」をご参照ください。
ビューの作成
Amazon Redshift の CREATE VIEW ステートメントを、AnalyticDB for PostgreSQL の構文に準拠した SQL ステートメントに変換する必要があります。CREATE TABLE の変換ルールと同様です。
WITH NO SCHEMA BINDING 句はサポートされていません。
関連ドキュメント
自動移行の詳細については、「Amazon Redshift から AnalyticDB for PostgreSQL への自動データ移行」をご参照ください。