GCP

GCSとBigQueryで連動するプログラムを作成してみた(2)

今回も引き続き、GCSとBigQueryで連動するプログラムについて述べる。ここでは、Windows 10が入っているローカル環境にて、Python 2.7・Java 1.8両方の場合で共通で実施した環境構築手順について述べる。

前提条件

GCP(Google Cloud Platform)のアカウントは作成済であること。作成手順は、下記サイトを参照のこと。

GCP(Google Cloud Platform)のアカウントを作成してみたGCP(Google Cloud Platform)とは、Google社が提供する、企業や個人など不特定多数のユーザに対し、インターネッ...

やってみたこと

  1. Python 2.7のインストール
  2. Python 2.7のパス設定
  3. Google SDKのインストール
  4. サービスアカウントキーの設定
  5. BigQueryへのテーブル作成

 

Python 2.7のインストール

GCSとBigQueryで連動するプログラムを作成するには、Google SDKのインストールが必要であるが、Google SDKが動作するにはPython2.7が必要になるので、ここでインストールする。

1) 以下のサイトにアクセス
https://www.python.org/downloads/windows/

2) 上記サイトから、下記Python 2.7のリンクを押下
Pythonのインストール2

3) 下記画面に遷移するので、該当するOSのインストーラのリンクを押下。今回は、Windowsの64ビット版を選択している
Pythonのインストール3

4) ダウンロードされたファイルをダブルクリック
Pythonのインストール4

5) 「Install for all users」を選択した状態で、「Next」を押下
Pythonのインストール5

6) インストールディレクトリを指定し、「Next」を押下
Pythonのインストール6

7) そのまま、「Next」を押下
Pythonのインストール7

8) インストールが完了すると、下記画面に遷移するので、「Finish」を押下
Pythonのインストール8

Python 2.7のパス設定

Python 2.7の場合、インストールしただけだと環境変数のパスが設定されないので、フルパスを指定しなくてもpythonのコマンドが利用できるよう、パス設定を行う。

1) 環境変数の画面に遷移し、ユーザー環境変数のPathを選択し、「編集」を押下
Python_環境変数1

2) 下記環境変数名の編集画面が開くので、「新規」を押下し、PythonのホームディレクトリをPathに追加し、その下のScriptsディレクトリも同様にPathに追加
Python_環境変数2

3) 今回は、Anaconda3も端末にインストールされていて、このままだとPython3が優先されてしまうので、追加したパスをそれぞれ選択し「上へ」を押下することで、Python3でなくPython2.7が優先されるようにする
Python_環境変数3

4) 下記のように、Python2.7が最優先された状態にして、「OK」を押下
Python_環境変数4

5) 環境変数の画面で「OK」を押下
Python_環境変数5

6) 下記のように、pythonのバージョンとpip(Scriptsディレクトリ下)のバージョンを確認すると、Python 2.7のバージョンになっていることが確認できる
Python_環境変数6

なお、環境変数の確認方法については、以下のサイトを参照のこと。
https://www.javadrive.jp/start/install/index4.html

Google SDKのインストール

GCSとBigQueryで連動するプログラムを作成するには、Google SDKをインストールし、初期設定を行う必要がある。その手順は、以下のサイトを参照のこと。
https://www.wantanblog.com/entry/2020/06/02/210033

上記手順を実施すると、以下のように、gsutilコマンドが利用できる。
googlesdk_インストール
なお、gsutilコマンドを実行する際は、バケット名・ファイル名・フォルダ名については、環境に応じて読み替えること。

サービスアカウントキーの設定

GCSやBigQueryに外部からアクセスできるようにするには、サービスアカウントキーを作成し、プログラムから参照できるようにする必要がある。今回は、環境変数GOOGLE_APPLICATION_CREDENTIALSを設定するものとする。

1) 以下のサイトにアクセス
https://cloud.google.com/docs/authentication/production?hl=ja

2) GCPにログイン済の状態で、「[サービス アカウント キーの作成]ページに移動」を押下
サービスアカウントの作成2

3) サービスアカウントで「新しいサービスアカウント」を指定し、役割は「Project」メニューから「オーナー」を押下
サービスアカウントの作成3

4) サービスアカウント名を指定し、「作成」を押下
サービスアカウントの作成4

5) ダウンロードされたJSONファイルを、任意の場所に保存し、「閉じる」を押下
サービスアカウントの作成5_1

下記は、保存されたJSONファイルの例
サービスアカウントの作成5_2

6) 環境変数の画面に遷移し、「新規」を押下
サービスアカウントの作成6

7) 変数名に「GOOGLE_APPLICATION_CREDENTIALS」を指定し、変数値に5)で保存したJSONファイルへのパスを指定し、「OK」を押下
サービスアカウントの作成7

8) 環境変数の画面で「OK」を押下
サービスアカウントの作成8

BigQueryへのテーブル作成

今回作成するプログラムで必要になるsalesテーブルを作成する必要がある。

1) GCPにログインした状態で、「BigQuery」メニューを選択
bigqueryテーブル作成1

2) 下記画面が表示されたら、「始める」を押下
BigQueryテーブル作成2

3) 「従来のUIに移動」を押下
BigQueryテーブル作成3

4) プロジェクト名のメニューから「Create new dataset」を選択
BigQueryテーブル作成4
なお、BigQueryのテーブルは、何らかのデータセット内に格納する必要がある

5) データセットIDを指定し、「OK」を押下
BigQueryテーブル作成5

6) 以下のように、データセットが作成された
BigQueryテーブル作成6

7) データセットのメニューから、「Create new table」を選択
BigQueryテーブル作成7

8) Source Dataで「Create empty table」を指定し、テーブル名・フィールド(カラム)名を指定し、「Create Table」を押下
BigQueryテーブル作成8
ちなみに、「Add Field」ボタンにより、フィールド(カラム)数を増やすことができる

9) 以下のように、salesテーブルが作成された
BigQueryテーブル作成9

なお、テーブルへのレコード追加は、以下の手順で行える
1) テーブルが選択された以下の状態で「Query Table」ボタンを押下
BigQueryレコード追加1

2) 「Show Options」を押下
BigQueryレコード追加2

3) 以下のように、New Query欄にINSERT文を入力し、SQL Dialectの「Use Legacy SQL」のチェックを外し、「Run Query」を押下
BigQueryレコード追加3
なお、「Use Legacy SQL」のチェックを外すと、標準SQLという、SQLの統一標準規格に沿ったSQLを利用できる

4) 以下のように、INSERT文が実行された
BigQueryレコード追加4

5) 以下のように、New Query欄にSELECT文を入力し、SELECT「Run Query」を押下すると、追加したレコードが確認できる
BigQueryレコード追加5