Yappli Tech Blog

株式会社ヤプリの開発メンバーによるブログです。最新の技術情報からチーム・働き方に関するテーマまで、日々の熱い想いを持って発信していきます。

Googleスプレッドシートで定型クエリ運用【Sexy Tech for You #6】

データサイエンティストの阿部です。最近、職場でオッドタクシーが話題です。シルバーウィークに一気見したいと思います。

さて、明日から使いたくなるデータハンドリング術を紹介する "Sexy Tech for You" の第6話を配信しました。データ活用推進に際して、ビジネスユーザーがWHERE句の条件だけ変えて実行できるような定型的なクエリを作成・配布して、社内で運用するケースがあるかと思います。そんな時に、Googleスプレッドシートへの入力と、更新ボタン押下だけで、BigQueryのクエリ結果を得られるような方法を紹介しました。

動画中に記載したクエリや補足事項を本ブログに掲載しますので、少しでも皆様のお役に立てたら幸いです。

Youtube

1:30 でアウトプット例を示します。

BigQuery クエリ

BigQueryの一般公開データセットbigquery-public-data.wikipedia.pageviews_2021での適用例

WITH 

TARGET_WORD AS (
SELECT
    *
FROM
    UNNEST(SPLIT(@TARGET_WORD,",")) AS word
),

AGGR AS (
SELECT  
    title,
    SUM(views) AS pv
FROM
    `bigquery-public-data.wikipedia.pageviews_2021`
WHERE
    DATE(datehour) BETWEEN @START_DATE AND @END_DATE
    AND wiki IN ("ja","ja.m")    
GROUP BY 
    1
)

SELECT
  AGGR.*
FROM
  AGGR,TARGET_WORD
WHERE
  REGEXP_CONTAINS(title, word) = TRUE 
ORDER BY 
  2 DESC

補足

上のクエリでは、@TARGET_WORD,@START_DATE,@END_DATEの3箇所で、セルの入力値をパラメータとして参照する想定です。

@TARGET_WORDは、カンマ区切りで1つのセルに複数の値を入力しても対応できるようにしています。区切り文字は、UNNEST(SPLIT(@TARGET_WORD,",")) AS word中の","の部分で、任意の値を指定することができます。

スプレッドシートからデータコネクト経由でBigQueryを実行するためには、BigQueryの参照権限が必要です。専用のGoogleグループを作成すると、ユーザー管理しやすいと思います。

以上、Moblie Tech for All のヤプリがお送りする Sexy Tech for You でした!次回またお会いしましょう。