文章では分かりにくいですね。実際にやってみましょう。操作はGCPコンソールから行います。され、どの行も返されませんでしたクエリ完了(127.49ms成功しました。レコードではどうでしょうか。ステートメントでは、単一トランザクションのミューテーションの上限(20,000)を超えています。ミューテーションの数を減らすには、書き込み数が少ないトランザクションを試すか、使用するインデックスを減らしてください。このようにすると、オペレーションのミューテーションの数と、ミューテーションの影響を受ける列の数が等しくなるため、問題解決に役立ちます。書き込みまたはインデックスを減らすと、影響を受ける列の数が減るため、ミューテーションの数が上限以下になります。ステートメントをお試しください。ステートメントでは、単一トランザクションのミューテーションの上限(20,000)を超えています。ミューテーションの数を減らすには、書き込み数が少ないトランザクションを試すか、使用するインデックスを減らしてください。このようにすると、オペレーションのミューテーションの数と、ミューテーションの影響を受ける列の数が等しくなるため、問題解決に役立ちます。書き込みまたはインデックスを減らすと、影響を受ける列の数が減るため、ミューテーションの数が上限以下になります。ステートメントをお試しください。想定通り、エラーになりました。パーティションDMLの実行(Python)では、ミューテーション上限を回避するパーティションDMLを実行してみましょう。前述の通り、パーティションDMLはコンソール上からは実行できません。いくつか実行の方法はありますが、今回は外部プログラム(Python)から専用のライブラリを使用して実行してみたいと思います。アクセスするためのサービスアカウントの用意まずはSpannerに外部アクセスするためのサービスアカウントを用意します。選択し、任意の名称を付与します。任意の場所に保存します。テスト環境の画像が公開できなかったので文章だけでごめんなさい。アクセスするためのサービスアカウントとキーが発行されます。アクセスを実現します。インストールしてください。https://pypi.org/project/google-cloud-spanner/実装では実装していきます。今回は4ファイルを作成します。main.py処理ロジックの呼び出しと結果の表示を行う。ctlSpa.py処理ロジックを実行する。conf.py環境情報などを保持する。main.py特筆事項はないです。処理を呼び出し、その結果を出力するだけのsrcです。インスタンスIDとデータベースIDを保持させます。'データベースのID'ctlSpa.pyここでやることは2つです。接続のためのデータベースクラスを生成する。メソッドを使用し、DMLを実行する。今回はDMLを直接プログラムの中に書き込んでいます。句が必要であることに注意してください。文を指定する必要があります。パーティションDMLとして実行できるのは単一のステートメントであることも忘れないでください。実行することができません。実行するためのシェルです。JSONキーの位置を設定する必要があります。するのが面倒なので、今回はシェルを使用しています。パーティションDMLを実行してみましょう。大きく超えるDMLでしたが、問題なく実行できました。一応レコードの内容を確認します。003735f8-91b4-42c0-ba08-b0c54fe66257bulk_updatebulk_updatebulk_updatebulk_updatebulk_updatebulk_updatebulk_updatebulk_updatebulk_update1234567891011id1id10id2id3id4id5id6id7id8id900032a60-f221-4b79-b320-739fe1654606bulk_updatebulk_updatebulk_updatebulk_updatebulk_updatebulk_updatebulk_updatebulk_updatebulk_update0004105b-682b-4543-96c6-09fbdeb9e58ebulk_updatebulk_updatebulk_updatebulk_updatebulk_updatebulk_updatebulk_updatebulk_updatebulk_update0005e160-f501-4f55-880c-1636e58164d2bulk_updatebulk_updatebulk_updatebulk_updatebulk_updatebulk_updatebulk_updatebulk_updatebulk_update001c6b9c-07d6-4f6e-becf-e4bd25b7b30ebulk_updatebulk_updatebulk_updatebulk_updatebulk_updatebulk_updatebulk_updatebulk_updatebulk_update0024a487-7511-4df6-a8c9-273680c012fcbulk_updatebulk_updatebulk_updatebulk_updatebulk_updatebulk_updatebulk_updatebulk_updatebulk_update00294e09-179b-403b-920f-8447a3263ffdbulk_updatebulk_updatebulk_updatebulk_updatebulk_updatebulk_updatebulk_updatebulk_updatebulk_update0031c20b-eaf8-4bca-817c-7ff87586a5f1bulk_updatebulk_updatebulk_updatebulk_updatebulk_updatebulk_updatebulk_updatebulk_updatebulk_update003238c8-f9c3-4292-8549-8288115c90cfbulk_updatebulk_updatebulk_updatebulk_updatebulk_updatebulk_updatebulk_updatebulk_updatebulk_update003342e5-5f11-41a5-ae41-0cbf3fdf1c84bulk_updatebulk_updatebulk_updatebulk_updatebulk_updatebulk_updatebulk_updatebulk_updatebulk_update003735f8-91b4-42c0-ba08-b0c54fe66257bulk_updatebulk_updatebulk_updatebulk_updatebulk_updatebulk_updatebulk_updatebulk_updatebulk_update問題なく処理が行われていることが確認できました。余談ですが、パーティションDMLを実行した時の実行件数の戻り値は必ずしも正確ではないようです。なってくると、どうも実際にupdateした件数と戻り値の値が乖離することが発生するようです。以下でなければならない」という制約がある。レコード数」を意味する。GCPコンソールからの実行ができない。単一のステートメントしか実行ができない。レコードを用意しました。レコードはどうやって用意したのでしょうか。処理はミューテーション上限に引っかからないように実行するしか、現在は術がありません。仕組みは単純で、20000ミューテーション以下になるように一度のInsert数を制限しながら処理ループを回しているだけです。queryListスライス処理が微妙なのは、ご愛嬌...。実行すると、こんな感じです。2019.08.31こんばんは。いう概念について学んでいきます。ついて、その概要をまとめていきます。VPCについて学びながらネットワークを作ってみる。2019.04.20こんばんは。今日は、GCPにおけるVPCというネットワークについてお勉強して行きたいと思います。コメントをキャンセルメールアドレスが公開されることはありません。