[PHP]BigQueryのデータを取得する

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);
}

上記プログラムを実行するとクエリ実行結果を配列の形式で取得することができる。

参考

googleapis/google-cloud-php

色んなGCPサービスを簡単に操作できる、Google Cloud PHP Clientを使ってみよう

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

5 × 3 =

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください