1. Go to this page and download the library: Download prologuetech/big library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
$datasetId = 'test';
$tableId = 'events';
// Create our BQ helper
$big = new Big();
// Create table, we will pass in a mocked model to mutate into BQ schema
// Note: create table will only make a new table if it does not exist
/** @var Google\Cloud\BigQuery\Table $table */
$table = $big->createFromModel($datasetId, $tableId, new Event());
// Let's stream our events into BQ in large chunks
// Note: notArchived() is a simple scope, use whatever scopes you have on your model
Event::notArchived()->chunk(1000, function ($events) use ($big, $table) {
// Prepare our rows
$rows = $big->prepareData($events);
// Stream into BQ, you may also pass in any options with a 3rd param.
// Note: By default we use: 'ignoreUnknownValues' => true
$big->insert($table, $rows);
// Get our current id's
/** @var Illuminate\Support\Collection $events */
$ids = $events->pluck('id')->toArray();
// Update these event's as processed
Event::whereIn('id', $ids)->update([
'system_processed' => 1
]);
});