views4GCPのストレージサービスについてまとめてみた。GolangTweetShareHatena注意この記事は2018年6月4日に更新されたもので、内容が古い可能性がありますのでご注意ください。Load)を使うことが多く、これらを使ったことが無い人にとっては敷居が高く感じられるかもしれません。Dataprep(以下、Dataprep)を使うと、プログラミング知識が無くてもほとんどクリック操作のみでデータ加工を行ったり、データの品質チェックができます。データ加工の経験が豊富な人にとってもDataprepは複雑な加工が簡単にできるため大きなメリットがあります。本記事は前編と後編で分かれています。前編ではDataprepがどのようなサービスかを紹介します。次にデモとしてサンプルデータをDataprepにインポートしてコンソールに表示した後、コンソールの見方を解説します。後編では、インポートしたデータを加工して保存し、Datastudioでグラフ化するまでの流れを一通り解説します。Dataprepは2018年06月現在beta版となっているため、仕様が変更される可能性があります。Dataprepとはデータの前処理やクレンジングを行うための、Googleのマネージドサービスです。インフラ周りはGoogleが全て管理するためユーザーはインフラの管理をする必要が無く、データ加工の処理定義のみに専念することができます。Platformのサービスの一つであるため他のGCPサービスと簡単に連携ができます。StorageやBigQuery(※)に保存されているデータを加工したり、加工したデータを保存することができます。Management(IAM)による権限管理も可能です。Platformのサービスの1つで、オブジェクトストレージ機能を提供するSaaSのサービスです。Platformのサービスの1つで、ビッグデータの保存と分析基盤を提供するSaaSのサービスです。Dataprepと他のデータ加工サービスの違い一般的なデータ加工ツールとDataprepの違いは何でしょうか?主な違いは3つあります。インポートしたデータを自動で分析してくれるDataprepでデータをインポートすると自動で型を検出をして欠損値(データが入っていないセル)やエラー値を判定してくれます。カラム(列)ごとにデータの分布がヒストグラムで表示されるので、データのおおまかな内容を把握することができます。これはデータの品質チェックに非常に役立ちます。コードを書く必要が無く、自動で加工内容を提案してくれる通常データ加工ロジックを作る際、必要になるのがコーディングです。JavaやSQLなど、プラットフォームによって言語は様々ですが、データの加工方法を定義したコードを書く必要があります。Dataprepの場合、GUIコンソールから直感的なクリック操作をするだけでDataprepが最適な加工内容を提案してくれます。自分で好きなように加工することもできます。変更前にプレビューを表示してくれる通常加工後のデータがどう変換されるかは加工前にはわからず、実際にジョブを動かしてみないとわかりません。Dataprepではデータを加工する前に加工後のデータがどのようになるかをプレビュー表示してくれますので、安心してデータ加工を行うことができます。Dataprepの足りないところここまでDataprepのメリットを紹介してきましたが、Dataprepが万能というわけではありません。2018年6月現在Dataprepができないこととしては、ストリーミングデータの加工Dataprepでストリーミング(リアルタイム)データの加工を行うことはできません。Dataprepは既にファイルやテーブルとして存在するデータのみを加工することができ、ログデータなど常に増え続けるデータに対して加工を行うことはできません。プログラムからの実行Dataprepジョブの実行はブラウザのDataprepコンソールからのみ可能です。DataprepはAPIやクライアントライブラリを提供していないため、外部からプログラムを使用して定期的にジョブを動かすといったことはできません。Dataflowが選択肢の一つになります。ちなみにDataprepではジョブの実行にDataflowが使われます。Dataflowについてはこちらの記事もご参照ください。試してみるDataprepの価格Dataprepは(Dataprepユニットの数)×(ジョブ実行時間)によって課金されます。Dataprepユニットの数はジョブの負荷によって自動スケールします。Storageのデータを使う場合、それらのサービスの利用料金が別途必要になります。Dataprepを実際に使ってみるでは、Dataprepで実際にどうデータを扱うかを簡単に解説したいと思います。今回はBigQueryのパブリックデータ(1969~2008年の米国の出生データ)をインポートしてデータをコンソールに表示してみたいと思います。ブラウザとデータだけがあれば簡単に試すことができるので、ご自分でデータを用意していただくことも可能です。データをブラウザ上で表示するだけであれば料金は掛かりません。フローを作成するDataprepでデータを表示するにはまずフローを作成し、その中でデータセットをインポートし、データ加工の順序と方法を記したレシピを作成します。最初にフローを作成します。Nameを入力しCreateボタンをクリックフローが作成されます。データセットのインポートDataprepはデータのインポート先として3つのソースに対応しています。Storageバケットに保存しているファイルを使用できます。Avro等に対応しています。BigQueryプロジェクト上にあるテーブル、またはBigQueryのパブリックデータ等を使用することができます。ローカルファイルローカルPCからDataprepに直接ファイルをアップロードできます。Storageと一緒です。今回はBigQueryのパブリックデータを使用します。Flowボタンをクリックデータセットが追加されました。レシピの作成レシピとはレシピとは料理のそれと同じように、データを加工(料理)する手順を定義したものです。Dataprepのコンソールでテーブルを操作する度に、操作内容が自動でレシピに追加されていきます。レシピは完成後、ジョブを実行する際に使用されます。Recipeをクリックレシピが追加されました。Recipeをクリック編集画面が表示されます。編集画面ではインポートしたデータを見たり編集することができます。編集画面の見方は下図の通りです。それぞれの番号に対応した部分について解説します。データ型Dataprepが検出した型がアイコンで表示されています。マウスオーバーすると型名が確認できます。他の型に変えるにはアイコンをクリックして表示されるポップアップメニューから変更したい型を選択します。図のアイコンはInteger型を表しています。メニューボタンカラムに対して行える操作をポップアップメニューに表示します。データ分布図カラムごとのデータ分布をグラフ表示します。範囲を選択すると、カラムにその範囲内のデータが含まれている行だけを残し、ほかは全て削除する等の操作をDataprepが提案します。正常値と欠損値(null値)とエラー値の割合を表示しています。黒いバーは欠損値、赤いバーはエラー値を表します。黒いバーをクリックすると、カラムに欠損値が含まれている行を全て削除するなどの操作をDataprepが提案します。ここまでで、BigQueryのパブリックデータにある米国の出生データをDataprepにインポートしてコンソール上に表示することができました。これでデータを自分の好きなように加工するための準備ができました。まとめいかがでしたでしょうか。今回はデータをインポートしてコンソールに表示するまでを解説しました。流れを解説したいと思います。Dataprepによるデータ加工は簡単で非常に効率が良いので是非後編もご覧ください。最後に、弊社ではGCPのコンサルティングから導入・運用支援サービスを提供しておりますので、ご興味のある方はこちらからお問い合わせください。