はじめ
Googleドライブは、Googleが提供している無料オンラインストレージです。
文書ファイルや写真、音楽、動画など、様々なデータをネット上で「Google Drive」と呼ばれるストレージに保存することができる非常に便利なサービスです。
今回の記事は、XplentyによるGoogleドライブ上のテキストやCSV/TSV形式のファイルを用いて他のシステムへの連携方法を紹介します。
主な連携先はDestinationの対象になるファイルストレージやデータベースになります。
より便利に使うための応用も紹介します。
ファイル連携の準備事項
Googleドライブからファイルを連携には、準備が必要です。
まず、Googleドライブのコネクションの作成とそのコネクションのUnique IDや対象のGoogleドライブのドライブ IDを下記の図をご参考してご確認くだい。
指定のファイルをGoogleドライブから取得するためのクエリ文字列も、参考URLにて作ってURL Encodeの変換も済ませておいてください。
-
コネクションページにてコピー元であるGoogle Driveのコネクションを生成し、コネクションのUnique IDを取得
-
Google Driveのガイドにある<クエリ文字列の例>を参考して、Google APIと対象ファイル名が取得のクエリ文字列を合体してURLをURL Encoderにて変換しておく(下記の例をご参照ください)
## クエリ文字列の例
対象ドライブのIDの配下でファイル名にcontente_headが含まれてmimeTypeがCSV形式のファイルリストを取得
<Google APIのURL>
https://www.googleapis.com/drive/v3/files?q=<クエリ文字列>
<クエリ文字列>
name contains "head_content" and mimeType="text/csv" and "<---対象ドライブのID--->" in parents
<URL Encodeにて変換後のファイルリスト取得URL>
https://www.googleapis.com/drive/v3/files?q=name+contains+%22head_content%22+and+mimeType%3D%22text%2Fcsv%22+and+%22<---対象ドライブのID--->%22+in+parents
では、ここからXplentyを使ったファイル連携の本番です。下記の手順を順番に行えば、Googleドライブからファイル連携が出来ます。
ファイル連携の手順
ここでは、Googleドライブからテキスト形式のファイル(TXT,CSV,TSV)をファイルストレージやデータベースに連携する手順を説明します。
まず、Xplentyでお馴染みのPackage作成/編集画面から [+ Add Component] をクリックし、SourceからREST APIのアイコンを選択します。REST APIコンポーネントを開き、下記の図のように詳細内容を設定して該当するファイルが選択されているかご確認ください。
-
RestAPIコンポーネントからGoogle APIを使ってファイルリストを取得
authentication typeはConnectionを選び、Google Driveコネクションを指定してください。
Method and URLの設定は下記の通りです。- Method - GET に設定
- URL -
https://www.googleapis.com/drive/v3/files?q=name+contains+%22head_content%22+and+mimeType%3D%22text%2Fcsv%22+and+%22<---対象ドライブのID--->%22+in+parents
- Response - JSON と
$.files[*]
を設定
Google APIのURLとファイル選択のクエリ文字列で作ったURLと。Responseは、JSONで受け取ります。
Data Previewerで対象ファイルリストが正しいか確認してid
,name
のフィルドを選択
-
Filterコンポーネントで正規表現のマッチングにて、ファイルリストから連携対象のファイルIDとファイル名を選択
- Conditions :
AND
- Operator :
Text matches (regex)
- Value/Expression :
^100_.*$
- Conditions :
-
Selectコンポーネント上で
CCurl
コマンドを用いてGETメソッドによるファイル連携を行い、ファイルの中身であるbody部のみを取得
- Expression :
CCurl(CONCAT('https://www.googleapis.com/drive/v3/files/', id, '?alt=media'), 'GET', '', '', '<---GoogleドライブのUnique ID--->')#'body'
- 注意 : CCurlコマンドには、GoogleドライブコネクションのUnique IDを指定してください!!
- Alias :
api_response_body
- Expression :
-
body部には1本の文字列としてファイルの中身が返されるので、Selectコンポーネント上で関数を使って各々のレコードに分離
- Expression :
Flatten(STRSPLITTOBAG(api_response_body, '\n'))
- Alias :
line
- Expression :
-
Filterコンポーネントで正規表現のマッチングにて、レコードからヘッダーレコードを除去
- 削除するヘッダー :
seq,name/first,name/last,age,street,city,state,zip,dollar,pick,date
- Conditions :
NOT
- Value/Expression :
^seq.+$
- 削除するヘッダー :
簡単な応用
ファイル連携の前後関係がなく、Googleドライブからの複数ファイル連携を1本のパッケージで管理したい場合、このような応用が可能です。
-
Googleドライブから複数のファイルを同時に連携
下記の図のように取得したファイルリストに複数のCloneコンポーネントを繋ぐ毎で1つのパッケージ実行で同時に複数のファイルが連携出来ます。
-
複数箇所のGoogleドライブとのファイル連携
複数のGoogle Driveコネクションを用意すれば、1本のパッケージの中に複数箇所のGoogleドライブからファイル連携も可能です。イメージとしては、上記の複数ファイル連携が横にいくつかが並ぶ形になります。
パッケージテンプレートの利用時に
今まで説明した内容について、XplentyではDataFlowのテンプレートとしてすでに提供しております。
下記の図ようにパッケージ作成画面でTemplateからすぐ見つかります。
テンプレートの場合は、2つのユーザ変数の設定だけですぐ使えます。
- query_string : クエリ文字列を指定
- google_drive_connection_id : GoogleドライブコネクションのUnique IDを指定
終わりに
便利なGoogleドライブからファイル連携は、特にビズネス部署ではごく普通に行われています。
Xplentyはプログラミング経験がある方はもちろん、ビジネス部署でプログラミング経験がほとんど持っていない方々もすぐ慣れて使えるDX専門のローコードツールです。
ぜひ、Xplentyを使ってファイル連携のような簡単な業務から御社の自動化を自らの手で初めてみませんか?
弊社のホームページにて気軽にフリートライアルとデモ申請が出来ます。心からお待ちしております。