Amazon Web Services ブログ

Amazon Aurora PostgreSQL および Amazon DynamoDB の Amazon Redshift とのゼロ ETL 統合の一般提供を開始

10 月 15 日、Amazon Aurora PostgreSQL 互換エディションおよび Amazon DynamoDBAmazon Redshift とのゼロ ETL 統合の一般提供の開始を発表できたことを喜ばしく思います。ゼロ ETL 統合により、トランザクションデータまたは運用データが Amazon Redshift でシームレスに利用できるようになるため、抽出、変換、ロード (ETL) オペレーションを実行する複雑なデータパイプラインを構築して管理する必要がなくなります。ソースデータの Amazon Redshift へのレプリケーションが自動化され、同時にソースデータが更新されるため、Amazon Redshift の分析や機械学習 (ML) 機能で利用して、タイムリーなインサイトを導き出し、時間が重要な要素となる重大なイベントに効果的に対応できます。

これらの新しいゼロ ETL 統合を使用すると、さまざまなデータパイプラインを構築して管理することなく、さまざまなアプリケーションのデータに対して統合分析を実行し、複数のリレーショナルおよび非リレーショナルデータソースから単一のデータウェアハウスにデータを書き込むことができます。この記事では、Amazon Aurora PostgreSQL と Amazon DynamoDB の Amazon Redshift とのゼロ ETL 統合の両方を開始する方法について、2 つのステップバイステップのウォークスルーを提供します。

ゼロ ETL 統合を作成するには、ソースを指定し、Amazon Redshift をターゲットとして指定します。統合により、ソースからターゲットデータウェアハウスにデータがレプリケートされ、Amazon Redshift でシームレスに利用できるようになり、パイプラインの状態がモニタリングされます。

これらの新しい統合がどのように機能するかを見てみましょう。この記事では、ゼロ ETL 統合を作成して、異なるソースデータベース (Aurora PostgreSQL と DynamoDB) から同じ Amazon Redshift クラスターにデータをレプリケートする方法を学びます。また、Aurora PostgreSQL ソースデータベースから複数のテーブルまたはデータベースを選択して、同じ Amazon Redshift クラスターにデータをレプリケートする方法も学びます。ゼロ ETL 統合が、複数の ETL パイプラインを構築および管理する運用上の負担なしでどのように柔軟性を提供するのかを見ていきます。

Aurora PostgreSQL の Amazon Redshift とのゼロ ETL 統合の開始方法
データベースを作成する前に、カスタムクラスターパラメータグループを作成します。これは、Aurora PostgreSQL の Amazon Redshift とのゼロ ETL 統合では、Aurora DB クラスターパラメータに特定の値が必要になるためです。Amazon RDS コンソールのナビゲーションペインから、[パラメータグループ] に移動します。[パラメータグループを作成] を選択します。

[パラメータグループ名][説明] で、custom-pg-aurora-postgres-zero-etl と入力します。[エンジンタイプ][Aurora PostgreSQL] を選択し、[パラメータグループファミリー][aurora-postgresql16] を選択します (ゼロ ETL 統合は PostgreSQL 16.4 以降のバージョンで機能します)。最後に、[タイプ][DB クラスターパラメータグループ] を選択し、[作成] を選択します。

次に、[パラメータグループ] ページで新しく作成したクラスターパラメータグループを選択して編集します。[アクション] を選択し、[編集] を選択します。次のクラスターパラメータ設定を行います。

  • rds.logical_replication=1
  • aurora.enhanced_logical_replication=1
  • aurora.logical_replication_backup=0
  • aurora.logical_replication_globaldb=0

[変更を保存] を選択します。

次に、[Aurora PostgreSQL データベース] を作成します。データベースを作成する際に、必要に応じて構成を設定できます。[使用可能なバージョン] から [Aurora PostgreSQL (PostgreSQL 16.4 以降と互換性あり)] を選択し、[追加設定] セクションの [DB クラスターパラメータグループ] で、カスタムクラスターパラメータグループ (今回は [custom-pg-aurora-postgres-zero-etl]) を選択します。

データベースが使用可能になったら、Aurora PostgreSQL クラスターに接続して、books という名前のデータベースを作成し、このデータベースのデフォルトスキーマに book_catalog という名前のテーブルを作成して、ゼロ ETL 統合で使用するサンプルデータを挿入します。

ゼロ ETL 統合の使用を開始するために、私は既存の Amazon Redshift データウェアハウスを使用します。Amazon Redshift リソースを作成および管理するには、「Amazon Redshift 開始方法ガイド」にアクセスしてください。

Amazon RDS コンソールのナビゲーションペインから [ゼロ ETL 統合] タブに移動し、[ゼロ ETL 統合を作成] を選択します。[統合識別子]postgres-redshift-zero-etl と入力し、[統合の説明]Amazon Aurora zero-ETL integration with Amazon Redshift と入力します。[次へ] を選択します。

次のページで、[RDS データベースを参照] を選択してソースデータベースを選択します。[データフィルタリングオプション] で、database.schema.table パターンを使用します。Aurora PostgreSQL books データベースに、book_catalog というテーブルを含めます。フィルターに * を含めると、books データベース内のすべてのスキーマのすべての book_catalog テーブルがレプリケートされます。フィルタータイプとして [含める] を選択し、[フィルター式] フィールドに books.*.book_catalog と入力します。[次へ] を選択します。

次のページで、[Redshift データウェアハウスを参照] を選択し、既存の Amazon Redshift データウェアハウスをターゲットとして選択します。Amazon Aurora がデータウェアハウスにレプリケートできるようにし、大文字と小文字の区別を有効にするには、ターゲットで認可されたプリンシパルと統合ソースを指定する必要があります。Amazon RDS はセットアップ中にこれらのステップを完了できますが、Amazon Redshift で手動で設定することもできます。このデモでは、[修正する] を選択し、[次へ] を選択します。

大文字と小文字の区別のパラメータとデータウェアハウスのリソースポリシーを修正したら、次の [タグと暗号化を追加] ページで [次へ] を選択します。設定を確認したら、[ゼロ ETL 統合を作成] を選択します。

統合が成功したら、統合名を選択して詳細を確認します。

ここで、統合からデータベースを作成してセットアップを完了する必要があります。Amazon Redshift コンソールに移動し、ナビゲーションペインで [ゼロ ETL 統合] を選択して、作成した Aurora PostgreSQL 統合を選択します。[統合からデータベースを作成] を選択します。

[ソース名データベース] として books を選択し、[宛先データベース名] として zeroetl_aurorapg と入力します。[データベースを作成] を選択します。

データベースが作成されたら、[Aurora PostgreSQL 統合] ページに戻ります。このページで、[データをクエリ] を選択して Amazon Redshift データウェアハウスに接続し、データがレプリケートされているかどうかを確認します。zeroetl_aurorapg データベースで選択クエリを実行すると、book_catalog テーブルのデータが正常に Amazon Redshift にレプリケートされていることがわかります。

冒頭で述べたように、Aurora PostgreSQL ソースデータベースから複数のテーブルまたはデータベースを選択して、同じ Amazon Redshift クラスターにデータをレプリケートできます。同じゼロ ETL 統合に別のデータベースを追加するために必要なのは、[データフィルタリングオプション]database.schema.table の形式で別のフィルターを追加し、データベース部分を、レプリケートするデータベース名に置き換えることだけです。このデモでは、同じデータウェアハウスにレプリケートする複数のテーブルを選択します。Aurora PostgreSQL クラスターに publisher という名前の別のテーブルを作成し、サンプルデータを挿入します。

レプリケーションのためにパブリッシャーテーブルを含めるように [データフィルタリングオプション] を編集します。これを実行するために、postgres-redshift-zero-etl の詳細ページに移動し、[変更] を選択します。[フィルター式] フィールドに、カンマを使用して books.*.publisher を付加します。[続行] を選択します。変更内容を確認し、[変更を保存] を選択します。統合の詳細ページの [フィルタリングされたデータテーブル] セクションに、レプリケーションのために 2 つのテーブルが含まれていることがわかります。

Amazon Redshift クエリエディタに切り替えてテーブルを更新すると、新しい publisher テーブルとそのレコードがデータウェアハウスにレプリケートされていることがわかります。

Aurora PostgreSQL の Amazon Redshift とのゼロ ETL 統合が完了したので、DynamoDB の同じデータウェアハウスとのゼロ ETL 統合を作成しましょう。

DynamoDB の Amazon Redshift とのゼロ ETL 統合の開始方法
この部分では、Book_Catalog という名前の既存の Amazon DynamoDB テーブルを使用して、Amazon DynamoDB ゼロ ETL 統合を作成します。テーブルには 2 つの項目があります。

Amazon Redshift コンソールに移動し、ナビゲーションペインで [ゼロ ETL 統合] を選択します。その後、[ゼロ ETL 統合を作成] の横にある矢印を選択し、[DynamoDB 統合を作成] を選択します。[統合名]dynamodb-redshift-zero-etl と入力し、[説明]Amazon DynamoDB zero-ETL integration with Amazon Redshift と入力します。[次へ] を選択します。

次のページで、[DynamoDB テーブルを参照] を選択し、Book_Catalog テーブルを選択します。統合を作成する前に、認可されたプリンシパルと統合ソースを含むリソースポリシーを指定し、ソーステーブルでポイントインタイムリカバリ (PITR) を有効にする必要があります。Amazon DynamoDB で自動的に実行することも、手動で設定を変更することもできます。統合に必要なリソースポリシーを自動的に適用し、DynamoDB テーブルで PITR を有効にするには、[修正する] を選択します。[次へ] を選択します。

その後、既存の Amazon Redshift Serverless データウェアハウスをターゲットとして選択し、[次へ] を選択します。

[タグと暗号化を追加] ページで、もう一度 [次へ] を選択し、[確認および作成] ページ[DynamoDB 統合を作成] を選択します。

ここで、Aurora PostgreSQL ゼロ ETL 統合の場合に実行したのと同じように、統合からデータベースを作成してセットアップを完了する必要があります。Amazon Redshift コンソールで、DynamoDB 統合を選択し、[統合からデータベースを作成] を選択します。ポップアップ画面で、[宛先データベース名] として zeroetl_dynamodb と入力し、[データベースを作成] を選択します。

データベースが作成されたら、Amazon Redshift の [ゼロ ETL 統合] ページに移動し、作成した DynamoDB 統合を選択します。このページで、[データをクエリ] を選択して Amazon Redshift データウェアハウスに接続し、DynamoDB Book_Catalog テーブルからのデータがレプリケートされているかどうかを確認します。zeroetl_dynamodb データベースで選択クエリを実行すると、データが Amazon Redshift に正常にレプリケートされていることがわかります。DynamoDB からのデータは [SUPER データ型] 列にレプリケートされており、PartiQL sql を使用してアクセスできることに留意してください。

DynamoDB Book_Catalog テーブルに別のエントリを挿入します。

Amazon Redshift クエリエディタに切り替えて選択クエリを更新すると、新しいレコードがデータウェアハウスにレプリケートされていることがわかります。

Aurora PostgreSQL および DynamoDB と Amazon Redshift 間のゼロ ETL 統合は、複数のデータベースクラスターからのデータを統合し、データウェアハウスでインサイトを得るのに役立ちます。Amazon Redshift では、複数のテーブルに基づくクロスデータベースクエリとマテリアライズドビューを使用できるため、分析アセットを統合して簡素化し、運用効率を高め、コストを最適化する機会を得ることができます。複雑な ETL パイプラインの設定と管理について心配する必要がなくなりました。

今すぐご利用いただけます
Aurora PostgreSQL の Amazon Redshift とのゼロ ETL 統合は、米国東部 (バージニア北部)、米国東部 (オハイオ)、米国西部 (オレゴン)、アジアパシフィック (香港)、アジアパシフィック (ムンバイ)、アジアパシフィック (シンガポール)、アジアパシフィック (シドニー)、アジアパシフィック (東京)、欧州 (フランクフルト)、欧州 (アイルランド)、欧州 (ストックホルム) の AWS リージョンでご利用いただけるようになりました。

Amazon DynamoDB の Amazon Redshift とのゼロ ETL 統合は、すべての商用、中国、GovCloud の AWS リージョンでご利用いただけるようになりました。

料金に関する情報については、Amazon Aurora および Amazon DynamoDB の料金ページにアクセスしてください。

この機能の使用を開始するには、「Amazon Redshift との Aurora ゼロ ETL 統合での作業」および「Amazon Redshift ゼロ ETL 統合」のドキュメントをご覧ください。

– Esra

原文はこちらです。