shobylogy

叩けシンプルの杖

S3に貯めてあるログデータを短い準備期間で分析可能な状態にする

S3に貯めているログデータを短い準備期間で分析可能な状態にする必要に迫られたため、AWSのサービスで実現する方法を検討しました。

基本的には、Amazon Athena、もしくはAmazon Redshift Spectrumを使い、S3上のファイルに対して直接クエリを打てる状態にするのが準備速度的にも好ましいと思われます。*1

今回は、主にそれらの二つのサービスの比較検討を行いました。

Amazon Athena

Amazon S3上のデータに対して、標準SQLでクエリを書くことができるサービスです。

aws.amazon.com

データの抽出、加工、読み込みはAmazon Glueを利用しており、CSVなどは簡単にテーブルにマッピングでき、サーバーレスで実行できます。*2

aws.amazon.com

料金はクエリ課金で、1 TB あたり 5 USDと格安です。

ただし、データのパーティションを適切に設定しないとフルスキャンになる上、S3のpathを /key=value/ 形式にしておかないと自動ではパーティションが設定できません。pathが規定のルールに則っていない場合、手動でpartitionを設定する必要があります。

aws.amazon.com

pathなどの制約はありつつも、サクッとS3のデータを分析したい場合は良い選択肢に入ると思います。

Amazon Redshift Spectrum

S3のデータをRedShift上に読み込み、PostgreSQL互換のクエリを書くことができるサービスです。

https://aws.amazon.com/jp/redshift/spectrum/aws.amazon.com

Athenaがサーバーレスなのに対して、こちらはRedShiftクラスターのインスタンスを立ち上げる必要があります。 こちらも1 TB あたり 5 USDのクエリ課金ですが、立ち上げたRedShiftクラスター分の費用は別途かかります。

aws.amazon.com

複雑なクエリに対しては、クラスター数を積めばAthenaよりも高速に処理できるのがメリットとなりそうです。

AthenaとRedshift Spectrumどちらを選ぶか

準備期間が短い分析案件の場合、Athenaを選択するのが良さそうです。 セットアップが容易なのに対して必要十分な機能が得られ、ResShiftクラスターの管理といった煩雑な作業をする必要がありません。

まとめ

S3に貯めてあるログデータを短い準備期間で分析可能な状態にする必要が生じた場合、 Amazon Athena、もしくはAmazon Redshift Spectrumを用いるのが良さそうです。

*1:なお、十分な準備期間がある場合は、RedShiftやBigQueryといったデータウェアハウスにS3のデータをimportする方法も選択肢に入ると思います。

*2:裏側はPrestoが使われているようです

スタートアップでの分析用ツール選定基準

今回は、スタートアップで分析用のツール導入を求められた場合の選定基準について、考えてみました。

スタートアップで分析業務にツールを使用する場合は、そのツールで問題解決が可能かどうか、費用対効果に見合うのかを考えた上で、そのツールが分析の専門家向けなのか、ビジネス上の意思決定のためか、2つの軸で考えると良さそうだと考えました。

概要

  • ツール選定の基本
  • 専門家向けツールか、ビジネス上の意思決定のためか
  • 専門家のためのツール
  • ビジネス上の意思決定ツール

ツール選定の基本

まず、そのツールが組織が抱える問題を解決できるか、費用対効果が見合うかを考え、試験導入した上で正式に決定しましょう。

ツールはあくまでも手段であるため、ツールの導入で組織が抱える問題を解決できるかを最初に考えましょう。 新しいツールを導入せず、現状使っている分析ツール(ExcelやSpreadSheetなど)で問題が解決できるのであれば、まずはそれで十分です。「なんとなく流行ってそうだから」といった理由でツールを導入するのはやめましょう。ツールは銀の弾丸ではありません。

また、ツールの導入にはコストが発生します。その費用対効果が導入コストに見合うかを考えましょう。

新しいツールを導入すると費用という実際のコストだけでなく、ツールを受け入れる側のチームメンバーの学習コストなど、目に見えないコストも発生します。それらも含めて費用対効果が見合うと判断できるのであれば、試用をして実際に問題が解決できるのかを試してみましょう。

実際にツールを導入するのはそれからでも遅くはないはずです。

専門家向けか、ビジネス上の意思決定のためか

分析ツールの導入の際は、そのツールが専門家向けのツールなのか、ビジネス上の意思決定のためのツールなのかは、はっきりさせておくと良いと思います。

専門家向けのツールは費用面、運用面でも高いコストを支払ってもよく、 ビジネス上の意思決定のためのツールは費用面、運用面でもリーズナブルである必要があります。

具体的に、求められることは以下のような違いがあります。

専門家向けツール

  • 高機能、多機能
  • 少人数しか使わない
  • 高価でもOK
  • 導入、管理コストは無視できる(専門家自身ができる範囲内)

ビジネス上の意思決定ツール

  • 必要十分な機能があれば良い
  • マーケターやディレクターなど、多くの人数が使う
  • 高価だと厳しい。アカウントが増えても問題ない料金体系が望ましい
  • 利用者は専門家ではないため、導入コストが無視できない
  • 利用者のサポートやツールの管理コストが無視できない

専門家向けの分析ツールは、専門家自身がきちんと活用でき、管理ができる範囲内であれば、ツール導入に高いコストを支払っても費用対効果が見合う場合が多いです。

対照的に、ビジネス上の意思決定のための分析ツールの場合、マーケターやディレクターなどの多くの人が使える必要があるため、必要十分な機能を誰でも使える状態で提供でき、導入コストが低く、維持管理にコストがかからないツールを選択するのが望ましいです。

専門家向けツール

高価なツールや、導入に手間がかかるツールでも、分析の専門家自身が管理できるのであれば何でも大丈夫です。 専門家のパフォーマンスが上がるのであれば、会社側としても支払いやすいと思います。

以下のようなツールが考えられます。

ビジネス上の意思決定ツール

基本的には、無料、もしくは安価なSaasを選択するのが良いと考えています。 スタートアップでは、ツールの管理のために人員を割り当てるのは難しいためです。 ただし、管理コストよりも導入によるメリットが大きい場合、OSSのツールも選択肢に入ります。

以下のようなツールが考えられます。

まとめ

スタートアップで分析ツールを導入する際は、そのツールで問題が解決可能かどうか、費用対効果が見合うかを考えましょう。 また、そのツールが専門家向けツールなのか、ビジネス上の意思決定ツールなのかを考えた上で選定すると、正しい意思決定がしやすいです。

分析業務でSQLを書くのに使っているツール

皆さんは分析業務でSQLを書く際には、どのようなツールを使っているでしょうか。

主に以下の2つのツールを使っています。

  • Sequel Pro
  • DataGrip

主にSequel Proはビューアとして、DataGripはエディタとして利用しています。

Sequel Pro

Sequel ProはオープンソースのMySQLのGUIクライアントです。

SQLを書かなくても特定テーブルのデータや、テーブル定義を閲覧することができるため、ビューアとして利用するのが便利です。

Sequel Pro

f:id:shoby:20180307224016p:plain

おおよそ以下のようなことができます。

  • 特定テーブルのデータの一部を閲覧
  • テーブル定義の閲覧
  • 特定カラムでの絞り込み
  • CSVでのデータのexport

DataGrip

DataGripはJetBrainsの提供しているSQL用のIDEです。

強力なコード補完とフォーマット機能により、高速にSQLを書くことができます。 あるとなしでは生産性が大きく変わるレベルです。

www.jetbrains.com

個人であれば年間$89、会社であれば年間$199で利用することができます。 30日間試用することができるため、ぜひ試してみましょう。

まとめ

私は分析業務でSQLを書く際、Sequel Proをビューア、DataGripをエディタとして利用しています。

他にもおすすめのツールがあればぜひご紹介ください。

BinanceのAPIとサードパーティのPython Library

アルトコインの取引所として有名なBinanceは、WebSocketとRESTのAPIを提供しており、板情報はWebSocket、注文はREST、というように使い分けることができる。

また、サードパーティのPyhon Libraryが存在するため、簡単にbotの開発を行うことができる。

BinanceのAPI

APIの仕様書はGitHub上で公開されており、確認することができる。

WebSocket

github.com

REST

github.com

BinanceのAPIにはRate limitによるIP BANと、機械学習によるbot検知BANが存在するため、高頻度に取引をする場合には板情報の取得はRESTではなくWebSocketを使うのがおすすめ。

github.com

https://support.binance.com/hc/en-us/articles/115003235691-Binance-API-Trading-Rules

サードパーティのPython Library

python-binanceというサードパーティのライブラリが存在する。

github.com

ドキュメントも充実している。

Welcome to python-binance v0.6.5 — python-binance 0.2.0 documentation

APIを使用する上での諸注意

BinanceのAPIはkeyを発行する際に、Read Info、 Enable Trading、Enable Withdrawalsという3段階の権限設定ができるため、必要最低限の権限を付与すると良い。

また、IPアドレスで制限をかけることもできるため、設定しておくのがおすすめ。

まとめ

BinanceはWebSocketとRESTのAPIを提供しており、板情報はWebSocket、注文はRESTという形で使い分けることができる。

python-binanceというサードパーティのライブラリが存在するため、簡単にbotの開発に入ることができる。

APIのkeyを発行する際は、必要最低限の権限を付与し、IPアドレスで制限をかけるのがおすすめ。

家事の効率化を目指す上での考え方

最近は家事の効率化に興味があります。

私がどのような考えで家事の効率化を行っているかをご紹介します。

なお、以下の内容は一人暮らしの方を想定しています。

概要

  • タスクを削減する
  • 大きなタスクを細かいタスクに分割する
  • タスクを並列処理する
  • タスクを外注する

タスクを削減する

まず、家事におけるタスクを減らすことを考えます。

機器を導入することによる自動化や、生活習慣の変更により、タスク自体を無くすことができる場合があります。

具体例としては、洗濯乾燥機の導入により、洗濯物干しというタスク自体を削減することや、 週刊誌や新聞の電子化により、ゴミ捨て自体を無くすことが考えられます。 また、捨てづらいペットボトルの飲料を買うのをやめ、捨てやすい紙パック飲料を飲むようにしたり、自分でお茶を入れて飲むようにすることも手段の一つです。

機器の導入の場合、その導入で1か月で何時間削減できるかを考えると、導入前にコストパフォーマンスを推定することができます。

大きなタスクを細かいタスクに分割する

大きなタスクはこなすのに高いモチベーションが必要になるため、放置されがちになります。 細かいタスクに分割し、達成難易度を下げることで、タスクを溜めずに済むようになります。

基本的に家事タスクは時間の経過に伴って状態が悪化するため*1、細かくこなしていくことで、タスクの肥大化と悪化も防げます。

具体例としては、ペットボトルのゴミ捨てです。 ペットボトルのゴミ捨ては、洗う、潰す、袋に入れる、ゴミ出し、という4つの細かいタスクに分割することができます。

これは、洗って潰して袋に入れる、ゴミ出しという細かい2つのタスクに分けることができます。 飲み終わった際に放置するのではなく、1本ずつ飲み終わるごとに洗って潰して袋に入れるところまでをタスクとし、ゴミ出し時は袋をそのまま持っていくだけにします。

このように、大きなモチベーションがなくてもタスクを完了できるようになります。

タスクを並列処理する

家事タスクは待ち時間を利用して並列処理をすることで、効率的にこなすことができるようになります。

具体的には、鍋を火にかけている待ち時間に、調理器具の洗い物を済ませるなどの、並列処理を行うことなどが考えられます。

待ち時間を効率的に活用し、並列処理をするためには、タスクの分割も必要不可欠です。

タスクを外注する

削減や効率化が難しいタスクは、家事代行サービスなどを利用して外注を検討します。

具体的には水周りなどの掃除です。 家事を部分的に外注することで、時間的にゆとりのある生活を送ることができるようになります。

まとめ

家事はそれぞれの仕事をタスクとして考えます。 タスクの削減や、分割や並列化を用いて効率化し、それも難しい場合は外注を検討します。

家事を効率的にこなして、ゆとりのある生活を手に入れましょう。

*1:洗い物、ゴミ捨て、掃除等

投資をする上で役に立った書籍などの情報ソース

投資をする上で役に立った書籍などの情報ソースを紹介します。

女子高生株塾

マンガでわかる株式投資! 女子高生株塾―一番売れている株の雑誌ZAiのNo.1人気連載が待望の単行本化!

マンガでわかる株式投資! 女子高生株塾―一番売れている株の雑誌ZAiのNo.1人気連載が待望の単行本化!

株、FX、世界経済がマンガでわかる!新女子高生株塾

株、FX、世界経済がマンガでわかる!新女子高生株塾

株とFXを中心とした投資に関する実用的な入門書です。

チャートの読み方に始まり、先物取引やFXのやり方、株式会社の仕組みや、国際情勢など、何度読み返しても新しい発見がある濃い本です。

システムトレード 基本と原則

システムトレード 基本と原則 (ウィザードブックシリーズ)

システムトレード 基本と原則 (ウィザードブックシリーズ)

  • 作者: ブレント・ペンフォールド,長尾慎太郎,山口雅裕
  • 出版社/メーカー: パンローリング
  • 発売日: 2011/07/15
  • メディア: 単行本
  • 購入: 3人 クリック: 14回
  • この商品を含むブログ (2件) を見る

中級者向けの本です。

システムトレードというタイトルですが、原題はThe Universal Principles of Successful Tradingと言うタイトルなので、システムトレードだけに関係しているわけではありません。

資産管理の方法や、仕掛け・手仕舞いの行い方、トレードを行う際の心理まで、網羅的に解説してくれている良書です。

金持ち父さん貧乏父さん

改訂版 金持ち父さん 貧乏父さん:アメリカの金持ちが教えてくれるお金の哲学 (単行本)

改訂版 金持ち父さん 貧乏父さん:アメリカの金持ちが教えてくれるお金の哲学 (単行本)

お金や投資に対する心構えを身につけられる本です。お金のために働く人生を抜け出すにはどうしたら良いかという話が書かれています。 この本自体に具体的な手法が書かれているわけではなく、著者の手法を真似てもうまくいくわけではないのでその点はご注意。

ウォール・ストリート・ジャーナル

jp.wsj.com

アメリカの経済新聞です。アメリカ視点が強いですが、世界経済に関するニュースや、仮想通過に関するトレンドまで、日本の新聞ではなかなか得られない情報が得られます。

The Economist Espresso

The Economist Espresso

The Economist Espresso

  • The Economist
  • ニュース
  • 無料

イギリスの経済誌Economistが出しているデイリーニュースアプリです。

アメリカ視点が強いウォール・ストリート・ジャーナルとは異なり、幅広く世界中のニュースを伝えてくれます。

風邪を引いた時にAmazon Prime Nowで頼める物

Amazon Prime Nowは風邪を引いた時に大変ありがたいサービスです。

今日はその中でも、特に風邪を引いた時にピッタリの物を紹介します。

飲み物

大塚製薬 ポカリスエット 1500ml×8本

大塚製薬 ポカリスエット 1500ml×8本

青森 完熟林檎つがる(ストレート) 1000ml

青森 完熟林檎つがる(ストレート) 1000ml

ポカリもAmazonで買えます。また、林檎ジュースはビタミンCの補給にもピッタリです。

食事

グリコ プッチンプリン 67g×3個パック 単品

グリコ プッチンプリン 67g×3個パック 単品

風邪を引いた時は、量が少なく、カロリーが摂取できるデザート系がおすすめです。

その他

熱さまシート 冷却シート 大人用 12枚

熱さまシート 冷却シート 大人用 12枚

エリエール 贅沢保湿 200組400枚×3箱入り パルプ100%

エリエール 贅沢保湿 200組400枚×3箱入り パルプ100%

家のティッシュが尽きた時も頼めて助かりました。

まとめ

Amazon Prime Nowを使って風邪を早く治しましょう。