views4GCPのストレージサービスについてまとめてみた。Exp:2617はじめまして!今、パブリッククラウドを使っていない方にも、分かりやすくGCPを身近に感じられる記事を書いて行こうと思います。Next’19では、さまざまな新サービスや既存サービスの強化が発表されました。まとめられていますので、是非一度ご覧ください。Fusionについてご紹介します。Fusionを一言で表すと、GUIからノンプログラミングでデータパイプラインが構築可能な、グラフィカルETLツールという感じでしょうか。2018年に新たにGoogleグループの一員に加わった、CaskData社のETLツール『CDAP』をベースに、GCPのマネージメントサービスとして提供されます。現時点ではベータのサービスです。Servista』、Talend社様の『Talend』などのツールと近い印象を受けるツールですので、これらのツールをご存知の方はイメージを掴んで頂けると思います。Fusionのパイプラインエディタ画面スクリーンショットがこちらです。グリッドの上に、コンポーネントを配置して、コンポーネントを処理順に矢印で結ぶタイプの、ノンプログラミングツールでよくあるタイプのGUIですね。UIも洗練されている印象で、ノンプログラミングツールの特徴である、キャッチアップコストの低さ、(比較的シンプルな構成における)生産性の高さ、運用チームとの連携のやりやすさなど期待できそう。第一印象はかなり良さそうです。Fusionにどんな機能があるのか、概要を探っていきましょう。パイプラインエディタを起動して、コンポーネント一覧を開いてみます。コンポーネントSourceタブの中には、パイプラインのデータソースとして使用可能なコンポーネントが一覧表示されています。GCPサービスだと、下記のデータソースがリストアップされています。Spannerにも対応しているのが、頼もしいですね。S3また、GCPサービス以外にも外部FTPやSFTPサーバーに接続するコンポーネントや、AWSのS3に接続するコンポーネントもあります。GCP以外で動いているシステムから、分析に必要なデータを取得するのも、低コストで実装できそうですね。コンポーネント次にSinkタブを見てみます。Sinkタブの中には、パイプラインの処理結果セットの書き込み先として使用可能なストレージ系のコンポーネントが一覧表示されています。GCPサービスだと、下記のストレージがリストアップされています。Pub/Sub必要なストレージはほぼ網羅されていますね。面白いのはBigQueryのMultitableコンポーネントです。このコンポーネントは、データに含まれる特定のフィールドをテーブル名として扱い、一つのデータから複数テーブルに書き込むコンポーネントです。書き込み先を日付別のテーブルにシャーディングしたい場合でも、コンポーネント一つで対応できそうですね。S3などGCP以外への接続に対応しています。コンポーネント次はTransformタブです。データ入力のSourceコンポーネントと、データ出力のSinkコンポーネントの間を繋ぐのが、データ変換のTransformコンポーネントです。Transformタブはコンポーネントが多く、データ変換に必要な様々な種類のコンポーネントが一覧表示されています。SHA512)などの、よく利用する暗号化やハッシュ化、データ圧縮のコンポーネント。フィールドがNULLかどうかでデータを分割するフィールドの型でデータを分割するなどの、データ分割のコンポーネントなど、多数のコンポーネントがあります。変わったコンポーネントとして、JavaScriptを直接コンポーネント内に記述して、データを変換をプログラミングできるJavaScriptコンポーネントもあります。このコンポーネントの使いどころは、複雑な変換ロジックへの対応でしょうか。一般的な話として、このようなノンプログラミングツールは、変換ルールに複雑なロジックが含まれる場合、コンポーネント数とコネクタが増え、接続が複雑化してしまう事があります。Fusionでは対応可能です。データ変換をすべてコードで記述した方が良いレベルであれば、CloudDataflowなど、プログラミングを前提としたツールの方がマッチする可能性もあります。Fusionではパイプライン構築に使える多数のコンポーネントを標準装備しています。これらを組み合わせて、データパイプラインを組み立てていきます。クイックスタート全体的な概要が掴めたところで、公式ドキュメントのクイックスタートをなぞりながら、パイプライン構築の流れを確認してみましょう。上記ドキュメントにも記載がありますが、試す場合は新規にGCPプロジェクトを作成して頂くことをおすすめいたします。Dataprocリソースなど、多くのリソースが作成されるため、新規プロジェクトでお試し頂いた方が、完了後のクリーンナップが非常に楽です。それでは試していきましょう。Fusionの有効化とインスタンスの作成を行います。APIを有効にします。『メインメニュー→APIとサービス』から『APIとサービス』画面を開き『+APIとサービスを有効化』をクリックし、APIライブラリを表示します。Fusion」を入力し検索します。API』の画面で『有効にする』ボタンを押下して、APIを有効化します。API有効化には数分かかります。完了までお待ちください。Fusionのインスタンスを作成します。Instance』をクリックし、インスタンス詳細画面で、インスタンス名など必要なパラメータを入力します。『Edition』は無料枠のあるBasicを選択しました。インスタンスの作成には非常に時間がかかります。ドキュメントでは最大20分との記載があります。スクリーンショット撮影時は13分ほどかかりました。インスタンス作成完了までのんびりとお待ちください。記事執筆時点では、日本国内のリージョンはまだ選択できません。(アジアではシンガポールと台湾)本記事では『us-central1(オレゴン)』リージョンを選択しました。完了するとグリーンのチェックマークが表示されます。FusionのGUIを開く前に、作成したインスタンスのサービスアカウントに、IAM役割を付与する必要があります。インスタンスの詳細画面からサービスアカウントの情報を確認し、『IAMと管理→IAM』で、役割を付与します。APIサービスエージェント』です。Fusionの管理コンソールGUIを開きます。Fusionの一覧画面から、リンクをクリックしてください。最初にGoogleアカウントでの認証が入ります。このような管理コンソールが表示されれば完了です。Tour』をクリックすると、画面の概要をごく簡単にガイダンスしてくれますので活用しましょう。サンプルパイプラインをデプロイする標準で用意されているサンプルパイプラインをデプロイし、実行してみましょう。サンプルパイプラインは『HUB』内から読み込みする事ができます。下記の手順で行います。pipeline』ボタンをクリックする手順を完了すると、パイプラインエディタでサンプルパイプラインが表示されます。画面左側には、前のセクションで説明した、コンポーネント一覧が表示されています。パイプラインの実行には、パイプラインのデプロイが必要です。画面右上の『Deploy』ボタンを押下します。パイプラインを実行するパイプラインのデプロイが完了すると、画面が遷移します。それではパイプラインを実行してみましょう。『Run』ボタンを押下してください。ステータス表示が『Deployed』に変わり、ジョブ実行が開始されます。実行中のログは『Logs』ボタンからリアルタイムに確認可能です。Dataprocのジョブとして実行されます。Dataprocクラスタが作成され、ジョブが実行されます。Dataprocクラスタにより、GCE上にワーカーノードが作成されています。パイプラインの実行が完了すると、処理ステータスが『Succeeded』に変わります。Dataprocのクラスタも、自動的に削除されました。パイプラインの結果を表示する処理結果を確認してみましょう。『BigQuery』のメニューからBigQueryの管理コンソールに遷移し、集計結果のデータセット『GCPQuickStart』をプレビューしてみます。集計結果が表示されました。up』の項目を参考に、作成されたリソースを削除します。Fusionの機能概要を確認してきました。ノンプログラミングで、GCP内外のサービスと連携したデータパイプラインが構築できる事や、洗練されたGUIによる分かり易い操作は、まだベータのサービスながら将来性が大変楽しみです。課金は分単位での計算なので、定期的にバッチ実行するような大容量データの処理だけでなく、ワンショットのデータ処理にも使えそうです。今回のサンフランシスコNext’19では、他にもデータアナリティクス関連の新サービスや機能強化が多数発表されており、相互にシナジーが発揮できそうなものばかりです。今後もGCPのデータ処理関連プロダクトに大注目ですね。