イクジニアブログ

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

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

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

nii-yan.hatenablog.com

nii-yan.hatenablog.com

ODBC/JDBC driverのバージョンアップ

エンハンス、bugfixなどが含まれています。

CREATE TABLE LIKE

既存のテーブルからスキーマ情報をコピーしてテーブルを作成します
(データのコピーはされない)
カラムのdescriptionなど、メタデータのコピーもされます

{CREATE TABLE | CREATE TABLE IF NOT EXISTS | CREATE OR REPLACE TABLE}
[[project_name.]dataset_name.]table_name
LIKE [[project_name.]dataset_name.]source_table_name
[PARTITION BY partition_expression]
[CLUSTER BY clustering_column_list]
[OPTIONS(table_option_list)]
[AS query_statement]

CREATE TABLE COPY

既存のテーブルと同じスキーマ、データを持つテーブルを作成します
メタデータのコピーもされます

{CREATE TABLE | CREATE TABLE IF NOT EXISTS | CREATE OR REPLACE TABLE}
[[project_name.]dataset_name.]table_name
COPY [[project_name.]dataset_name.]source_table_name
[OPTIONS(table_option_list)]

カラムの型変更が可能に

ALTER COLUMN SET DATA TYPEを使って、カラムの型変更が可能になりました

どの型にでも変更出来るわけではなく、INT64からBIGNUMERICなどより制約のゆるい型への変更のみ可能です

INT64からSTRINGの型変換も出来ませんでした

注意書きとして、型を変更するテーブルがマテリアライズドビューから参照されている場合は、マテリアライズドビューに対するクエリがエラーとなってしまうと書かれています
この問題を回避するには一度マテリアライズドビューを削除し作り直す必要があります

ALTER TABLE [IF EXISTS] [[project_name.]dataset_name.]table_name
ALTER COLUMN [IF EXISTS] column_name SET DATA TYPE data_type

Spannerへの外部クエリが可能になりました

EXTERNAL_QUERY関数を使用して、BQからSpannerへのクエリが可能になりました
BQに対応していない型がある場合はクエリが失敗します
BQが単一リージョンだった場合は同じリージョンにあるSpannerにのみクエリが可能
また、spannerへのクエリは読み取り専用です

BQから直接クエリ出来るサービスとしては他に

SELECT c.customer_id, c.name, rq.first_order_date
FROM mydataset.customers AS c
LEFT OUTER JOIN EXTERNAL_QUERY(
  'my-project.us.example-db',
  '''SELECT customer_id, MIN(order_date) AS first_order_date
  FROM orders
  GROUP BY customer_id''') AS rq ON rq.customer_id = c.customer_id
GROUP BY c.customer_id, c.name, rq.first_order_date;

BigQuery 管理リソースグラフが使用可能に

previewだったものがGAになりました
管理リソースグラフはreservations(定額制のBQ)を使っている場合のみ使用出来ます

組織全体 > reservation > プロジェクト > ユーザー > job と深堀してどこでどれだけslotが使われているか確認することが出来ます

スロットの容量見積もりツールが使用可能に

reservationsを使う時に一体どれだけslotを買えばいいのかは見積もりが非常に辛いです
こちらのツールでは現在指定しているslot数に対してどれほどのslotを使っているかが可視化されます

f:id:nii_yan:20210909212930p:plain
reservationsの割当スロットが多いパターン

こちらでも見積もり方法をのせているブログがあるので良かったら参考にしてみてください

tech-blog.monotaro.com

Parquetフォーマットでのエクスポートが可能に

previewだったものがGAになりました

Parquet形式でのエクスポートが出来るようになりました
コンソールからのエクスポートでもParquetが指定可能です

BQで選べるファイルのフォーマット * テキストフォーマット(例:CSVJSON) * 行指向フォーマット(例:AVRO) * 列指向(カラムナ)フォーマット(例:Parquet)

f:id:nii_yan:20210909213345p:plain

8月のアップデートは以上となります。
夏休みの影響(?)なのか、少なかったですね。また来月!!