[レポート] Amazon AuroraとAmazon Redshiftで業務データの分析を可能に #DAT328 #reinvent

2023.01.01

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

データアナリティクス事業本部の鈴木です。

AWS re:Invent 2022の、セッション番号DAT328の『[NEW LAUNCH!] Enabling operational analytics with Amazon Aurora and Amazon Redshift』を聴講したのでレポートです。

なお、このセッションで紹介されたAmazon Aurora zero-ETL integration with Amazon Redshiftは、記事執筆時点ではプレビューです。

セッションについて

登壇者

  • Neeraja Rentachintala, Principal Product Manager, Amazon
  • Adam Levin, Product Manager, Amazon Aurora, AWS

Session level

300 - Advanced

Session type

Breakout Session

動画

セッション概要

ユーザー体験の改善とビジネスプロセスの最適化のため、企業は業務データのニアリアルタイムな分析を行い、顧客と主要なビジネスドライバーに対するより良い理解を得る必要が増しています。業務データを分析するためのシステムは、今日は単一のデータベースに限られているか、管理の難度が高くコストがかかるような独自のデータパイプラインを構築しているかで、分析用の業務データを取得するのにデータの生起から数時間の遅れが発生することもあります。このセッションでは、新しくAmazon AuroraでサポートしたAmazon RedshiftとのゼロETL統合について深掘りします。この新しいノーコードな機能がどのようにニアリアルタイムな分析と機械学習を実現しているか学びます。

発表概要

セッションは機能の紹介とデモの大きく2つのパートに分かれていたので、各々の概要をご紹介します。

機能の紹介

今日、データ駆動にビジネスを進めているユーザーは、データを資産や競争上の優位性として捉えるようになると、よりリアルタイムに近い分析を求めるようになります。リアルタイム分析の用途は多岐に渡りますが、データに素早くアクセスし、洞察を得て、適切な瞬間に行動を起こすことが重要になります。

リアルタイムな洞察が必要とされている

一方で、現在、業務分析を行うには、業務用データベースからデータを取り出し、分析用システムにそのデータをロードするためのパイプラインを構築・管理する必要があり、その管理は難しく、コストがかかります。また、業務用データベースにアクセスする際にエラーが起こりやすく、遅延に繋がるリスクもありますし、業務用データベースから分析用システムデータにデータを反映する際に読み取りに一貫性がなかったり、データソースのスキーマが変更がパイプラインに影響を与えてしまったりなど、課題が数多くあります。

分析と業務の両方を同じデータベースで提供する単一データベースソリューションを使用することもできますが、このようなケースは一般的に、専用に作られた非常に対象を絞った分析アプリケーションに限定されます。

現状の業務データ分析ソリューションは難しい1

現状の業務データ分析ソリューションは難しい2

AWSにおいて、AuroraとRedshiftは多くのお客様に広く利用されていますが、Auroraの業務データをRedshiftにロードして分析する場合、間にデータパイプラインが存在していることがほとんどです。データパイプラインがデータのエンリッチメントを目的としている場合は適切ですが、単に素早くデータを移したいような場合、この構成はレイテンシーの原因になります。

大規模な業務データ分析

この課題はAmazon AuroraでサポートしたAmazon RedshiftとのゼロETL統合により解決できます。この機能により、Auroraに書き込まれたデータは、数秒以内にRedshiftで利用できるようになります。パイプラインの作成と管理とそれに起因するエラーが発生しなくなりますし、低レイテンシーでのデータ統合が可能になります。また、複数のAuroraデータベースのデータを組み合わせてRedshiftで分析でき、ビジネスの全体像をより簡単に把握できるようになります。

ゼロETL統合の導入

ユーザーとしては、データソースのAuroraデータベースを指定し、ターゲットとなるRedshiftを指定するだけでよく、設定するとすぐにデータのレプリケートが始まります。Redshiftにデータが表示されれば、それ以降はAuroraで変更が発生するといつでも数秒以内にRedshiftに反映されます。これはストレージレイヤーでレプリケーションが行われています。また、エラーからも自動的に回復します。Redshiftにデータを入れてしまえば、さまざまなデータ分析処理が可能になりますし、BIツールなどを繋いでレポートを作成したりすることも可能です。

統合の設計について

また、Aurora ServerlessとRedshift Serverlessで、サーバレスな環境でもこの統合を使用することができます。

サーバレス同士でも可能

複数の業務データベースからデータをロードして分析することもできますし、ほかのRedshiftクラスターとデータを共有したり、ほかのニアリアルタイムなデータソースと合わせて分析することも可能ですね。

複数データベースからのデータ取得と分析

データシェア

デモンストレーション

あらかじめAuroraとRedshiftのインスタンスが作成されていることが前提です。Aurora側の操作とRedshift側の操作について確認します。

Aurora側の操作

まず、RDSのコンソールからZero-ETL Integrationsを押します。

RDSの設定1

統合名、データソースとなるデータベース、ターゲットとなるRedshiftクラスターを選択し、追加の設定がなければCreate Zero-ETL Integrationボタンをクリックします。これでRDS側の設定は終わりのようです。

RDSの設定2

統合がアクティブになるのを待ちます。

アクティブになるのを待つ

Redshift側の操作

Redshift側では、Auroraにあったスキーマとデータを使ってRedshiftに統合するように指示する必要があります。

デモではRedshift query editor v2で操作頂きました。

Redshift query editor v2

まずsvv_integrationシステムテーブルから統合IDを取得します。ちょっと分かりにくいですが、統合IDは黒塗りの下にあるようです。

統合IDの取得

その統合IDを使って、そのRedshiftクラスターに新しいデータベースを作成します。こちらも統合IDは黒塗りされていますが、CREATE DATABASE データベース名 FROM integration 統合IDというように、Redshiftに作るデータベースと統合IDを紐づけるようです。

データベースの作成

後はデータベースを切り替えると、テーブルが反映されていることが確認できました。

データベースの変更

テーブルの確認

デモでは初期状態だけではなく、Aurora側で作成した新しいテーブルを追加したり、データを追加したりした場合も反映が数秒で行われていることも確認できました。

仕組みについての解説

簡単にレプリケートの仕組みについて解説がありました。Aurora側で変更データの取得が完了し、データ変更のログを収集してストレージに書き込むことができたら、ストレージ層で複数のワーカーエージェントが並行して動作してRedshiftにプッシュするというように、ストレージ層でレプリケートが行われるのがポイントのようです。

ストレージレイヤーでの統合

Auroraのストレージ

Redshiftのストレージ

終わりに

今回はre:Invent2022で行われた『[NEW LAUNCH!] Enabling operational analytics with Amazon Aurora and Amazon Redshift』のレポートでした。

業務データをデータウェアハウスに複製して分析するユースケースは非常によくありますが、数が多い場合、単にデータをコピーするだけでもパイプラインを構築・運用していくのは非常に面倒で、障害の原因にもなりやすいです。そのため、Auroraを業務用データベースにするだけで、AWSの仕組みでRedshiftにデータがニアリアルタイムに複製されるのは、ものすごくありがたい機能ですね。

また今後は中央のRedshiftに統合するだけではなく、ビジネス単位で業務DBに対してRedshiftを作成しAmazon DataZoneなどで公開することも簡単になってくるので、さまざまなアーキテクチャで大活躍する強力な機能だと思います。

Session levelが300 - Advancedではありますが、内容が分かりやすく、動画も30分程度と見やすいので、ぜひお時間がある方は一度ご視聴頂ければと思います。