BigQuery 2021/6月のupdate情報まとめ
BigQueryでは6月に多くのアップデートが発表されました
BigQueryリリースノート
以下の資料にまとめてみたのでそれぞれの機能を見ていきたいと思います
パラメータ化されたデータ型
BQでは変数を宣言出来るのですが、宣言した変数にパラメータを指定可能となりました。
宣言した変数はscriptまたは列にて使用することが出来ます。
また、違う型の値を入れようとした場合はエラーとなります。
行レベルでの権限制御
テーブルレベル、カラムレベルに続き行レベルでの権限制御が可能になりました。
権限の設定はSQLからのみ行なえます。
これにより1つのテーブルでも人によって見え方が違うので、US担当の人はUSのデータのみ見せるといった使い方が可能になりました。
行レベル制御が入っているテーブルについてはスキャン量もユーザが見えるだけ(テーブル全体ではない)になるようです。
スナップショットテーブル
もともとBigQueryでは7日間はテーブルデータが自動で保存されていましたが、それ以上の日付も手動で保存することが出来るようになりました。
別テーブルを作って保存も今まで出来たのですが、スナップショットテーブルとして保存した場合はストレージ費用が元テーブルとの差分のみになります。
GoogleトレンドのデータをBQからクエリ可能に
Googleトレンドのデータがpublicデータとして公開されました。(現在はUSのみ)
社内のデータと紐付けてマーケティングなどに活用が出来るかなと思います。
トレンドになっているテーマ、地域、スコア、ランクなどのデータが入っています。
Table関数
tableが戻り値として返る関数を作れるようになりました。
viewと似ていますが、引数をつけられるのが特徴です。where句に毎回生年月日を指定したいなどの場合に使えます。
ALTER COLUMN SET OPTIONS
今までは、GUIやAPIでしか書けなかった列の説明(description)をSQLで追加出来るようになりました。
PARSE NUMERIC / PARSE BIGNUMERIC
CASTとは違い数字の前や後ろにスペースや改行が入ってる文字列もNUMERICに変換してくれます。(CASTだとエラーになる)
CASTした際にFORMT指定可能に
以前からも一部は出来た気がするので、previewがGAになったよ。だとは思うのですが、
文字列から様々な型へのCAST
様々な型から文字列へのCAST
の際にFORMAT指定が出来るようになりました
INT64の別名
こちらもINTEGERなど元々あったので、エイリアスが増えたのかpreviewがGAになったのかだと思うのですが、INT/SMALLINT/INTEGER/BIGINT/TINYINT/BYTEINTはすべてINT64として扱われるようになりました。
ST_GEOGFROM関数
地理データの型に変換する関数がリリースされました。
SQLで権限制御が出来るように
DCL(GRANT/REVOKE)がサポートされ。SQLでの権限制御が出来るようになりました。
INFORMATION_SCHEMAから権限情報の取得が可能に
INFORMATION_SCHEMAにOBJECT_PRIVILEGESが加わり、権限情報が取得出来るようになりました。
トランザクションサポート
トランザクションがサポートされました!!!ただ、GUIからSQL実行する場合など、1回の実行毎にセッションが切れてしまうので、現在はscript用となっています。
MySQLの用に間にDDL挟むと暗黙的commit走るのかな?と思ったのですが、そもそもエラーになりました!
おおお!!!BQがトランザクション対応!!
— yu yamada (@nii_yan) 2021年6月30日
途中で、トランザクションに対応してないDDL挟んだら暗黙的commitされるのかな?って思ったらそもそもクエリが失敗する仕様だった。 https://t.co/NhViyoufhd pic.twitter.com/t4C8z0T5fK
以上で、6月のBQ updateは終わりです。 7月のリリースも多かったらまた来月もやりたいと思います。
参考にさせていただいたサイト