re:invent 2017 に行ってきました
re:invent 2017 に参加してきました。
参加したセッションのメモなどを残しておきます。
ビッグデータ関連のセッションがほとんどです。
目次
- まとめ&感想
- MCL303 - Deep Learning with Apache MXNet and Gluon
- GAM310 - Build a Telemetry and Analytics Pipeline for Game Balancing
- ABD202 - Best Practices for Building Serverless Big Data Applications
- ABD327 - Migrating Your Traditional Data Warehouse to a Modern Data Lake
- ABD322 - Implementing a Flight Simulator Interface Using AI, Virtual Reality, and Big Data on AWS
- ABD307 - Deep Analytics for Global AWS Marketing Organization
- ABD318 - Architecting a data lake with Amazon S3, Amazon Kinesis, and Amazon Athena
- ABD304-R - [REPEAT] Best Practices for Data Warehousing with Amazon Redshift & Redshift Spectrum
- KeyNote #2
- Analytics JAM
- MCL345 - NEW LAUNCH! Integrating Amazon SageMaker into your Enterprise
- ABD323-R - [REPEAT] Extending Analytics Beyond the Data Warehouse
- DeepLens HandsOn
- ABD330-R - [REPEAT] Combining Batch and Stream Processing to Get the Best of Both Worlds
まとめ&感想
「Data Lake」というワードが頻繁に出てきたのが印象的でした。機械学習や IoT のセッションでも、データの集め方みたいな話になると、Data Lake という言葉と一緒に、必ず Glue Data Catalog と Athena と Kinesis Stream & Firehose がセットで登場していたように思います。
S3にとりあえずデータを貯めておいてあとはよしなに頑張れ、というのは昔から言われていました。そこに Athena や Glue Data Catalog が登場し、S3 がただデータを貯めておくだけの場所から、データ探索が可能な場所に変わったことで、「S3にデータを貯めておく」ことの重要性が大きくなったということでしょうか。
サーバーレスなデータ分析環境の話題も多かった印象です。ストリームに対する分析に関しては Kinesis Analysis が以前からありましたが、Athena と Glue ETL が出てきたことで、バッチ処理に対してもサーバーレスに行うことができるようになりました。ストリーム処理・バッチ処理どちらもサポートしたことで、例えば Lambda アーキテクチャ (AWS Lambda は関係ない)をサーバーレスに実装できるようになったというのは面白かったです。
新サービスの中でも特に注目だったのは SageMaker でした。Rekognition などのサービスと合わせて、機械学習へのハードルがガンガン下がっていきますね。今までは、無理に機械学習を取り入れなくてもいいかなと思ってましたが、そろそろ本格的に導入したくなってきました。Deep Lens も面白いですね。何か作ろう。
S3 Select & Glacier Select も地味に期待しています。Athena や Redshift Spectrum から Glacier に直接クエリを投げられる日が来るんでしょうか。そうなると、ストレージ料金的にも BigQuery より安くなるかもしれませんね。
あと、ベンチに座って休憩していたら、隣にいた知らない人から「Deep Lens についてどう思う?」と聞かれたのがちょっと衝撃でした。今まで知らない人から議論ふっかけられたことなかったので、面食らってしまいました。「正直まだあまりピンときていない」みたいなことを答えたのは後悔しています。デタラメでもいいから何かでっち上げるべきでした。
セッションは後から動画で観れるから re:invent わざわざ行かなくてもいいのでは?と思った時もありましたが、1週間という長い時間をこのためだけに確保できるというのは大事だと思いました。何より、実際にAWSのサービスを開発しているエンジニアや、海外のエンジニアと直接話をできるというのはとても貴重な体験でした。機会があればまた行きたいです。
以下雑なメモ
MCL303 - Deep Learning with Apache MXNet and Gluon
Deep Learning with Apache MXNet and Gluon
youtubue
slide
- AI > ML > DL
- Symbolist
- Analogist
- Bayesian
- Evolutionist
- Connectionist = DL
- Booster = random Forest
- MXNet
- Distribted Learning
- データを分割してそれぞれでネットワークを構築。それを average する
- Parameter server
- Batch size 大事
- 1回の操作でどれだけデータを扱うか?
- MXNet で batch size 大きくするとスーパー早くなるよ
- MXNet 使うと DL 簡単にできるよ
- Gluon
- Gluon 使うとさらに柔軟性がUP!
- 学習の途中にデバッガも挟める
GAM310 - Build a Telemetry and Analytics Pipeline for Game Balancing
Build a Telemetry and Analytics Pipeline for Game Balancing
slide
amzn.to/GAM310
- EMR はアーミーナイフ
- Kinesis analysis は Kinesis stream を source に、Kinesis Firehose を destination に指定するみたいなことができる。便利そう
ABD202 - Best Practices for Building Serverless Big Data Applications
Best Practices for Building Serverless Big Data Applications
youtube
slide
- Virtualized -> Managed -> Serverless
- Serverless
- No server provisioning
- Never pay for idle
- Mix and Match Serverless, Managed, and Virtualized
- Services
- Lambda
- Athena
- Glue
- Data Catalog
- Servderless ETL
- Kinesis
- Kinesis Analytics の前に Lambda で preprocess 可能
- Stream / Batch どちらも Pipeline も AWS はカバーしている
- Stream — Kinesis -> Lambda -> Kinesis Analytics -> QuickSight
- Batch — S3 -> Glue -> Athena -> QuickSight
- Misc
- Glue Data Catalog 便利くさい
- Athena — `group by (1)` ??
- “Data Lake Architecture”
- About Existing Hadoop Cluster
- Hue interface
- Zeppelin (ゼッペリン)
- まとめ
ABD327 - Migrating Your Traditional Data Warehouse to a Modern Data Lake
Migrating Your Traditional Data Warehouse to a Modern Data Lake
slide
youtube
- Result Caching
- Transparent! -- 何も考えなくても適用されている
- リソースに余裕ができることで、他の思いクエリの処理も高速化される
- Short Query Acceleration
- AI で最適化
- Customized for your workload
- Transparent!
- Nested Data Support!!!
- Fox の事例
- よく使うテーブルは Daily vacuum
- 週1で全テーブル vacuum
- analyze のタイミングは統計テーブルを見て自動でキック
ABD322 - Implementing a Flight Simulator Interface Using AI, Virtual Reality, and Big Data on AWS
Implementing a Flight Simulator Interface Using AI, Virtual Reality, and Big Data on AWS
slide
フライトシミュレーターを作ってみようワークショップ。
前半は、VR / AR の概要や重要性に関するレクチャー。IoT や AI, Big Data などとの関連についても触れていた。
ワークショップとしては、実際はシミュレータ部分は触らず、シミュレーターから出て来たデータを Kinesis に流してゴニョゴニョするところがメイン
- Builders fair — Aria — Quad 34
- Predictive analytics
- 5 components
- Simulae
- Interface
- Switches, inputs, outputs
- Process
- Kinesis
- To CloudWatch
- To Redshift
- IoT / GreenGrass
- Visualize
- Cloudwatch dashboard
- Interact
- Lex
- Learn
- Redshift
- DynamoDB
- Amazon Machine Learning
- What must consider
- Volume & Velocity & Frequency
- Latency
- Network
- Cost, Deployment, Security
- http://bit.ly/2zFdJa3
- 感想
- BigData には IoT や AI の話題が必ずついて回ってくるようだ。
- BigData 領域だけ見ていたらダメだなあと思いました。
ABD307 - Deep Analytics for Global AWS Marketing Organization
Deep Analytics for Global AWS Marketing Organization
youtube
slide
- Single Data Repository
- Redshift 使ってる
- Self-service
- 次のステップ
- Real time
ABD318 - Architecting a data lake with Amazon S3, Amazon Kinesis, and Amazon Athena
Architecting a data lake with Amazon S3, Amazon Kinesis, and Amazon Athena
youtube
slide
- データレイクを使う理由
- 利用シーンが多様に
- 外部の顧客に渡す場合とか
- Future Proof??
- Data is not never perfect
- Glue catalog の redshift テーブルってなんだ???
- S3 と Metastore 以外は代替手段が存在する。この2つだけは置き換えられない。
- Atlassian の事例
- Transformation as a Service = TaaS
- Self-service schema
- コンソールぽちぽちやったら簡単に datalake ができる、なんてことはないよ
ABD304-R - [REPEAT] Best Practices for Data Warehousing with Amazon Redshift & Redshift Spectrum
[REPEAT] Best Practices for Data Warehousing with Amazon Redshift & Redshift Spectrum
slide
- 歴史
- 昔は Postgres だった
- そこに MPP や OLAP の機能を加え、さらに IAM やらなんやらもひっくるめて Redshift になった
- Sort key は4つまで
- Slice — 各ノードに slice と呼ばれる番号がついていて、DISTKEY の設定に従って、各 slice にデータが振り分けられる。
- DISTKEY
- JOIN 性能
- INSERT INTO 性能
- GROUP BY 性能
- DataType はなるべく大きいものを — 効率的に圧縮されるのでデータ量はそんな気にしなくて大丈夫
- INT / BIGINT < NUMERIC
- VARCHAR
- Backup
- 5GB ごとにバックアップする、などが可能
- Temp table 速いよ(データがレプリケーションされないから?)
- UPSERT
- Temp table はCOMPUPDATE OFF!
- Temp table は本体テーブルと同じ DISTKEY を。INSERT パフォーマンスが上がる
- Superuser queue
- Cancel は superuser queue で
- QMR
- リソース食う処理はひとまずログに残してみるのがいいかも
- タイムアウト管理は WLM やり QML
- データのミラーリングのため少なくとも2ノード
- すくなくとも空き容量 20% は確保
- Spectrum のスペックはクラスタサイズに依存
- 1つの Slice で扱える spectrum node の数が決まってる?
KeyNote #2
省略
Analytics JAM
Analytics に関する問題をゲーム形式で解いていく。
チームにスーパーマンがいたので時間内に全問クリアすることができました。
内容はハンズオンに近いものがありました。普段使わないサービスも幅広く触れたのは面白かったです。
ビッグデータに関する問題は1問しかなく、ほとんどが機械学習とIoTに関するものでした。
MCL345 - NEW LAUNCH! Integrating Amazon SageMaker into your Enterprise
- DataCollection / DataIntegration / Data Preparation Cleaning は引き続き EMR や Redshift の仕事??
- Principle Component Analysis や Matrix Factorization などのアルゴリズムも提供しているので、単純な分析環境としても有用そう
- 内部で Docker をいろいろ使ってるのが面白い
- 学習環境を提供するのに Docker コンテナを使ってる
- 全体のフローの一部の挙動を変えたい時に、プラグインを差し込む代わりに、Docker container を渡せるようにしてあるのかな
- 面倒なところ全部抽象化しつつ、柔軟性も
- Model artifacts = 学習済みのモデル
- Inference docker image = 新しいデータを学習済みのモデルのどうやって当てるかを定義した Docker image ?
- デプロイすると inference API が出来上がる
ABD323-R - [REPEAT] Extending Analytics Beyond the Data Warehouse
- 1430TB — Hive 1000 nodes 5 year -> spectrum 155 seconds
- Push computation down to spectrum layer
- Redshift の下にレイヤーがあるイメージなのか
- Spectrum は stateless
- Spectrum 層のノード同士は通信できない
- JOIN は基本的には push down されないが、JOIN 対象が十分小さければ push down される
- Map-reduce のレイヤが spectrum によってもう1段増える
- Spectrum の方が redshift より早い???
- Late binding view
- Order by は push down されない
- データをちょっと覗くには athena が便利、ダッシュボードやBIツールから見るには Spectrum
- Spectrum 自体にクラスタサイズは関係ないが、spectrum から上がってきたデータを裁くためにクラスタが必要
- 小さいテーブルが S3 にあっても、JOIN はプッシュダウンされる
- Hive metastore の statistics も管理する必要がある
- Glacier ??
- udf は push down されない
DeepLens HandsOn
https://github.com/aws-samples/reinvent-2017-deeplens-workshop
これはホットドッグですか?
ABD330-R - [REPEAT] Combining Batch and Stream Processing to Get the Best of Both Worlds
[REPEAT] Combining Batch and Stream Processing to Get the Best of Both Worlds
slide