イクジニアブログ

育児 + エンジニア = イクジニア

BigQuery 2021/6月のupdate情報まとめ

BigQueryでは6月に多くのアップデートが発表されました
BigQueryリリースノート

以下の資料にまとめてみたのでそれぞれの機能を見ていきたいと思います

docs.google.com

パラメータ化されたデータ型

f:id:nii_yan:20210706203156p:plain

BQでは変数を宣言出来るのですが、宣言した変数にパラメータを指定可能となりました。
宣言した変数はscriptまたは列にて使用することが出来ます。
また、違う型の値を入れようとした場合はエラーとなります。

行レベルでの権限制御

f:id:nii_yan:20210706140813p:plain f:id:nii_yan:20210706141122p:plain テーブルレベル、カラムレベルに続き行レベルでの権限制御が可能になりました。
権限の設定はSQLからのみ行なえます。

これにより1つのテーブルでも人によって見え方が違うので、US担当の人はUSのデータのみ見せるといった使い方が可能になりました。
行レベル制御が入っているテーブルについてはスキャン量もユーザが見えるだけ(テーブル全体ではない)になるようです。

スナップショットテーブル

f:id:nii_yan:20210706141254p:plain f:id:nii_yan:20210706141316p:plain もともとBigQueryでは7日間はテーブルデータが自動で保存されていましたが、それ以上の日付も手動で保存することが出来るようになりました。
別テーブルを作って保存も今まで出来たのですが、スナップショットテーブルとして保存した場合はストレージ費用が元テーブルとの差分のみになります。

GoogleトレンドのデータをBQからクエリ可能に

f:id:nii_yan:20210706142059p:plain f:id:nii_yan:20210706142114p:plain f:id:nii_yan:20210706142157p:plain Googleトレンドのデータがpublicデータとして公開されました。(現在はUSのみ)
社内のデータと紐付けてマーケティングなどに活用が出来るかなと思います。

トレンドになっているテーマ、地域、スコア、ランクなどのデータが入っています。

Table関数

f:id:nii_yan:20210706142551p:plain f:id:nii_yan:20210706142607p:plain tableが戻り値として返る関数を作れるようになりました。
viewと似ていますが、引数をつけられるのが特徴です。where句に毎回生年月日を指定したいなどの場合に使えます。

ALTER COLUMN SET OPTIONS

f:id:nii_yan:20210706142858p:plain 今までは、GUIAPIでしか書けなかった列の説明(description)をSQLで追加出来るようになりました。

PARSE NUMERIC / PARSE BIGNUMERIC

f:id:nii_yan:20210706145352p:plain CASTとは違い数字の前や後ろにスペースや改行が入ってる文字列もNUMERICに変換してくれます。(CASTだとエラーになる)

CASTした際にFORMT指定可能に

f:id:nii_yan:20210706145543p:plain 以前からも一部は出来た気がするので、previewがGAになったよ。だとは思うのですが、
文字列から様々な型へのCAST
様々な型から文字列へのCAST
の際にFORMAT指定が出来るようになりました

INT64の別名

f:id:nii_yan:20210706145846p:plain こちらもINTEGERなど元々あったので、エイリアスが増えたのかpreviewがGAになったのかだと思うのですが、INT/SMALLINT/INTEGER/BIGINT/TINYINT/BYTEINTはすべてINT64として扱われるようになりました。

ST_GEOGFROM関数

f:id:nii_yan:20210706150046p:plain 地理データの型に変換する関数がリリースされました。

SQLで権限制御が出来るように

f:id:nii_yan:20210706150147p:plain

DCL(GRANT/REVOKE)がサポートされ。SQLでの権限制御が出来るようになりました。

INFORMATION_SCHEMAから権限情報の取得が可能に

f:id:nii_yan:20210706150402p:plain INFORMATION_SCHEMAにOBJECT_PRIVILEGESが加わり、権限情報が取得出来るようになりました。

トランザクションサポート

f:id:nii_yan:20210706150532p:plain トランザクションがサポートされました!!!ただ、GUIからSQL実行する場合など、1回の実行毎にセッションが切れてしまうので、現在はscript用となっています。
MySQLの用に間にDDL挟むと暗黙的commit走るのかな?と思ったのですが、そもそもエラーになりました!

以上で、6月のBQ updateは終わりです。 7月のリリースも多かったらまた来月もやりたいと思います。

参考にさせていただいたサイト

bqfun.jp