カーキ色はヒンディー語らしい

技術記事は https://zenn.dev/notrogue

Google Cloud in Action読んだ

 

 

learning.oreilly.com

  • 2018年に出たGoogle Cloud Platformの本です。
  • 著者の John J. GeewaxさんはGoogleのエンジニアです
  • サンプルプログラムはNodeJS(あんまり依存しないと思いますが)です

 

以下のGCPサービスが紹介されており、

  • DB・ストレージ系(GCS.BigTable,Datastore,CloudSQL,Spanner)
  • Compute系(GCE,GKE,GAE,Cloud Function)
  • 機械学習系(Cloud Vision, Cloud Natural Language, Cloud Speech, Cloud Translation, Cloud Machine Learning Engine)
  • ビッグデータ系(BigQuery, Pub/Sub, Dataflow)

それぞれのサービスに関して、

  • 概要
  • 特性(レイテンシ、スケール、耐久性)
  • 合う合わない(小規模なTODOアプリ、大規模SNS、証券取引)
  • 価格感

が説明されています。GCPのサービスの感じを掴むのにいい感じです。

 

個人的に勉強になったのは、Pub/Subの属性メッセージ データの使い分けの記載です。

メッセージデータはデコード(Base64。任意で暗号化)が必要、属性は不要なので、メッセージのルーティング(※)的な事をするためのデータは属性に入れるのが、想定してる使い分けらしいです。

※サブスクライバーが処理すべきメッセージか判定したり、データ内容によって処理内容を変更する

 

 

O'Reillyのサブスクリプション(Safari)登録してみた

すべての情報は2020/06時点のものです

 

Safariとは

www.oreilly.co.jp

O'Reillyが運営している、オンライン学習プラットフォームです。

 

何が見れんの

などが使えます。

 

(2020/6/17時点のコンテンツの状況。英語だと5万タイトル)

f:id:toukoudo:20200617211638p:plain

 

 

でもお高いんでしょ

www.oreilly.com

O'reilly直接では、月$49もしくは年$499です。

月1・2冊O'reillyの本読めば元とれるレベルです。

 

 

www.acm.org

ACM(Professinal Membership)に加入すると、Safariを使うことが出来ます。

年$99なので、年2・3冊読めば元取れるレベルです。

 

なお、ACMに入るには会員資格があります(ただし審査はない?):

Membership Qualifications
You must satisfy one of the qualifications below:

  1. Bachelor's Degree (in any subject area); or
  2. Equivalent Level of Education; or
  3. Two years full-time employment in the IT field.

 

登録

  1. Joinにアクセス

  2. Professinal Membershipを選択
  3. 必要情報を入力(名前・住所・メールアドレス・年齢)
  4. 支払い情報(PayPal可)を入力

閲覧

で閲覧出来ます。

 

いずれの方法でも、ACM経由で登録した場合は、ACMから発行されるメールアドレス(名前@acm.org)を入力する必要があります。

 

learning.oreilly.com

O'Reilly

O'Reilly

  • O'Reilly Media, Inc.
  • 教育
  • 無料

apps.apple.com

 

なお、iPadで閲覧した感じ、アプリにストレスは感じませんでした。

 

 

 

Apache Beam katasやってみる #2(課題編)

 

 

katasでは、下のような内容を行います。

  1. Hello World
  2. ParDo
  3. MapElements
  4. FlatMapElements
  5. GroupByKey
  6. CoGroupByKey
  7. Combine
  8. Flatten
  9. Partition
  10. Side input
  11. Side Output
  12. Branch
  13. Compositte Transform
  14. DoFnへの追加のパラメータ(Timestampなど)
  15. Filter
  16. Aggregation系(Count, Sum, Mean, Min, Max)
  17. WithKeys
  18. TextIO
  19. Window
  20. Trigger(Event time, early triggering, accumulation)
  21. WordCount

 

Beamの学習といえば、Programming Guide

beam.apache.org

が人気ですが、Katasはその多くをカバーしていることがわかります。

 

 

なお、

  • Coders
  • Schema
  • Metrics
  • Timer
  • State

あたりは、Katasに無いので、Programming Guideを読む必要があります。

(Coder以外は新しい機能なので、知らなくてもBeamのコード書けると思いますが)

 

 

 

Apache Beam katasやってみる #1 (操作編)

 

 

 

Apache Beam katasを始めると、下のような画面が表示されます。

  • 右側のペインに、kataの説明、ヒント、Beamドキュメントへのリンクが表示されます
  • 中央のペインに、kataのコードが表示されます
  • 左側のペインに、kataの一覧が表示されます

 

f:id:toukoudo:20200607114144p:plain

 

 

練習の流れとしては、

  1. 与えられた課題と、コードを確認
  2. 必要ならBeamのドキュメントを確認
  3. TODOの部分にコードを記載
  4. 右側のペインのcheckを実行
  5. 成功したらConguratulationsが出る
  6. テスト・コンパイル失敗した場合は、ツールウィンドウの"Run"(下図)で詳細を確認
  7. (わからなければ)check後、「Peek Solution」が右ペインに出るので、模範解答を除く

な感じです。

 

f:id:toukoudo:20200609063056p:plain

 

 

 

Apache Beam katasやってみる #0

 

 

Beam Katasとは

Apache Beamのコード書くの難しい(こともある)から、インタラクティブに勉強しようねという教材です。

 

Beamのページに説明あったり、

beam.apache.org

 

Googleの動画でも紹介されてたりします。

(動画で謎に日本語入たり、エフェクトが面白い)

 

www.youtube.com

Katasのどこが良いか

  • Beamの基本的な処理を、一通り体験出来る
  • 手を動かすので、ドキュメント読むだけより頭に入りやすい(気がする)
  • ちょうどいい感じの量(1時間~半日くらいだと思います)

 

 

Beam入門

Katas以外だと、

  1. みんな大好き Beam Programming Guide
  2. オライリーの本(Streaming Systems [Book])
  3. GoogleのDataflowTemplates

あたりがポピュラーな入門方法だと思います【要出典】。

 

 

インストール

のどちらでも出来るようですが、私はIntellij IDEA(Community)でやりました。

 

  1. EduToolsプラグインをインストール
  2. IDEの再起動
  3. Beam Katasのコースをインストール
  4. (ここでも再起動が必要かも)
  5. Beam Katasのコースを開始

な流れ。

 

プラグインインストール

f:id:toukoudo:20200607111817p:plain

 

EduToolsインストール後は、「Learn and Teach」がWelcome画面に追加される。

f:id:toukoudo:20200607113204p:plain

 

Beam Katasの選択

 

f:id:toukoudo:20200607113250p:plain

 

Kataの開始

f:id:toukoudo:20200607114144p:plain

 

Katasコード

github.com

 

Githubに、

のコードが公開されています。

 

 

今日のPodcast: Software Engineering DailyでDruidの話

softwareengineeringdaily.com

 

概要

Druidのマネージドサービス(+α)を提供しているImplyJad Naousさん(R&D担当のVP)がゲストで、Apache Druidの話。

 

内容

    • Druidの概要説明。「Druid is kind of the open-source OLAP real-time data」で、時系列DB(Graphiteとか)と、データウェアハウス(BigQueryとか)の中間にあたるとのこと
    • Druidのアーキテクチャの説明
      • Kaka/Kinesisからリアルタイム、もしくはHDFS/S3からのバッチでデータを挿入
      • インデックスなどの最適化し、Deep Storage(S3/HDFS)に永続化
      • ローカルにデータを保持して、クエリからの問い合わせに対応するHistoricalワーカー
      • クエリを受け取って、Historicalワーカーに問い合わせ・結果のマージをするBroker
    • 他のデータウェアハウス(Redshift/Snowflake/BigQuery)、Prestoとの比較
    • DruidのユースケースAirbnbの例
    • Implyの話
      • Pivot クエリの実行や可視化

      • Clarity クエリのパフォーマンス監視

    • 歴史的な話
      • Druidはネット広告のために開発された(Metamarkets)
      • BIツールとの鶏と卵問題(ストレージが遅いとBIが意味ない、BIが無いとストレージが意味ない)

 

その他

 

Flask Web Development読んだ

 

shop.oreilly.com

O'reillyのSafariで読んだ二冊目の本。

Flask自体だけでなく、サーバーサイドの話が広く載っていて、Pythonやサーバーサイド開発始める時に読みたかったなーと思うような本でした。

 

 

  • jinja2によるテンプレート
  • SQLAlchemyによるDBアクセス
  • Blueprint

などのFlaskの基本的な機能に加え、

  • Flask-Bootstrapによる画面のおしゃれ化
  • Flask-Mailによるメール送信
  • Flask-WTFによるフォーム作成
  • マークダウン系(flask-pagedown, markdown, bleach)によるユーザ入力のリッチ化

などのFlaskの拡張機能を、ブログ投稿のサービスを作りながら学んでいきます。

Githubで公開されています)

github.com

 

 

また、プロダクション的な話として、

あたり付随的な機能も紹介されています。