Google Cloud Codeの最終マイル:ビッグデータ分析からスライドプレゼンテーションへ
2018年9月26日にWesley Chunさんが発表した内容をもとに、Google Cloud Platform(GCP)とG Suiteを利用したビッグデータの分析からプレゼンテーションに至るプロセスについて解説します。GCPは、インフラストラクチャ、サーバーレス製品、APIを提供しており、ビルドや革新、スケールアップを手助けします。一方、G Suiteは、生産性向上のためのツールや、開発者向けのAPI、拡張機能フレームワーク、ローコードプラットフォームを提供しています。これらのサービスを組み合わせることで、より強力で柔軟なソリューションが得られます。
GCPとG Suiteの統合
このセッションでは、G Suite Dev Showを通じて、GCPの強力なツールをG Suiteアプリケーションから利用する方法を紹介しています。特にBigQueryを使用することで、大量のデータから貴重なインサイトを引き出すことができます。しかし、単にデータを分析するだけではなく、その結果を経営陣にプレゼンテーションする必要があります。そこで、G Suiteの強みを活かし、データ分析から「経営者向け」プレゼンテーションを作成する一例を示します。
サンプルアプリケーションの概要
サンプルアプリケーションは、G Suiteのサーバーレス開発プラットフォームであるGoogle Apps Scriptを利用して構築されています。これは、G Suite APIやBigQueryなどのGCPツールへの簡単なアクセスを提供します。以下では、アプリケーションの主要な部分について説明します。
ステップ1: BigQueryへのクエリ発行
最初のステップでは、BigQueryへのクエリを発行し、その結果をGoogle Sheetsに格納します。以下は、クエリを実行するためのコードです:
function runQuery() {
var request = {query: BQ_QUERY};
var queryResults = BigQuery.Jobs.query(request, PROJECT_ID);
var jobId = queryResults.jobReference.jobId;
queryResults = BigQuery.Jobs.getQueryResults(PROJECT_ID, jobId);
var rows = queryResults.rows;
var data = new Array(rows.length);
for (var i = 0; i < rows.length; i++) {
var cols = rows[i].f;
data[i] = new Array(cols.length);
for (var j = 0; j < cols.length; j++) {
data[i][j] = cols[j].v;
}
}
var spreadsheet = SpreadsheetApp.create(QUERY_NAME);
var sheet = spreadsheet.getActiveSheet();
var headers = queryResults.schema.fields;
sheet.appendRow(headers);
sheet.getRange(START_ROW, START_COL, rows.length, headers.length).setValues(data);
return spreadsheet;
}
このコードは、新しいGoogle Sheetsを作成し、BigQueryの結果を格納します。
ステップ2: チャートの生成
次のステップでは、Google Sheetsのデータをもとにチャートを作成します。以下は、チャートを生成するためのコードです:
function createColumnChart(spreadsheet) {
var sheet = spreadsheet.getSheets()[0];
var chart = sheet.newChart()
.setChartType(Charts.ChartType.COLUMN)
.addRange(sheet.getRange(START_CELL + ':' + END_CELL))
.setPosition(START_ROW, START_COL, OFFSET, OFFSET)
.build();
sheet.insertChart(chart);
return chart;
}
このプロセスにより、ビジュアルデータが作成され、後のプレゼンテーションに役立ちます。
ステップ3: プレゼンテーションの作成
最終ステップでは、Google Slidesを用いてプレゼンテーションを作成します。以下は、そのためのコードです:
function createSlidePresentation(spreadsheet, chart) {
var deck = SlidesApp.create(QUERY_NAME);
var [title, subtitle] = deck.getSlides()[0].getPageElements();
title.asShape().getText().setText(QUERY_NAME);
subtitle.asShape().getText().setText('via GCP and G Suite APIs:n' + 'Google Apps Script, BigQuery, Sheets, Slides');
var tableSlide = deck.appendSlide(SlidesApp.PredefinedLayout.BLANK);
var sheetValues = spreadsheet.getSheets()[0].getRange(START_CELL + ':' + END_CELL).getValues();
var table = tableSlide.insertTable(sheetValues.length, sheetValues[0].length);
for (var i = 0; i < sheetValues.length; i++) {
for (var j = 0; j < sheetValues[0].length; j++) {
table.getCell(i, j).getText().setText(String(sheetValues[i][j]));
}
}
var chartSlide = deck.appendSlide(SlidesApp.PredefinedLayout.BLANK);
chartSlide.insertSheetsChart(chart);
return deck;
}
このプロセスを通じて、データ分析の成果を魅力的に視覚化することが可能になります。
アプリケーションの実行
最初の三つの関数を連携させて、全体のアプリケーションを動作させるためには、以下のようなドライバー関数を作成します:
function createBigQueryPresentation() {
var spreadsheet = runQuery();
var chart = createColumnChart(spreadsheet);
var deck = createSlidePresentation(spreadsheet, chart);
}
このようにして、ビッグデータの分析からGoogle Slidesでのプレゼンテーション作成まで、一連の流れが完成します。
まとめ
このコードのサンプルは、GCPとG Suiteを活用した一つの具体例であり、ビッグデータの分析から情報をプレゼンテーションとして可視化する過程を示しています。興味がある方は、g.co/codelabs/bigquery-sheets-slidesで詳細なガイドを受けることができ、また、GitHubリポジトリにも全コードが公開されています。
これからも、GCPとG Suiteを利用した様々な事例が登場する予定ですので、お楽しみに!データ分析からプレゼンテーション作成までの道のりを、皆さん自身のプロジェクトに活かしてみてはいかがでしょうか。