GCPのBigdata周辺とApacheファミリーとの関連についてまとめ

##はじめに
先日 Data Engineering Google Cloud Platform というセミナーを受講して、Apache 関連のプロダクト名が沢山出てきたのですが、それぞれの関係や役割が理解しきれなかったので、まとめてみました。

##全体関連図
![Apachシリーズ](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/17662/d9d810ae-f5aa-3db7-bcc7-7335407311a3.jpeg)
---
##個々の関連状況
### Cloud Pub/Sub ↔︎ Apache Kafka
> ![Apachシリーズ①.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/17662/55a5cd1a-36fc-f8ab-8858-af41e3d3e0db.jpeg)

|**[Cloud Pub/Sub](https://cloud.google.com/pubsub/)**|
|:-------|
|送信者と受信者を切り離す多対多の非同期メッセージングで、メッセージ指向ミドルウェアの柔軟性と信頼性をを提供。ストリーム分析パイプラインの基盤ともなる。|
|**[Apache Kafka](https://kafka.apache.org/)**|
|オープンソースの分散メッセージングシステムで、スケーラビリティに優れた分散メッセージキュー。|

### Cloud Dataproc ↔︎ Apache Hadoop, Spark, Hive, Pig
> ![Apacheシリーズ②.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/17662/e9189f60-8500-e5a6-982b-e0541df18c70.jpeg)

|**[Cloud Dataproc](https://cloud.google.com/dataproc/)**|
|:-------|
|オープンソースのデータツール（Spark / Hadoop）を利用してバッチ処理、クエリ実行、ストリーミング、機械学習を大規模分散処理で実行するマネージドサービス。ComputeEngine インスタンス上で実行する仕組み（プリエンプティブVM可）オンプレのサービスをGCPにマイグレート色強い（インスタンスをマスター／ワーカーの台数を自身でインスタンスに設定）|
|**[Apache Hadoop](https://hadoop.apache.org)** |
|大規模データの分散処理を支えるオープンソースのソフトウェアフレームワーク。アプリケーションが数千ノードおよびペタバイト級のデータを処理することを可能としている。|
|**[Apache Spark](https://spark.apache.org)**|
|オープンソースのクラスタコンピューティングフレームワーク。暗黙のデータ並列性と耐故障性を備えたクラスタ全体をプログラミングできる。データをメモリに乗せて処理するから処理が高速（TB級までのデータに有効）。|
|**[Apache Hive](https://hive.apache.org)**|
|Hadoop 上で動作するソフトウェアで、SQLに似たデータ操作言語を用いてデータの集約・問い合わせ・分析を行う。パフォーマンスに優れる。|
|**[Apache Pig](https://pig.apache.org)**|
|Hadoop 上で動作するソフトウェアで、SQLに似た組み込み関数とユーザー定義関数を用いる。柔軟性があり複雑な処理も手軽に行える。|

### Cloud Dataflow, Dataprep ↔︎ Apache Beam
> ![Apachシリーズ③.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/17662/c1bbc00d-e0c9-66ce-8468-90750f388820.jpeg)

|**[Cloud Dataflow](https://cloud.google.com/dataflow/)**|
|:-------|
|Apache Beam の実行環境。ストリーム（リアルタイム）モード／バッチ（履歴）モードでデータを変換（ETL)する、フルマネージドなデータ処理パイプラインサービス。|
|**[Cloud Dataprep](https://cloud.google.com/dataprep/)**|
|プログラミング知識が無くてもほとんどクリック操作のみでデータ加工を行ったり、データの品質チェックができる。ジョブ実行に Dataflow が使われる。|
|**[Apache Beam](https://beam.apache.org)**|
|ETL、バッチ、ストリーム処理などのデータ処理パイプラインを定義および実行するためのオープンソースの統合プログラミングモデル。|

### Cloud Composer ↔︎ Apache Airflow
> ![Apacheシリーズ④ (1).jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/17662/a78d75d5-7d92-6179-9ae1-ce9c951b7624.jpeg)

|**[Cloud Composer](https://cloud.google.com/composer/)**|
|:-------|
|フルマネージド ワークフロー オーケストレーション サービス。Apache Airflow オープンソース プロジェクトを基に構築され、Python プログラミング言語を使用して運用される。|
|**[Apache Airflow](https://airflow.apache.org)**|
|ワークフローエンジン ツールの一種で、複数のタスクの実行順序を定義するワークフローの作成、実行のスケジューリング、監視などを行う。|

### BigQuery ↔︎ Apache Avro
> ![Apachシリーズ⑤.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/17662/31f5535b-b085-fdad-28ac-114218bb5cda.jpeg)

|**[BigQuery](https://cloud.google.com/bigquery/)**|
|:-------|
|サーバーレスでスケーラビリティに優れた企業向けのフルマネージドなデータウェアハウス。カラム型のマネージドストレージ。バッチやストリーミングのデータ収集機能、データ保存するストレージ機能、クエリーエンジンとしてのデータ分析機能をもつ。|
|**[Apache Avro](https://avro.apache.org/)**|
|システム間でデータ交換を行うためのオープンソースなデータフォーマット。データがバイナリエンコードされ、軽量で柔軟。|

### Cloud Datalab ↔︎ Jupyter Notebook
（Apache ファミリーではないですが…）
> ![Apacheシリーズ.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/17662/cb83f968-b4f7-9a49-326e-0c33a817ddcd.jpeg)

|**[Cloud Datalab](https://cloud.google.com/datalab/)**|
|:-------|
|インタラクティブなデータ分析ツール。Datalab に Jupyter Notebook、TensorFlow などが含まれる。|
|**[Jupyter Notebook](https://jupyter.org/)**|
|Webブラウザ上でプログラムを作成・実行し、コード、メモ、実験結果をひとまとめに記録できるツール。|
|**[TensorFlow](https://www.tensorflow.org/)**|
|TensorFlowとは、Googleが開発しオープンソースで公開している、機械学習に用いるためのソフトウェアライブラリ。|

---
抜け漏れ、間違い等ありましたらコメントよろしくお願いします。