【GCP】Dataplexに対する簡単調査

### コンセプト
Dataplex（プレビューリリース）は、企業内のデータウェアハウス（DWH）、データレイク、データマート、データベースに分散しているデータの管理や分析を統合することができます。

### 何ができる
Dataplexでは、基盤となるデータソース（ストレージ）を抽象化して、Lake/Zone/Assesという抽象化された単位でデータの統合を可能にする。
少し具体的に説明すると、GCSとBigqueryのデータを一箇所（dataplex）にまとめて、データのガバナンス、管理、処理または探索を行う。
・データの保存先はそのまま（GCSのデータはGCSに、BigqueryのデータがBigqueryにある）
・GCSではBucket単位、Bigqueryではdataset単位
たとえば部門ごとにレイクを持ち、そのレイク内でデータ種別や使用方法に応じたゾーンを作成し、そこに個別データ＝アセットを格納するイメージだ。ポリシーはで一括適用できるため、データ管理者はセキュリティやガバナンスを維持しながら、データ分析者に自由なデータ利用を許可できる。

データ分析者から見ると、dataplexに集約されているデータをSQL（SparkSQL）またはjupyter notebookで探索できる。
※現時点探索ではzoneが制限されている：
``
asia-northeast1 location is not allowed for Dataplex Explore. [us-central1, europe-west2] are the list of allowed locations.
``
データ管理者側から見ると、データへのアクセス制御やデータライフサイクルポリシーを一元化できるほか、メタデータからデータの意味を知ることもできる。

### 用語
・Lake：データドメインまたはビジネスユニットを表す論理構造。たとえば、グループの使用状況に基づいてデータを整理するために、部門ごとにレイクを設定できます。
・Zone：レイク内のサブドメイン。ステージ、使い方、または制限ごとにデータを分類できる。ゾーンには、Raw zoneとCurated zone2つのタイプがあります。
　１，Raw zone：Rawデータそのまま（GCS上のファイルデータなど）、タイプチェックが厳しくない
　２，Curated zone：クリーンアップされ、フォーマットされ、分析の準備ができているデータ。データは、Parquet、Avro、Orcファイル、またはBigQueryテーブルの列型、Hiveパーティション化されています。たとえば、CSVファイルの使用を禁止するためにタイプチェックを受けます。これは、CSVファイルがSQLアクセスに対して十分に機能しないためです。
・Asset：アセットは、CloudStorageまたはBigQueryのいずれかに保存されているデータにマッピングされます。違うプロジェクトのデータをAssetとして同じZoneに集約できる。
・Entity：エンティティは、構造化データと半構造化データ（テーブル）および非構造化データ（ファイルセット）のメタデータ

### 例
・その一
下記の図のようなよくある組織のデータ構造：
![data-mesh.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2646301/5e9785f0-2260-aaf6-305a-16eff8aaf324.png)
セールス、顧客と商品三つの部門があり、部門ごとに違うデータを所有している（GCSまたはBigqueryに保存している）。
データサイエンティストがセールスと顧客のデータにより機械学習モデルを開発したい際に、dataplexのLake/zoneに必要なデータだけマウント、そしてnotebookを作成し開発作業を行う。
データアナリティクスも同じく、セールスと商品部門のデータが探索したい時は、dataplexに新しいLake/zoneを作成して必要なデータだけマウント、そしてSQLなどによりデータを確認する。
データ管理者の作業は、Lake/zoneの作成、必要なデータをAssetとしてマウント、利用者に対する権限付与です。上記はdataplex内で完結できる。

・その二
下記の図のようなよくあるワークフロー
![build-lakes.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2646301/568ef390-8785-53bb-c8c1-c41e7805747a.png)
データエンジニアがデータを処理して、その後、データサイエンティストやアナリストがデータを改良して利用できるようにする例です。 
この場合、エンジニアが処理するためのRaw zoneと、データサイエンティストやアナリストが探索用のCurated zoneを設定できる。

### 料金
Dataplex の料金は、次のような従量課金制の使用量に基づいて計算されます。
１，Dataplex の処理（Data Compute Unit DCU により従量制）には、Dataplex のデータ検出とデータ探索機能が含まれています。1 DCU は 1 vCPU と 4 GB の RAM に相当します。
| 項目 | DCU の料金（米ドル、DCU 1 時間あたり） |
|:-:|:-:|
|  Dataplex の処理料金 | 60 円  |

２，Dataplex Shuffle ストレージ（GB/月）は、Dataplex のデータ探索をサポートするディスク ストレージをカバーします。
| 項目 | シャッフル料金（米ドル、GB 単位/月） |
|:-:|:-:|
|  Dataplex シャッフル ストレージの料金 | 0.040 ドル  |

Dataplex 無料枠
| リソース | 1 か月あたりの無料使用量上限 |
|:-:|:-:|
| Dataplex の処理中	  | 100 DCU 時間  |
| Dataplex Shuffle ストレージ  | 1 DCU あたり 125 GB の Dataplex Shuffle ストレージ（または合計 17 GB 月の Dataplex Shuffle ストレージ）|

または、実際利用時に他のサービス（Bigquery、CloudSchedulerやDataflowなど）が別途料金発生する。

### 実際に利用した感想
１，使用前に基盤がある程度整っていること
データがGCP内にまとめていることが必要です。他のクラウドとの連携がまだいないのようです。
２，Zoneにマウントされているデータの検索がやや遅い
GCSにあるデータをZoneに追加した後、一定時間を待ってからdataplex内に反映される。
３，料金体制があまりわからない
Dataplex の処理の中、データ検出とはメタデータの検出費用？データ探索機能というのはSQL実行またはnotebookの料金？
Dataplex Shuffle ストレージは多分一つsessionの中にキャシューに保存されているデータの料金かな
４，Raw zoneとCurated zone
Raw zoneを設定されているはずなのにCSVデータが検出されたため探索ができなくなることが発生
いまいちの感想なんですが、メリットがあったが、機能の安定性がまだ足りないという状況ですね。