コネクテッドシートとは
BigQueryのViewやテーブルの内容をそのままスプレッドシートに同期するコネクテッドシートという機能があって、ローデータを共有する際に有用なのでよく使っています。
https://cloud.google.com/bigquery/docs/connected-sheets?hl=ja
シンプルにCSVエクスポートしたデータをインポートする方式だと
- 何かしら情報を残さないとデータの出所がたどれなくなって不便
- 定期更新するにはGASや外部ツールを使って処理を書く必要がある
- データ量が多い時に不都合が生じやすい
といった不便さがありますが、コネクテッドシートだとその問題が解消します。
このように便利なコネクテッドシートですが、列名がそのままヘッダ行として使われるので必ず英語になってしまう。という問題がありました。
大体エンジニアでは無い人に共有するためにコネクテッドシートを使うので、地味に辛いポイントです。
BigQueryが列名を日本語対応
少し前までは英語しか使えなかったですが、今年の3月から大部分のUnicode文字列が列名で指定できるようになりました(preview版ではある)。
https://cloud.google.com/bigquery/docs/schemas?hl=ja#flexible-column-names
そのため、列名を日本語にしてしまえばヘッダ行が日本語にできます。
日本語列の使い方
Viewで日本語列名を利用する際は下記のようにASを使って実現できます。
SELECT
name AS `氏名`,
nickname AS `あだ名`,
tel AS `電話番号`,
FROM
sample_dataset.users
ただし、記号は使えないものがあります。
柔軟な列名は、次の特殊文字をサポートしていません。
Unicode 正規表現 \u0021 で表される感嘆符(!)。
Unicode 正規表現 \u0022 で表される引用符(")。
Unicode 正規表現 \u0024 で表されるドル記号($)。
Unicode 正規表現 \u0028 で表される左かっこ(()。
Unicode 正規表現 \u0029 で表される右かっこ())。
Unicode 正規表現 \u002A で表されるアスタリスク(*)。
Unicode 正規表現 \u002C で表されるカンマ(,)。
Unicode 正規表現 \u002E で表されるピリオド(.)。
Unicode 正規表現 \u002F で表されるスラッシュ(/)。
Unicode 正規表現 \u003B で表されるセミコロン(;)。
Unicode 正規表現 \u003F で表される疑問符(?)。
Unicode 正規表現 \u0040 で表されるアットマーク(@)。
Unicode 正規表現 \u005B で表される左角かっこ([)。
Unicode 正規表現 \u005C で表されるバックスラッシュ(\)。
Unicode 正規表現 \u005D で表される右角かっこ(])。
Unicode 正規表現 \u005E で表される曲折アクセント(^)。
Unicode 正規表現 \u0060 で表される抑音アクセント(`)。
Unicode 正規表現 \u007B で表される左中かっこ({)。
Unicode 正規表現 \u007D で表される、右波かっこ(})。
Unicode 正規表現 \u007E で表される、チルダ(~)。
かっこは補足情報として入れたくなる気持ちが湧くかもしれませんが、他の方法で表現するしかないですね。
ちなみに日本語列名はPIVOTの中でも使えました。
SELECT
*
FROM
sample_table
PIVOT(
MAX(column_a) AS `列名A`,
MAX(column_b) AS `列名B`,
FOR column_c
IN ("X群", "Y群")
)
最後に
使ってて気になったことは
- 中間テーブルを日本語列名にしてしまうとJOINの時に日本語を指定する必要が出てくる
という点です。
中間テーブルに使うと日本語名になっていないテーブルとのJOINする際に分かりづらくなってしまうので、最終アウトプットに使うViewやテーブルでのみ利用するのが今の所は良いと思ってます。
他にも注意点や活用方法があればぜひ教えてください。