クエリ実行中にリソースが超過しました: テーブル [dataset.table-name] に対して未処理の DML ステートメントが多すぎます。制限は 20 です。

クエリ実行中にリソースが超過しました: テーブル [dataset.table-name] に対して未処理の DML ステートメントが多すぎます。制限は 20 です。

BigQuery への DML でエラーが発生しました。問題を解決するための説明やドキュメントがあれば教えてください。どうもありがとうございます。

java.lang.RuntimeException: [BigQueryError{reason=resourcesExceeded, location=null, message=クエリ実行中にリソースを超過しました: テーブル rare-chiller-170104:adrepo.dsp_google_ads_asset_master に対して未処理の DML ステートメントが多すぎます。制限は 20 です}][BigQueryError{reason=resourcesExceeded, location=null, message=クエリ実行中にリソースを超過しました: テーブル rare-chiller-170104:adrepo.dsp_google_ads_asset_master に対して未処理の DML ステートメントが多すぎます。制限は 20 です}]

答え1

表示されるエラーは、テーブルに対して送信された同時DML操作の制限に関連していますdsp_google_ads_asset_masterここテーブルに対して DML 操作が実行されている場合、BigQuery は保留状態で送信された他の操作をキューに入れます。表示されたエラー メッセージから、保留中のジョブの同時実行制限である 20 に達したようです。

この同時実行制限はテーブルごとに適用されるため、残念ながらバッチクエリやインタラクティブクエリを使用してもこの問題を解決することはできません。私が考えられる唯一の回避策は、この制限を考慮して、送信されたDMLジョブの数を制御することです。これがユースケースにとって大きな制限である場合は、GCP テクニカルサポートこの制限(20)をプロジェクトに合わせて増やすことができるかどうか相談してください。

関連情報