DWHの比較まとめ

# 特徴まとめ
|  |Redshift  |BigQuery  |Snowflake  |
|---|---|---|---|
|課金ポイント  |node type (ds2 / dc2 / RA3, avoid d*1 node types), number of nodes, reservations   |storage (~2 cents per GB / month for warm data, 1 cent per GB / month for colder data), bytes scanned (on demand), slots (fixed / flex) and streaming inserts  |the number of warehouses, the size of these warehouses and capacity storage  |
|適切な場面（一言）  | 1日に何百、何千回ものクエリを実行する |オンデマンドでクエリ処理。大量のデータマイニングを行うユーザーや、特定の日に処理アクティビティが急増する  |一定の実行時間を要するユーザーや、毎日何百、何千ものデータ量の多いクエリを実行  |

# 適切な場面
## Redshift
+ 1日に何百、何千回ものクエリを実行する能力
+ Best applied to scenarios that require constant computation for example
    + NASDAQ daily reporting: Time-sensitive workload for data reporting
    + Automated ad-bidding: Bids across certain ad networks are adjusted via predictive models on top of Redshift on a near real-time basis
    + Live dashboards: Having live data streaming with continuous querying via refreshing

## BigQuery
+ オンデマンドでクエリ処理
+ 1日に数回のジョブ
+ Best applied to scenarios with spiky workloads (i.e. you’re running lots of queries occasionally, with high idle time)
    + Recommendation models: That run once a day for ECommerce applications
    + Ad-hoc reporting: Occasion complex queries for a quarterly report
    + Sales intelligence: for sales or marketing teams to make ad-hoc discovery via analysing the data in any way they wish
    + Machine learning: to discover new patterns in the data especially consumer behaviour

## Snowflake
+ 一定の実行時間を要する処理や、毎日何百、何千ものデータ量の多いクエリを実行する処理
+ Best applied to steadier, more continuous usage pattern but requires constant upscaling & downscaling
    + Business Intelligence companies: Many concurrent users (100s to 1,000s) querying the data at the same time to discover a pattern in the data
    + Providing data as a service: Giving thousands of client access to your data for analysis purposes in the form of an analytics user interface or data APIs

まとめると、
+ BigQueryはidle時間があるが、たまに負荷が高い場面
+ Redshift/Snowflakeは実行すべきクエリがconstantにたくさんある場面

が良さそう。

# RedshiftとSnowflakeの違いは？
+ 基本的にはRedshiftのインスタンスはCompute/Storageが一緒になっている（ds2とdc2。RA3は分離できるらしい）のに対し、SnowflakeはCompute/Storageを分離して提供
    + Redshiftのリサイズ操作は、すぐに非常に高価になる可能性があり、大幅なダウンタイムにつながる可能性があります。Snowflakeでは、演算処理とストレージが分離されているため、スケールアップやスケールダウンのためにデータをコピーする必要はありません。データの演算能力を自由に切り替えることができます。 
    + Redshift: Elastic resizes generally complete quite quickly – around about the time it takes light to travel from Mars to Earth (3 minutes) with the caveat that you can only scale up or down by a factor of 2.
    + Snowflake: It’s fast to change between warehouse types (e.g., small (S) => medium (M)) which roughly correlate to the number of vCPUs / memory you are getting and cluster size manually if required. Scaling policies can adjust the number of clusters automagically according to running workloads in either standard or economy modes. It’s a particularly elegant implementation for a scaling mechanism.
+ Redshiftの方が手がかかる（ex 圧縮は自分でやらないといけない）のに対し、Snowflakeはほとんど自動化されている
+ PauseとResume
    + Redshifrt: At the moment there is no smart sleep / smart resume functionality based on workloads.
    + Snowflake: Pause, resume semantics (both manual and automated based on workload).
+ Security
    + Snowflake: Securityは選ぶオプション次第（場合によっては要件を満たせないこともあるかも）



# Redshiftを使って思った問題点
+ 計算能力とストレージを同時にスケールさせる必要がある。
    + スケールさせるには、高価なインスタンスが必要となってしまう。この点を解決するのは
    + MA3インスタンス
    + ストレージと計算能力を分離しているSnowflake
    + ストレージは無制限（課金はされる）のBigQuery

+ 極めて遅い時がある
処理能力が超えるとめちゃくちゃ遅い。

## その他
RedShiftは使用状況を確認できます。


# 参考
+ [Redshift vs. BigQuery 選択ガイド](https://www.xplenty.com/jp/blog/redshift-vs-bigquery-comprehensive-guide-ja/)
+ [Snowflake vs. BigQuery 選択ガイド](https://www.xplenty.com/jp/blog/snowflake-vs-bigquery-ja/)
+ [Redshift vs. Snowflake 選択ガイド](https://www.xplenty.com/jp/blog/redshift-vs-snowflake-ja/)
+ [Redshift vs BigQuery vs Snowflake: A comparison of the most popular data warehouse for data-driven digital transformation and data analytics within enterprises](https://medium.com/2359media/redshift-vs-bigquery-vs-snowflake-a-comparison-of-the-most-popular-data-warehouse-for-data-driven-cb1c10ac8555)
+ [Snowflake vs. Redshift: choosing a modern data warehouse](https://www.stitchdata.com/resources/snowflake-vs-redshift/)
+ [The 2020 database showdown: BigQuery vs Redshift vs Snowflake](https://poplindata.com/data-warehouses/2020-database-showdown-bigquery-vs-redshift-vs-snowflake/)
+ [Google BigQuery の知らない？世界](https://qiita.com/AK_qloud/items/9c5eefb7953409aa2eda)