2020-11-09

BigQueryでなんか知らんけどクエリが走らんときに確認してほしいこと

Thumbnail

こんにちは。バンです。

皆さん BigQuery 使ってますか??僕は使ってますよ

BigQuery 使う上での小ネタシリーズです

まあ BigQuery に限った話ではないのですが。。

問題

sample.dataset.table というテーブルがあったときに、下記のクエリを走らせると

SELECT following
from `sample.dataset.table`

こんなエラーが出ます

Syntax error: Expected end of input but got keyword FOLLOWING at [xxxx]

何が悪いかわかりますか?というやつです。

答え

小ネタはあっさりが信条ですのであっさり答えを言うと、

FOLLOWING が BigQuery においては 予約語 です。

予約語とは

AND とか、 SELECT のように予め特殊な意味を持つ言葉として定められているものです。python なら if とか。

ちなみに BigQuery の予約語一覧は下記で確認できます! BigQuery の予約語リスト

でも予約語をカラム名にしちゃった…

困りますね。こういうときは `(Backtick) で囲えば OK です。(ちなみに Legacy のときは[]でした。)

なので、修正するなら下記のように。

SELECT `following`
from `sample.dataset.table`

ただ、これで囲うと BigQuery の GUI 上でシンタックスハイライトがちゃんと効いて色が変わらないのでちょっと不安になりますが、普通に動きます。

本当はそこらへんの感覚をもってカラム名を設定してほしいですがまあ、どうしようもないときもあるでしょうというところで…

いとめでたし。

管理者

Takuya Ban
Takuya Ban

何でも系エンジニアです。

qiita

新着記事

BigQueryに限らずSQL関連の謎エラーはだいたいこういう凡ミスです。
Reactの2種類のコンポーネントについて、今から学ぶ人向けです。
もうすぐ5G対応iPhoneが出るけどそもそも5G使える場所がないのでは…
大阪都構想が告示されましたが…
モックとか作る上でのもはや必須ツールともいえるLorem Picsumの使い方メモです。

qiita

© 2020, Takuya Ban