BigQueryのテーブル変更回数の制限対象から、DMLを使用した変更が対象外となりました
はじめに
こんにちは、クラウドエース データ ML ディビジョン所属の後藤です。
クラウドエースの IT エンジニアリングを担うシステム開発部の中で、特にデータ基盤構築・分析基盤構築からデータ分析までを含む一貫したデータ課題の解決を専門とするのがデータ ML ディビジョンです。
データ ML ディビジョンでは活動の一環として、毎週 Google Cloud の新規リリースを調査・発表し、データ領域のプロダクトのキャッチアップをしています。その中でも重要と考えるリリースを本ページ含め記事として公開しています。
今回紹介するリリースは、2023年 5月 23日の「BigQuery のテーブル変更回数のカウント方法の変更」についてです。
DML を使用したテーブル、あるいはパーティションテーブルの変更が、1日あたりのテーブル変更の数にカウントされないようになりました。
BigQuery とは
BigQuery は、Google が提供するクラウドサービスの一つで、フルマネージドのエンタープライズ データウェアハウスです。サーバーレスアーキテクチャにより、SQL クエリを使用して、インフラストラクチャ管理なしで大きな課題に対応できます。
参考URL: What is BigQuery?
DML がBigQuery のテーブル変更回数の対象外となりました
BigQuery は、DML でのデータの挿入(INSERT)、更新(UPDATE)、削除(DELETE)などをサポートしています。
以前は DML でのテーブルまたはパーティションテーブルの変更が、変更回数としてカウントされていました。そして1日あたりの変更回数には上限があるため、上限に達した場合は DML の利用の有無に関わらず、変更することができませんでした。
しかし今回のリリースにより、DML による変更はこの制限から除外されました。つまり、DML によるテーブルまたはパーティションテーブルの変更が、1日あたりの変更回数としてカウントされなくなりました。
よってこのリリースにより、DML を使用して BigQuery をより柔軟に操作できるようになりました。
なお BigQuery のテーブル変更に関する上限については Quotas and limits の Standard tables をご覧ください。
またパーティションテーブルの変更に関する上限については、同公式ドキュメントの Partitioned tables のご覧ください。
DML を大量に実行することは BigQuery の使い方としてどうでしょうか
DML による BigQuery の操作が柔軟になったのは嬉しいことですが、それでは BigQuery を操作するために大量の DML を実行しても問題ないのでしょうか。
Google としては BigQuery を効率よく利用する上で、単一の行の更新や挿入のために大量の DML を実行することは推奨しておりません。BigQuery において DML は、一括での処理のために利用することを目的としております。これは BigQuery がテーブルスキャンを使用したオンライン分析処理(OLAP)に重点が置かれて開発されたサービスであることに由来します。
単一の行の更新や挿入を繰り返すようなユースケースでは、オンライントランザクション処理(OLTP)システムである、Cloud SQL などのサービスの利用を検討するのが良いでしょう。
参考URL:Using data manipulation language (DML), DML statements that update or insert single rows
また、DML を利用したテーブルまたはパーティションテーブルの変更が変更回数としてカウントされなくはなりましたが、DML を利用する上では次のような項目において制限があります。
- 並列に実行される INSERT の DML について
- テーブル毎に同時に実行可能な変更(UPDATE, DELETE, MERGE)について
- テーブル毎の DML 実行待ちキューに格納可能な変更の数について
- キューに格納された DML の最大待機時間について
- 単位時間内に実行可能な DML の数について
なお DML についての制限の詳細は、Quotas and limits の Data manipulation language をご覧ください。
まとめ
今回の記事では DML が BigQuery のテーブル変更回数の対象外となったことをご紹介しました。
このリリースにより DML による BigQuery の操作が柔軟になりましたが、一方で大量の DML を BigQuery で行うことについては推奨されないことについてもご紹介しました。
BigQuery に限らず、利用するサービスの特性を踏まえた上で、ご自身のユースケースに最適なサービスの選定や使い方をし、サービスを最大限に活用していきましょう。
Discussion