Bigqueryを触ってみている。
コンソール上でデータ登録や取得をするのはとても簡単なのだが、phpでもデータ取得操作をしたくなったので手順をまとめる。
あとBigQuery初心者なので、BigQueryに関しても簡単に記述する。
BigQueryの操作
BigQueryデータ登録方法
データ登録方法は「ファイルアップロード」「スプレッドシート」「Google Cloud Strage」などいくつか方法がある。(Googleドライブのスプレッドシートも簡単に登録できるためとても楽)
ここでは下記サイトの法人表からデータを所得して1000件分くらいを登録した。
※ファイルアップロードの上限は10MB以下で行数16,000以下の必要があるため(データをローカル データソースから読み込む)
BigQuery コンソール上での実行
コンソール上の「クエリエディタ」でSQLを実行することができる。
コンソール上で結果確認もできるし、結果テーブルをcsvやスプレッドシートとしてGoogleドライブ上に保存することも可能。
またJSON形式で扱うこともできる。
PHPでデータを取得する
手順としては大きく2つのことを行う必要がある。
- GCPサービスアカウントキーの作成
- PHPプログラムの作成
GCP サービスアカウントキーの作成
phpでGCPを扱う上でサービスアカウントキーを発行し認証を行う必要がある。
GCPの「APIとサービス」>「認証情報」から「認証情報を作成」を選択してサービスアカウントキーを発行する。キーの形式はJSONを選択。
役割はここでは「BigQuery管理者」を選択。
操作が完了するとキーファイルが端末にダウンロードされる。
phpでの実行
composerでGCPを扱うためのライブラリをインストールする。
$ composer require google/cloud
BigQueryでデータを取得するためのサンプルプログラム。
事前にGCPで取得したサービスアカウントキーファイルはcredential.json
として保存している。
<?php
require 'vendor/autoload.php';
use Google\Cloud\BigQuery\BigQueryClient;
$keyfile = './credential.json';
$bigquery = new BigQueryClient([
'keyFile' => json_decode(file_get_contents($keyfile), true),
]);
// get created table
$dataset = $bigquery->dataset('dataset-name');
$table = $dataset->table('table-name');
// Run query
$queryJobConfig = $bigquery->query(
"SELECT * FROM `project-id.data-set-name.table-name` LIMIT 100"
);
$queryResults = $bigquery->runQuery($queryJobConfig);
foreach ($queryResults as $row) {
print_r($row);
}
上記プログラムを実行するとクエリ実行結果を配列の形式で取得することができる。