IICSでGoogle Cloud Storageに接続してみる

IICSでGoogle Cloud Storageに接続してみる

Informatica Intelligent Cloud Services(IICS)のコネクタを使用して、Google Cloud Storage(GCS)に接続する。
Clock Icon2021.02.01 12:46

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

データアナリティクス事業本部、池田です。
Informatica Intelligent Cloud Services(以下IICS)からGoogleのストレージである Cloud Storage (以下GCS)の コネクタ を使ってみます。

GCP側の準備(サービス アカウントの作成)

ガイドのこの辺 を参考にGoogle Cloud Platform(GCP)の サービス アカウント を作成します。

作成後の画面で、IICSに設定するための鍵(JSONファイル)を追加・ダウンロードしておきます。

作成時に、 ロール には ストレージ管理者 を指定しました。
「IAMと管理」>「IAM」からロールの確認と変更ができます。

オブジェクトの閲覧と作成(今回はGCSからファイルを読んで、GCSに書き出します)の権限に加え、 storage.buckets.list 権限が必要になるので、今回は検証目的ということでストレージ管理者を付与しました。 実際の開発では、 カスタムロール を作成するなど、もう少し細かい管理をした方が良さそうです。

使用するGCSのファイル

使うバケットは、↓こんな感じです。

今回は BigQuery の一般公開データセット から出生データの natality サンプルテーブルをGCSへエクスポートして、 入力データとして使ってみます。

クリックでSQLを表示する/折りたたむ
EXPORT DATA OPTIONS(
  uri='gs://{バケット名}/input/natality-*.csv',
  format='CSV',
  header=true,
  field_delimiter=','
) AS
  SELECT
    source_year,
    year,
    month,
    day,
    wday,
    state,
    is_male,
    child_race,
    weight_pounds,
    plurality
  FROM `bigquery-public-data.samples.natality`;

input フォルダに 137,826,763 行のCSVデータが69ファイルに分割されて配置されています。
今回はIICSを使ってこのデータを Parquet形式 に変換して、同じバケット内の output フォルダに書き出してみます。

接続してみる

コネクタの有効化

「アドオンコネクタ」からコネクタを有効化します。

接続の作成

Google Cloud Storage V2 connection properties を参考に接続を作成します。

ランタイム環境Hosted Agent使用できる そうなので、それを使ってみます。
前章で作成した鍵のJSONファイルからそれぞれ、 Service Account IDclient_emailService Account Keyprivate_keyProject IDproject_id の値を設定します。

ちなみに、前章で触れた storage.buckets.list 権限が無いと、 接続のテスト時に↓のようなエラーになりました。 (次章のマッピングを作るところでも似たようなエラーになりました。)

動かしてみる

マッピングを使って処理をしてみます。

名前をつけます。


ソース側の設定をしていきます。ガイドは こちら

作成したGCSの接続を指定し、 オブジェクト からバケット上のファイルを指定します。 ただし、今回は単一のファイルではなく、フォルダ配下をまるっと読み込みたいので、 下部の詳細フォームの Is Directory を有効にします。

Is Directory については ガイドに説明 があり、要は「一度に子のフォルダまでは読まないよ」「全て同じレイアウトのファイルにしてね」って感じのようです。

「データのプレビュー」をすると、↓こんな感じ。


ターゲット側も設定します。ガイドは こちら

同様に、作成したGCSの接続を指定し設定します。

オブジェクト は「選択」ボタンから新規作成にしました。


保存して、実行してみます。

「マイジョブ」から結果を確認できます。

30分ちょっとかかりましたが成功しました! (所要時間は、今回ファイル数が多いことや、Hosted Agentを使用していることが影響しているかもしれません。)
「成功した行」の数も元のデータと一致しています。

↓想定のフォルダにParquetファイルに変換されて出力されていました。

(↑ ParquetViewer を使って中身を確認しています。)

おわりに

行数多めのデータで試してみましたが、無事GCSとやり取りができました。 ファイルの形式変換も設定だけでできたのは楽で良いですね。

参考文献

この記事をシェアする

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.