GCP Laravel PHP

【GCP/Laravel】PHPでBigQueryを使ってINSERTやDELETEする方法

開発環境

  • GCP BigQuery
  • Laravel 9
  • PHP 8.1

概要

LaravelでGCPのBigQueryを実装することになりました。

そもそもGCP自体よくわかっていない状態から、BigQueryの実装に入ったためかなり苦しみました。

目的はBigQueryのDBにデータを挿入・削除することです。

認証やSQLなど躓いたポイントを備忘録で残します。

BigQueryの実装

LaravelでBigQueryを実装するためにはまず、ライブラリをインストールする必要があります

composer require google/cloud-bigquery

次にBigQuery専用の関数を使えるようにするために、BigQueryのClientインスタンスを作成する必要があります。

useBigQueryClientをインポートします。

use Google\Cloud\BigQuery\BigQueryClient

クライアントに必要なものは2つです

BigQueryClientの作成

方法は2パターンです

PATH を指定する方法

new BigQueryClient([
            'projectId' => プロジェクトID,
            'keyFilePath' => './credential.json'
        ]);

jsonのKey・valueを取り出して設定する方法

new BigQueryClient([
            'projectId' => プロジェクトID,
            'keyFile' => [
                'type' => env('GCP_TYPE'),
                'project_id' => env('GCP_PROJECT_ID'),
                'private_key_id' => env('GCP_PRIVATE_KEY_ID'),
                'private_key' => env('GCP_PRIVAATE_KEY'),
            〜  以下省略  〜
            ]
        ]);

※.envファイルに記述する場合、private_keyの記述方法には注意が必要です

INSERTとDELETE

BigQueryのDBを操作するためにはquery()runQuery() を使います

$query = 'INSERT or DELETEのSQL';

$jobConfig = $bigQuery->query($query);
$job = $bigQuery->startQuery($jobConfig);

DELETEで全件削除するときには注意が必要です

公式 を見るのが一番正確ですが、

少し読み解くのに時間がかかったため、重要な処理をまとめてみました。

-GCP, Laravel, PHP