/home/by-natures/dev*

データ界隈で働くエンジニアとしての技術的なメモと、たまに普通の日記。

2018/12/14 AWS Glue と Lambda Architecture

クリスマスの雰囲気が好きなのですがいかんせん寒くなってきて、出かけるのが億劫になってきました。インフルエンザも流行りだしたようなので、そろそろマスクをしなければいけない季節でしょうか。

今日は分散処理周りで調べ物をしていたので、読んだ記事をご紹介します。

The Illustrated Children's Guide to Kubernetes

同僚がチャットで紹介していたのですが、分かりやすかったです。Kubernetes はまだ触ったことがなくて、今月末社内でセミナーがあるので予習代わり・・・にはさすがにならないですが。。ユーモラスがあって可愛らしい。

www.publickey1.jp

www.publickey1.jp

AWS Glue の事例

primeNumber さんの事例

primeNumber さんの AWS Glue 活用事例です。Kinesis Firehose から S3 へ書き込み、そのあとの集計結果をまた S3 へ書き込むことによって、Batch layer と Serving layer(データを閲覧するレイヤ)の分離ができています。

speakerdeck.com

フューチャーアーキテクトさんの事例

Glue での実際のコード例や、EMR との比較なども紹介されていて分かりやすいです。あまり実態がつかめていなかったのですが、おかげで Glue を具体的に理解することができました。入出力でのパフォーマンス計測の記事もあり、参考になります。

future-architect.github.io

future-architect.github.io

キャスレー社のブログ

ログをクロールしてテーブルを作成し、さらに整形する・・・といった流れを Glue で行う例が紹介されています。大規模データに対してはどうか、と最後に締めくくられているのでパフォーマンス検証は行えていないようですが、Glue の使い方を理解するにはとても役立ちます。

www.casleyconsulting.co.jp

Lambda Architecture

Lambda Architecture » λ lambda-architecture.net

昔先輩に説明されて、よく理解できなかったのですが、今読むと理解できました。上の AWS Glue を利用した事例でも Lambda Architecture の概念から説明がされています。

"Lambda" は「ラムダ計算」から名付けられているようです。データは Batch layer に貯め続けて、そこに対する純粋な関数があり、データに対する問い合わせも副作用がない関数であり、様々なところで純粋な関数が出てくるので、"lambda" とつけるのが適切であるということのようです。

面白半分で I think its just the letter 'Lambda'. It looks like the data is divided into two streams. なんていう人もちらほら見かけました。。データが二手に分かれる様がλの文字のようだ、ということですが、ちょっと無理があるような。

stackoverflow.com