Google Drive上に保存したcsvファイルをOracle Analytics Cloudで可視化する

# 利用環境 #

BIサービス：Oracle Analytics Cloud
機能セット(Enterprise Analytics、またはSelf-Service Analytics) 、容量(２OCPU)



# Google Drive上に保存したcsvファイルをOracle Analytics Cloudで可視化する

Oracle Analytics Cloud では、様々なデータソースと接続して、データの可視化を行うことができます。Oracle Cloud上のリレーショナルデータベースや、ローカルPC上のExcelファイル、CSVファイルを読み込んで可視化することが多いとは思いますが、

Gsuiteを社内で導入しているなどの関係で、Google Driveを利用してデータソースの受け渡しを行うケースもあると思います。

今回は、Google Drive上に保存されたファイル(CSVやExcel形式）を直接、Oracle Analytics Cloudに取り込んで可視化する設定を試します



![001.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1513882/22962deb-c5b9-825f-75fd-f0425eee1ffd.jpeg)






# Google Drive接続の作成 - （前半）



まず、Oracle Analyticsの画面上で、 Google Driveとの接続を作成します。新規に接続を作成するには、ホーム画面右上の作成から行います。



**作成**⇒ **接続**⇒**Google Drive**

![002.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1513882/490853a5-e87a-dccd-130e-5aa0ee9599cd.png)





![003.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1513882/1ccf6dbe-fea9-eda2-78a4-4cc0780e435b.png)




Google Driveの接続定義画面が開きます。任意の接続名とともに、クライアントIDとクライアント・シークレットを入力して保存するだけですが、クライアントIDとクライアント・シークレットに関しては、Google側で、取得する必要があります。


![004.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1513882/13c513f3-1420-f660-1042-0842a2225a79.png)






# クライアントIDとクライアント・シークレットの取得



### ステップ１：プロジェクトの作成（選択）とGoogle Drive APIの有効化

まず、Google Cloud Platform(GCP)のコンソール画面（https://console.cloud.google.com/?hl=ja）
にアクセスします。
コンソール上部の検索画面で、”**APIとサービス**”を検索して、APIとサービスにアクセスします



![006.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1513882/2aaa7e16-788c-8406-2104-cd1619e29b24.png)




既存の任意のプロジェクトを選択、または、新規にプロジェクトを作成します。今回は新規にプロジェクトを作成します。


![007.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1513882/4f7fca74-9133-4c18-8bdd-c7fd0e9e49df.png)




**任意のプロジェクト名を入力**して、”**作成**”ボタンをクリックします。


![008.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1513882/d5f41d14-4e3a-0563-ccd4-afdee081ac79.png)


作成した、プロジェクトを選択します（プロジェクトの選択リストボックスから、作成したプロジェクトを選択して、開くをクリック）




![009.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1513882/a54a1a81-6fdd-d7dd-99c5-4eca736f789e.png)




ライブラリから、**Google Drive API**を検索して、クリックします


![010.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1513882/c3c33ba8-7527-6b9c-ae47-91f6bf4f985a.png)




”有効にする”をクリックし、Google Drive APIをこのプロジェクト内で、有効化します（**有効にする**をクリック）



![011.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1513882/67d63a4e-3bb1-e45d-4418-bbc77a064273.png)


### ステップ２：OAuth同意画面の構成



次に認証情報メニュからOAuth同意画面を構成します（**認証情報⇒同意画面を構成**）


![013.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1513882/5bd78f04-f9cf-3fe8-b601-35e010924312.png)




OAuth同意画面で、User Typeとして**外部**を指定し、作成をクリックします

![014.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1513882/1275445e-f7cf-7043-c16f-81bd068d0fbf.png)




任意の**アプリ名**、**ユーザーサポートメール**、**デベロッパーの連絡先情報**（メールアドレス）を指定したら、**保存して次へ**をクリックします


![015.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1513882/04205e04-8646-d7ae-eab7-d82d92a31429.png)


![016.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1513882/935e1c1b-820c-f8ec-3ae5-f4f9a2eb7758.png)



**スコープ**に関しては、今回は、特に何も指定せず、空欄のままで**保存して次へ**をクリックします。

**テストユーザー**に関しては、任意のGoogle アカウント（自分のGoogleメールアドレスなど）を指定して保存します。今回は、自分のGoogleメールアドレスだけを追加しました。

(※ここで指定したGoogleアカウントだけが、Oracle Analytics CloudのGoogle Drive接続定義を作成する際に、OAuth認証をクリアして、接続定義を保存することができるようになります。テストユーザーは複数指定することもできますが、 Google Drive上のファイルに対するアクセス権限にかかわる話なので、テストユーザの追加については慎重に検討してください。)

以上で、OAuth同意画面の構成は完了です。



### ステップ3：OAuth2.0クライアントIDの作成



**認証情報を作成**から、**OAuthクライアントID**を選択します


![019.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1513882/19464772-cdb0-97b1-edeb-4d8a69470f7f.png)




OAuthクライアントIDの作成画面で、下記の必須項目について指定します。

**アプリケーションの種類**：ウェブアプリケーション

**名前**：任意のクライアントIDの名前を指定します

**承認済みのリダイレクトURI**：Analytics CloudのGoogle Drive 接続定義画面で、表示されていた、リダイレクトURLをコピー＆ペースト


![020.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1513882/13e8ecaa-7eab-078b-3960-bf70490baf8b.png)


OAuthクライアントが作成されるとともに、クライアントIDと、クライアントシークレットが生成されます。この**クライアントIDと、クライアントシークレットは、Oracle Analytics CloudのGoogle Driveの接続定義画面で必要になるので、忘れずにコピーしておきます**。


![021.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1513882/c36ba075-1b79-2bd2-1bb5-d53442f308e6.png)


# Google Drive接続の作成 - （後半）



Oracle Analytics CloudのGoogle Drive接続定義画面に、**クライアントIDとクライアント・シークレットを入力の上、認可ボタンをクリックします**


![004-2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1513882/f0ea856b-3d23-f6cf-f21e-5bf14db4c09c.png)


GoogleのOAuth同意画面がポップアップしてきます。**テストユーザとして指定した。Googleアカウントを選択します**


![023.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1513882/49ba4c4f-43a8-9bf5-a004-8feaeeb89d8d.png)




**続行**ボタンをクリックします。

![024.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1513882/a7042701-edb6-dc93-b540-3267061b552f.png)


Googleドライブの操作権限に関する設定画面がポップアップするので、今回は、”**Googleドライブのすべてのファイルの表示・ダウンロードです**”だけにチェックして、続行します。

![025.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1513882/f13086d7-d395-eba6-9ca5-261a4c367396.png)



”**Google Driveの認証に成功しました**”と表示されたら、**OK**ボタンをクリックします。

![026.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1513882/c19b5f31-7b23-c1ca-7122-1e6c25d11563.png)




最後に、保存ボタンをクリックします。以上で、Google Driveとの接続定義は完了です。Google Driveに保存された、CSVファイル（またはExcelファイル(.xlsx)）を読み込む準備が整いました。


![027.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1513882/dac5fd61-3279-3a73-142e-1eb2a01c496d.png)


# 動作確認



Oracle Analytics Cloudの左側メニュから、**データ**⇒**接続**に移動すると、先ほど作成した、Google Driveとの接続定義（今回の場合はGoogle Drive Connectionという名前）を見つけることができます。

次に、”データセットの作成”をクリックします。

![030.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1513882/1a7d8040-7a24-1d47-e0fa-c9fd5b5a133f.png)


Google Driveのフォルダーやファイルが表示されるので、**任意のCSVファイル（今回は、国マスター.csv）を選択**し、**データセット名に任意の名前（今回は、”国”）を指定**の上、最後に**追加ボタンをクリック**します。


![031.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1513882/b9f28773-c588-2297-cb84-5318ed15c914.png)


Google Drive上のCSVファイルが、Oracle Analytics Cloudにデータセットとして取り込まれましたが、国IDやサブリージョンID、リージョンIDといった、数値項目の処理形式（データ・タイプ）が、メジャーとして自動的に定義されてしまっています。こういった場合には、手動で編集する必要があります。

![032.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1513882/260306c3-5194-ccdf-9fea-16d8af60a241.png)


国IDのヘッダーをクリックして、処理形式（データ・タイプ）をメジャーから**属性に変更**します

![033.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1513882/923cf854-1336-4e4f-8806-f3c7723eb630.png)


同じ要領で、他の項目についても、適切に修正してあげます。

![035.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1513882/0ba4ccc2-7be0-6eea-edec-efa79d6c0c22.png)



以上で、データを可視化する準備ができたので、”**ワークブックの作成**”をクリックします

![036.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1513882/a2c3c8e0-ea90-990f-4488-34b19464f1ab.png)


データのビジュアル化画面が表示されます。画面左側に、データセットの項目が一覧表示されています。

![037.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1513882/67fd8668-0d5a-1f3a-c62d-cd8c360da3d7.png)




任意の項目をキャンバスにドラグ＆ドロップします。コントローrキーを押しながら、複数の項目をまとめて選択してキャンバスにドラグ＆ドロップすることも出来ます。

![038.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1513882/ba936fbb-8149-12fd-474b-542996c280e2.png)




キャンバスに、Google Driveから取り込んだ、CSVファイルのデータを表示することができました。


![039.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1513882/20683297-0b47-0a8e-e11b-0b4f5a2754ae.png)




# 補足

Google Driveから取り込んだCSVファイルのデータはOracle Analytics Cloud上にデータセットとして保存されています。Google Drive上のCSVファイル内のデータが更新された際に、データセットにも反映されて欲しいというニーズがあると思います。

Google Drive側でのファイル更新をトリガーにして、反映することは難しいですが、データセットのリロードやスケジュール機能を活用することで、データセットに反映することが可能です。

データセットの右側のメニューをクリックするとデータのリロードと、新規スケジュールのメニュがあります。

![040.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1513882/fc9fb775-f2d4-c711-9fa2-709d12480808.png)




”**データのリロード**”をクリックすると、処理がバックグラウンドで行われ、Google Drive上に保存されたCSVファイルと同期が行われ、データセットの内容を最新化することが可能です


![041.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1513882/afaea37d-faf8-6f5d-8ee1-29743c60c211.jpeg)

![042.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1513882/81b7263e-05bc-5b93-a402-d167892b3061.jpeg)



また、”**新規スケジュール**”をクリックすると、スケジュール設定画面が表示されます。ここで、リロード処理のスケジュール設定を行うことが可能です。設定期間、繰り返し間隔（繰り返し無し、時間、日、週、月、年）、リロード処理の実行時刻を指定すると、そのタイミングでGoogle Driveのファイルがデータセットにリロードされ、データの内容を最新化することが可能です。

※実行時刻は、UTC表記になっているので、JSTと9時間ずれがある点を考慮してください。


![044.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1513882/99d5c723-91c5-ded9-d17f-aa2e20c064ef.jpeg)




# まとめ

- Oracle Analytics Cloudでは、Google Driveのファイルをデータセットとして取り込んで、データの可視化に利用することができる
- リロードを行うことで、Google Driveとデータセット間の同期を行うことができる。スケジューリング設定することで、リロード処理をスケジューリング実行することもできる
- 参考ドキュメント：[Connect to Google Drive or Google Analytics (oracle.com)](https://docs.oracle.com/en/cloud/paas/analytics-cloud/acsds/connect-google-drive-or-google-analytics.html#GUID-4CE2C3B9-2B04-484C-8389-2487A978816D)