Slide 1

Slide 1 text

AWS Glueで始める データレイク

Slide 2

Slide 2 text

自己紹介 - 名前: 阿部 真之 - 仕事: 株式会社ゆめみ でAndroidエンジニアしてます - 最近はサーバサイド Kotlinの仕事も始めました - ほぼサーバーサイドどっぷりです - 趣味 - コーヒー、ビール、アニメ、ゲーム、読書、 etc… - Twitter: @marchin_1989

Slide 3

Slide 3 text

アジェンダ - データレイクとは - AWS Glue - AWS Glueのデモ

Slide 4

Slide 4 text

データレイクとは

Slide 5

Slide 5 text

データレイクとは - データの貯蔵庫 - 様々な生データを貯めておく - ニーズに応じて、利用することができる

Slide 6

Slide 6 text

- データレイクに入れたり、出したりするときにデータ連携を行う。 - ETL処理(抽出処理、変換処理、ロード処理)が主な処理。 データレイクでのデータ連携 データ連携

Slide 7

Slide 7 text

- データレイクに入れたり、出したりするときにデータ連携を行う。 - ETL処理(抽出処理、変換処理、ロード処理)が主な処理。 データレイクでのデータ連携 データ連携 ETL処理以外にもやることがある。 リトライ処理、メタデータ管理、データーソースのス キーマ変更への対応、ワークフロー管理、スケーリ ング etc… また、それ以前にアプリ実行環境の整備など、やる ことが多い。。。

Slide 8

Slide 8 text

AWS Glue - サーバーレスなデータ統合サービス。 - ETL Job:ETL処理の作成、実行、管理ができる。 - Glue Data Catalog:データソースのスキーマをカタログ化して、管理することができる。 - Crowler:データソースをクロールして、Data Catalogを作成できる。 - GlueStudio:ETL Jobの作成、実行、モニタリングが簡単にできるGUI。

Slide 9

Slide 9 text

AWS Glueのデモ

Slide 10

Slide 10 text

AWS Glueのデモ RDS上の「購入履歴データ」をS3(データレイク)に保存してみる。

Slide 11

Slide 11 text

実行手順 1. Crawlerの実行。Data catalogを作成 2. Glue StudioでETL Job構築、実行 3. 保存データの確認 1. 2. 3.

Slide 12

Slide 12 text

1. Crawlerの実行。Data catalogを作成 - すでに定義済みのクローラーの画面を確認する。 - データソースはRDSを指定。 1.

Slide 13

Slide 13 text

Data sourceにRDSを設定したCrowlerを定義し て、Crowlerを実行。 Hourly, Daily, Weeklyなどで定期実行可能。

Slide 14

Slide 14 text

テーブルスキーマの変更があった ことがわかる。

Slide 15

Slide 15 text

データカタログの画面。 crowlerを実行することで、Data catalogの作 成&更新ができる。 スキーマを管理し、他のサービスから利用す ることが可能。

Slide 16

Slide 16 text

2. Glue StudioでETL Job構築、実行 - Glue Studioの画面で、ETL Jobを構築する。 2.

Slide 17

Slide 17 text

AWS Glue Studioの画面から、jobを 作成する。

Slide 18

Slide 18 text

GUIベースで、ETL Jobを作成するこ とができる。

Slide 19

Slide 19 text

Sourceから、「Relational DB」を選択 すると、ノードが作成される。

Slide 20

Slide 20 text

Data Catalogを作成済みであれば、 DataCatalogを選択でき、抽出したい データーベースのテーブルを選択する。

Slide 21

Slide 21 text

Actionから、変換処理などを作成しノー ドをつなげるように処理を作成してい く。

Slide 22

Slide 22 text

year, month, dayのカラムを追加したり ...

Slide 23

Slide 23 text

スキーマ名の変更など可能。

Slide 24

Slide 24 text

いろいろな変換処理が用意されている。 もちろんスクリプトを自分で書くことも可能。

Slide 25

Slide 25 text

最後にTargetとして、保存先にS3を指定。 FormatはCSVやParquetといったものを選択可 能。

Slide 26

Slide 26 text

パーティショニングが可能。 データ利用時(検索時)に効率よくクエリを実行で きたりする。 ここでは、year, month, dayを指定。

Slide 27

Slide 27 text

保存し、Jobを実行。 実行のステータスは Runsタブで確認 できる。

Slide 28

Slide 28 text

3. 保存データの確認 - ETL Jobを実行後の、S3データを確認する。 3.

Slide 29

Slide 29 text

保存先のS3バケットを確認。 パーティションが「year=2022/month=10/day=10/」という 感じで作成されている。

Slide 30

Slide 30 text

ファイルの中身。 $ cat run-AmazonS3_node1669307667051-15-part-r-00000 amount,user_id,price,product_id,purchased_at,order_detail_id,order_id 1,3,7100,71,"2022-10-10 22:00:00.0",4239,848 1,1,1100,11,"2022-10-10 11:00:00.0",4185,837 1,1,2300,23,"2022-10-10 14:00:00.0",4199,840 1,1,2700,27,"2022-10-10 23:00:00.0",4244,849

Slide 31

Slide 31 text

まとめ - AWS Glueを利用することで、データレイク周辺のデータ連携が簡単にできる。より やりたいことに集中できる。 - Glue StudioでGUIベースで視覚的にETL Jobを作成、管理可能。

Slide 32

Slide 32 text

参考文献 ・AWSではじめるデータレイク, 上原 誠 (著), 志村 誠 (著), 下佐粉 昭 (著), 関山 宜孝 (著), 2020, テッキーメディア ・YouTube, 【AWS Black Belt Online Seminar】AWS Glue -Glue Studio を使ったデー タ変換のベストプラクティス-, https://www.youtube.com/watch?v=xRszN4Tb4uM, (2021/04/01) ・AWS, データレイクとは, https://aws.amazon.com/jp/big-data/datalakes-and-analytics/what-is-a-data-lake/, (2022/11/25)