イクジニアブログ

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

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

Google Cloud Nextが始まって続々とBQの新機能が発表されてますね! Nextで發表された内容のまとめは来月書きます

それでは先月までに引き続き9月のまとめもいってみましょう!

nii-yan.hatenablog.com

JOB履歴の削除が可能に

BQでは過去6ヶ月分のJOB履歴を持ちますが、JOB履歴の削除が可能になりました。(悪用しちゃだめですよ

bq rm -j ‘プロジェクト名:ロケーション.job_id’

where句に個人情報を入れてしまった場合などセンシティブデータを消したい場合に有効
メタデータ(INFORMATION_SCHEMAでの参照データなど)は消えますが、ログからは消えません

セッションが利用可能に

WebUIからセッションが使えるようになり、トランザクション(begin/commit/rollback)が利用可能に
本番作業を安心に出来るようになりました

変数や一時テーブルをセッション内で使いまわすことも可能
セッションを使うかはQuerySettingsから指定が出来ます f:id:nii_yan:20211013212409p:plain

ブラウザのタブ毎に別のセッションを貼ることが可能
2つのセッションでDeadlockがかかるような処理を行った場合はupdateをしようとした時点でエラーが出ます
セッション中にエラーが起こってもrollbackやcommitはされません f:id:nii_yan:20211013212724p:plain

トランザクションレベルはSnapshot Isolationとなっており、トランザクションを開始した時点のスナップショットデータが読み込まれます。(ファジーリード/ファントムリードは起きない)

また、セッションは手動で終わらせることは出来ません
24時間操作しないか、7日立つと自動的に終了し、commitしてない場合はrollbackされます。

多くの地理関数が利用可能に

以下の地理関数が利用可能になりました

関数名 内容
ST_EXTERIORRING Returns a linestring geography that corresponds to the outermost ring of a polygon geography.
ST_INTERIORRINGS Returns an array of linestring geographies that corresponds to the interior rings of a polygon geography.
ST_ANGLE Returns the angle between two intersecting lines.
ST_AZIMUTH Returns the azimuth of a line segment formed by two points.
ST_NUMGEOMETRIES Returns the number of geometries in a geography.
ST_GEOMETRYTYPE Returns the Open Geospatial Consortium (OGC) geometry type that describes a geography as a string.
ST_BOUNDINGBOX Returns a STRUCT that represents the bounding box for a geography.
ST_EXTENT Returns a STRUCT that represents the bounding box for a set of geographies.
S2_COVERINGCELLIDS Returns an array of S2 cell IDs that cover a geography.
S2_CELLIDFROMPOINT Returns the S2 cell ID covering a point geography.

クエリ結果のダウンロード上限が変更

クエリの結果をローカルにダウンロードする際の上限が10MBになりました。
(今までは16,000行 or 10MBだったと思う)

加えてnestedカラムや配列カラムもCSVにダウンロード可能になりました。
(ダウンロードするとカラムの中身はJSONJSONCSVとなってます)

承認済みTable関数

承認済みviewのTable関数版です
関数内で参照しているテーブルに対しての閲覧権限がなくても関数の権限があればデータの参照が可能

9月のアップデートは以上となります。
GoogleCloudNext前だからか、少なかったですね。また来月!!