Amazon Web Services ブログ
AWS DMS 3.1.3 での Parquet データ形式のサポートの発表
本日、AWS DMS は、Apache Parquet データ形式で、AWS がサポートするソースから Amazon S3 へのデータの移行のサポートを発表しました。これは、DMS 3.1.3 の多数ある新機能の 1 つです。お客様の多くは、データレイクを構築するために DMS で「ターゲットとしての S3」サポートを利用しています。そして、このデータを Amazon EMR、Amazon Athena、Amazon Redshift Spectrum などの他の AWS のサービスと共に使用しています。そうした中、さまざまな形式で S3 への移行をサポートする方法が求められ、この機能が利用可能になりました。
この記事では、選択した S3 バケットおよびフォルダに、Parquet 形式のデータを移行するように DMS タスクを設定する方法を説明します。
概要
Apache Parquet は、効率的な圧縮およびエンコードスキームをサポートするように構築されています。複数のプロジェクトで、データに適切な圧縮およびエンコードスキームを適用することによるパフォーマンスへの影響が実証されています。Parquet は列ごとのレベルで圧縮スキームを指定することを可能にし、今後発明、実装されるより多くのエンコーディングを追加できることが将来的に保証されています。AWS DMS 3.1.3 では、Parquet 形式で S3 への移行をサポートできます。
ウォークスルー
まず、適切な設定で S3 ターゲットエンドポイントを作成します。Parquet 形式のデータを移行するために必要な追加の接続属性を使用してこれを行うには、AWS CLI を使用する方法、DMS コンソールを使用する方法の 2 つの方法があります。
AWS CLI を使用して S3 ターゲットエンドポイントを作成する
次のコマンドを使用して、既存の S3 エンドポイントを変更し、データ形式が Parquet である追加の接続属性を指定します。
結果セットは、次のようになります。
必ず最新バージョンの AWS CLI を使用してください。古いバージョンを使用すると、次のエラーが表示されます。
DMS コンソールを使用して S3 ターゲットエンドポイントを作成する
以下の手順で、S3 ターゲットエンドポイントを作成します。
- DMS コンソールの [Resource management] で、[Endpoints]、[Create endpoint] の順に選択します。
- 以下のように追加の接続属性を追加します。
エンドポイント設定画面は、次のスクリーンショットのようになります。
この例では、Microsoft SQL Server がソースです。次のコマンドで、このソースにテーブルを作成します。
SQL Server のテーブル結果セットにいくつかのレコードを挿入すると、次のようになります。
personid | lastname | firstname | address | city |
1 | jordan | michael | 12345 street ave | chicago |
2 | potter | harry | 4567 terrace | seattle |
3 | smith | will | 8901 3rd ave | los angeles |
4 | staton | jason | 7896 street | las vegas |
前のターゲットエンドポイントを使用してタスクを作成します。タスクの移行が完了すると、次のスクリーンショットに示すように、Parquet ファイルが S3 バケットに作成されます。
Parquet ファイルを Amazon Redshift にコピーするか、Athena または AWS Glue を使用してファイルを照会することができます。その方法は、以下のセクションを参照してください。
Amazon Redshift を使用して Parquet ファイルをコピーする
Parquet ファイルを Amazon Redshift にコピーし、Amazon Redshift クラスターに接続し、以下のように SQL Server ソースから同じ構文を使用してテーブルを作成します。
これで、テーブルは Amazon Redshift で準備ができています。以下のコマンドを使用して、Amazon Redshift クラスターに対して copy コマンドを実行します。
Athena を使ってファイルを照会する
ここで、Athena を使って Parquet ファイルから結果セットを取得します。Athena コンソールでテーブルを作成し、以下のコマンドを使用して入力データセットの場所を指定します。この例では、データセットは S3 です。
必要な詳細を入力してテーブルを作成すると、クエリを実行して以下の結果セットを返すことができます。
personid | lastname | firstname | address | city |
1 | jordan | michael | 12345 street ave | chicago |
2 | potter | harry | 4567 terrace | seattle |
3 | smith | will | 8901 3rd ave | los angles |
4 | staton | jason | 7896 street | las vegas |
結論
DMS 3.1.3 を使用して、Parquet 形式のデータを S3 バケットに移行するように DMS タスクを設定できるようになりました。AWS CLI または AWS DMS コンソールを使用して、2 つの異なる方法で S3 ターゲットエンドポイントを作成することができます。
ご質問またはご提案については、以下でコメントを残してください。移行がうまくいきますように!
著者について
Harish Bannai は、AWS のクラウドサポートエンジニアです。 彼は当社の顧客と協力してデータベースプロジェクトに関する指導や技術支援を行い、AWS を使用する際にソリューションの価値を向上させる手助けをしています。