re:Invent2020セッションレポート:(EMB019) Deep dive on AWS Glue Elastic Views
概要
2020 re:Inventで新たに登場した AWS Glue Elastic Viewsの紹介セッションです。 AWS Glueは既存のサービスで、データ分析用のデータETL(抽出、変換、読み込み )処理や対象データスキーマ管理に使用されます。
今回はGlueの新機能としてElastic Viewsが出ました
Why AWS Glue Elastic Views?
- 従来の仕組みはアプリケーション+データベースの2層構成
- オンラインショップを例とすると、オーダー情報や個人情報を元に、不正検知やレコメンデーション等色々な処理が必要になる。
- 1つのDBではこれら色々な処理をするのは難しい
- AWSでは目的ベースでDBサービスが用意されている
- オンラインショップの場合もやりたい処理内容に合わせてDBを選択する
ショッピングカタログを例
- 100万人ユーザー、100万RPS
おそらくこういった例ではDynamoDBを使用する
- もしこのアプリケーション(+DB)が稼働中で、テキスト検索がしたいという要件が出たらどうするか?
- テキスト検索に特化したElasticSearchを用意して、DynamoDBから読み込む
- コピー処理には複雑なコードが必要で、エラーのリトライ管理、パイプラインの管理もしなければいけない→大変
- そこでGlue Elastic Viewsの登場!
What are Glue Elastic Views
- Elastic Viewsとは
(文字スライド多めだったのでキャプチャ割愛)
Ease of use
- 簡単に使えます
- ここではDynamoDB→ElasticSearchの例
1.作業の流れ
- テーブル、View、Materialize view
2.テーブルの作成(DynamoDB)
3.テーブルのActivate
- 最初はinactivateなので手動でActivateする
- Activateを押すと、テーブル情報が見れる
4.Viewの作成
5.マテリアライズドViewの作成
- ターゲットのElasticSearchと名前を指定
6.データのMapping
- 自動的に推奨のタイプが表示される、手動変更も可能
手順はここまで
Programmability and correctness (プログラムのしやすさと正しさ)
- PartiQLの仕組みを使用して、さまざまなAWSデータサービスに接続ができる
- documentという形でデータ情報の定義ができる
- ここで最初の質問に戻り、どうやったらDynamoDBのデータをテキスト検索できるようになるか?
- Elastic Views を使用
- Viewの作成例 *(細かなSQLの紹介がありつつ、)以下の要にCREATE VIEW文を使って変換が可能
- データの互換性、変換例(DynamoDB→Redshift)
- Mapping View
- 値の変換も可能(色付のところ)
- DynamoDBのデータは柔軟性があるので、想定外のデータが入ることもある。(バイナリのような)
- 例外データとしてS3などに別出しできる
- Violation Views
- 例外データを抽出するためのView
- この例では通常データはRedshift、例外をS3へ
- コードで書きたい場合はSQLを書き込むこともできる
Re:cap
- 2021年に向けてサポートするデータソースおよびターゲットの追加を多く予定している
- フィードバックください!
感想
データのETL処理はこれまで、Glueで実現するならGlueジョブを用意して、パイプライン用意して、実行間隔などを決めてなど色々とやることがありました。 もちろんジョブコードの開発も必要。
ジョブ作成に関しては、GUIベースでよりわかりやすく開発ができるGlue Studioが今年?に発表されていました。 Glue Studioは、下記クラメソさんの記事がわかりやすいと思います。
それに対しGlue Elastic Viewsでは、ジョブだけでなく処理実行の管理までマネージドになり、より利用者の開発範囲が小さくなった機能のように見えました。 全てのユースケースで使えるかはまだ微妙なところですが、マッチするのであれば積極的に使っていきたいですね。
まだプレビュー段階なのでわからないことは多いですが、一般公開されたらまた見ていきたいです。