【GCP】Cloud Data Fusion で Wrangler を柔軟に使い倒す

本記事は 夏休みクラウド自由研究 8/6付の記事です

こんにちは。SCSKの山口です。

最近、Google CloudのData Fusionでパイプラインを構築する機会が多くあり、その中でも「Wrangler」のプライグインを多く使用したので、その際に便利だった機能をご紹介します。

※本ブログではData Fusionパイプラインの基本的な構築方法については言及していませんので、構築方法等については下記をご参照ください。

Cloud Data Fusion のドキュメント  |  Cloud Data Fusion Documentation  |  Google Cloud
Google Cloud Platform でデータ パイプラインのビルドと管理を行うための、CDAP を基に構築されたフルマネージド サービス。

Cloud Data Fusion

概要

まずData Fusionについて簡単にご説明します。

Data Fusionは、データパイプラインを素早く構築、管理できる、クラウドネイティブのフルマネージドサービスです。

フルマネージドサービスなので、インフラの管理なしでパイプラインを構築することが可能です。

そして、何よりマウスだけで視覚的にパイプラインを構築することが可能なため、直感的な操作で、コードを意識することなくETLパイプラインをデプロイすることができる点が長所です。

Cloud Data Fusion | Google Cloud
Cloud Data Fusion は、ETL および ELT のデータ パイプラインを効率的に構築して管理できる、フルマネージドでコードを意識させないデータ統合サービスです。

利用できるプライグイン

プラグインとは、Data Fusionの機能を拡張するために使用できるカスタマイズ可能なモジュールのことです。

下記の種別のプラグインが用意されています。

  • ソース
  • 変換
  • 集計
  • シンク
  • エラーコレクタ
  • アラートパブリッシャー
  • アクション

かなり数があり、一つひとつ説明すると膨大な文量になるので詳細は下記ドキュメントをご覧ください。

Cloud Data Fusion のプラグイン リファレンス | Google Cloud
お客様がデジタル トランスフォーメーションに乗り出したばかりでも、あるいはすでに進めている場合でも、Google Cloud は困難な課題の解決を支援します。

 

実践:WrangerプラグインでGCSのファイルを加工してBigQueryテーブルに取り込む

実現したいこと

今回実現したいことは以下の内容です。

  • 下記「member」テーブルに、氏名と電話番号(ハイフンなし)のデータをロードします。

  • データのインポート元はGCSファイルに置いているCSVファイルです。

  • 「member」テーブルの電話番号カラムにはハイフンなしの番号(最大長:11)をロードしたいですが、GCS内のCSVファイルにはハイフンが含まれています。

  • GCSからCSVファイルをBigQueryテーブルにインポートする際に、「電話番号」カラムのハイフンを取り除きたいです。
  • これを、Data Fusion(Wrangerプラグイン)で実現します。

パイプライン構築

では早速パイプラインを構築していきます。

Source

今回はデータソースとして「GCS」プラグインを選択します。

左ペインから「GCS」を選択し、パイプライン構築画面に表示されたGCSアイコンから「Properties」を設定します。

今回は、インポート対象のCSVファイルを「BROWSE」より検索し、選択します。

Transform

今回は変換のプラグインとして「Wrangler」プラグインを使用します。(本ブログのメイン)

propertyを開き「Directives」の「WRANGLE」ボタンを押下します。

今回のソースファイルを選択します。

インポートしたいファイルが表示されたら準備OKです。

 

さて、今回やりたいことをおさらいします。

やりたいことは、「telephone_number」カラム内のハイフンを取り除くことです。

この作業を実際にWRANGLE画面でやってみます。

対象カラム「telephone_number」の横のプルダウンを開き。「Find and replace」を選択します。

下記を入力します。

  • Find:-(ハイフン)
  • Replace with:(何も入力しない)

Replace Allを押下すると、ハイフンが削除されていることがわかります。

ここまでは何の驚きもないかもしれませんが、画面右ペインの「Transformation steps」をクリックすると、先ほどやった作業のレシピを記述してくれています。

さらに、右上の「Apply」ボタンを押下すると、

「Directives」の「Recipe」に先ほどの内容を記述してくれています。

つまり、実際のデータを見ながら手で作業した内容を自動的にレシピに反映してくれている。というわけです。

レシピに直接コードを入力することなく、やりたい変換処理を実際に行うだけで自動的に記述してくれる大変便利な機能です。

Sink

さあ仕上げです。データの最終的な出力先(sink)に「BigQuery」プラグインを選択し、宛先テーブルを指定します。

以上でパイプライン構築は完了です。

豆知識

プラグインをつなげていくと、矢印がジグザグになったりと画面が煩雑になることがあります。

このような場合は、プラグインを全選択し、画面右ペインの「Align」をクリックすると、プラグインを綺麗に整列してくれます。

以上、A型の筆者からの豆知識でした。

パイプライン デプロイ・起動

パイプラインをデプロイし、起動(Run)します。

パイプラインは無事成功しました。最後に出力先のテーブルを確認します。

電話番号のカラムにハイフンなしのデータが取り込まれています。大成功です。

 

まとめ

今回はData FusionでWranglerプラグインを活用してパイプラインを構築しました。

最初にも述べた通り、Data Fusionを使用するメリットの一つは、視覚的・直感的な操作でパイプラインが構築できる点です。

今回紹介したWranglerプラグインの使い方は、そのメリットを最大限活用したものだと思います。

また、Wranglerプラグインでは正規表現を使用した変換等も可能なので、柔軟なデータ加工が可能です。

皆さんも是非ご活用ください。

著者について

Google Cloud歴2年目です。
日々捌ききれないほどのインプットを浴びているので、本ブログをアウトプットの場として活用しています。
-----
保有資格:応用情報技術者、Google Cloud 認定資格全冠(11冠)
好きな(よく触っている)サービス:BigQuery、Cloud Functions、Data Fusion

山口翔平をフォローする

クラウドに強いによるエンジニアブログです。

SCSKクラウドサービス(Google Cloud)は、Google Cloudの多彩なAIや各種サービスを活用したワンストップソリューションを提供します。SCSKのノウハウや体制を有効活用し、業務課題の解決に必要な全体検討と組み合わせで、最適な業務実装まで支援します。

Google Cloudデータ分析・活用基盤
シェアする
タイトルとURLをコピーしました