IICSでGoogle Driveに接続してみる

Informatica Intelligent Cloud Services(IICS)のコネクタを使用して、 Google Drive(Google ドライブ)に接続する。
2020.12.22

本エントリはクラスメソッド インフォマティカ Advent Calendar 2020のエントリです。

データアナリティクス事業本部、池田です。 アドベントカレンダー22日目です!寒いわね…

数日前のアドベントカレンダー では、Informatica Intelligent Cloud Services(以下IICS)から Google スプレッドシート(以下スプレッドシート)に接続してみました。今回は、 Google Drive (Google ドライブ、以下Drive)の コネクタ を使ってみます。

スプレッドシートのコネクタ と似たような感じかと思っていたら、DriveのAPIを使っていろいろできるようです。 今回はファイルのダウンロードを試してみます。

Drive側の準備(リフレッシュトークンの取得)

この辺 やら この辺 を参考にする必要がありますが、 前回のスプレッドシートのブログ の流れでできますので、違いだけ紹介します。

スプレッドシートの時と違うのは2箇所で…

①初めにGCPコンソールで有効化するのが、DriveのAPI

認可コードを取得する時のURLで指定するスコープ scope= をDriveにする
例: https://accounts.google.com/o/oauth2/auth?access_type=offline&approval_prompt=auto&client_id={クライアントID}&response_type=code&scope=https://www.googleapis.com/auth/drive&redirect_uri={リダイレクトURI}
※例ではDrive全体の許可を取得しようとしていますが、絞ることができます。 → スコープについて

最終的に作成するのはリフレッシュトークンで、 その他にクライアントIDクライアントシークレットを次章で使います。

使用するDriveのファイル

使うのは、↓こんな感じです。

今回はダウンロードしてみるので、このファイルのIDが必要になります。 ファイル共有用のURLなどから取得できます。(フォルダのURLと間違わないよう注意。)

接続してみる

コネクタの有効化

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

接続の作成

Google Drive connection properties を参考に接続を作成します。

ランタイム環境 はSecure Agent環境が必要です。
今回はダウンロードを試すので、 File Download Path にSecure Agentのサーバ上の ディレクトリを指定しました。

動かしてみる

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

名前をつけます。


ソース側の設定をしていきます。
作成したDriveの接続を指定し、 オブジェクト で行いたい操作を指定します。 今回はダウンロードなので、「選択」ボタンから Files_Get を選択。

操作はいろいろ選べる のですが、この段階でプレビューできるものもいくつかありました。 例えば Files_List を選んで「データのプレビュー」を押すと、↓ファイルの一覧が取得できます。

IICSのガイドでは説明を見つけられなかったのですが、ここで指定できるオブジェクトは、 このGoogleのリファレンス に相当していると思われます。たぶん。

ダウンロードするファイルを指定するため、 同じ設定フォーム内の「クエリオプション」を使用します。

id フィールドに、ダウンロードしたいファイルのDrive上でのIDをフィルタとして設定します。

ここでIDを指定したファイルが、接続の作成時に指定した File Download Path にダウンロードされます。


Driveのコネクタでダウンロードしたファイルに加え、 ファイルのメタデータが出力されるので、ターゲット側も設定します。

今回はファイルに出力するので、「 フラットファイル 」 のコネクタを使っています。

オブジェクト は「選択」ボタンから新規作成にしました。
↓使った接続はこんな感じ。(この辺は エクセルのブログ で使ったもの。)

フラットファイルの方の接続で指定した ディレクトリ に、 ターゲットで設定したファイル名で、メタ情報が出力されます。


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

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

成功!

↓Secure Agentのサーバ上にDriveからダウンロードしたファイルと、 そのファイルのメタ情報がcsvで出力されていました。

コンソール(一部加工)

$ ls -la
total 56
drwxrwxr-x  2 infa infa  4096 Dec 21 23:03 .
drwxr-xr-x 10 infa infa  4096 Dec 18 10:05 ..
-rw-r--r--  1 infa infa   989 Dec 21 23:03 output_meta.csv
-rw-r--r--  1 infa infa    14 Dec 21 23:03 test.tsv
$ cat test.tsv
a       b       c
d       e       f
$ cat output_meta.csv
"kind","id","name","mimeType","starred","trashed","explicitlyTrashed","acknowledgeAbuse","parents","properties","appProperties","spaces","version","webContentLink","webViewLink","iconLink","hasThumbnail","thumbnailVersion","viewedByMe","viewedByMeTime","createdTime","modifiedTime","modifiedByMeTime","modifiedByMe","owners","lastModifyingUser_kind","lastModifyingUser_displayName","lastModifyingUser_me","lastModifyingUser_permissionId","lastModifyingUser_emailAddress","shared","ownedByMe","viewersCanCopyContent","writersCanShare","permissions","permissionIds","originalFilename","fullFileExtension","fileExtension","md5Checksum","size","quotaBytesUsed","headRevisionId","isAppAuthorized"
"drive#file","xxxx","test.tsv","text/tab-separated-values","null","null","null","false",,,,,"null","null","null","null","null","null","null","null","null","null","null","null",,,,,,,"null","null","null","null",,,"null","null","null","null","null","null","null","null"
$

おわりに

ガイドを見る限りダウンロードだけでなく、 アップロード(ファイル作成)や削除、権限変更などもできそうです。 Driveを上手く使えばデータファイルの配布などが楽になるかもしれませんね。

良いお年を!

参考文献