注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
Spark モジュール内で Code Workbook 環境を初期化すると、一連のメタデータがモジュールに割り当てられます。このメタデータは、コンピューティング情報と環境情報の2つのカテゴリーに分けられます。セッションとは、Spark モジュールのライフサイクルの一部としてこれらの設定を具体化したものです。簡単に言えば、「特定の Spark モジュールの存続期間中に実際に使われていた設定」を指します。
コンピューティング情報には、Spark モジュールに割り当てられた Spark 設定の詳細に加え、jar の依存関係、リソース識別子、起動するモジュールの種類などの関連情報が含まれます。一方、環境情報は、リクエストされた環境と解決された環境の2つのカテゴリーにさらに分けられます。リクエストされた環境とは、pandas=2.* や python<3.10 といった conda の仕様の集合です。一方、解決された環境とは、リクエストされた環境が定める制約を満たす、解決済みのパッケージの集合です。リクエストされた環境は非決定論的ですが、解決された環境は、定義上、特定のリクエストされた環境に対する恒久的な解です。そのため、同一のリクエストされた環境であっても、異なる解決された環境になる場合があります。たとえば、2017年に python>=3.6 をリクエストすると Python 3.6 に解決された可能性が高いですが、現在同じリクエストを行うと Python 3.10 になる可能性があります。
Code Workbook では、Workbook の最近のすべてのセッションに関する情報を確認できます。Workbook のセッション履歴を確認するには、Code Workbook の環境ドロップダウンを選択し、セッション履歴を表示を選択します。

セッション履歴ウィンドウでは、情報を計算、リクエストされた環境、解決された環境の3つのタブで情報を確認できます。左側のペインには、セッションの ID と、セッションが初期化された時点のタイムスタンプが表示されます。セッションIDの左側のアイコンは、初期化に成功したか(緑)、失敗したか(赤)、それ以外か(青)を示します。青のセッションは通常、初期化がまだ完了しておらず、失敗または成功のいずれの状態にも達していないことを意味します。

情報を計算タブには、特定のセッションでリクエストされた Spark モジュールの種類に関する情報が表示されます。
sparkModuleRid と sessionId は同じ一意の識別子を共有します。WARM_MODULE または ON_DEMAND_MODULE のいずれかになります。セッションがウォームモジュールキュー内のすでに初期化されたモジュールを使用したのか、新しいモジュールをリクエストして初期化プロセスを開始したのかを示します。リクエストされた環境タブには、初期化の開始前に希望された環境設定に関する情報が表示されます。
solve、file、docker のいずれかになります。Code Workbook の初期化の種類について詳しくは、環境の最適化に関するドキュメントを参照してください。profileRid になります。カスタム環境の場合は、プロファイルをカスタマイズした Workbook の workbookRid になります。解決された環境タブには、初期化の一環として使用された環境パッケージに関する情報が表示されます。これには、環境の初期化にかかった時間と、最終的にモジュールにインストールされたパッケージおよびそのバージョンが含まれます。Code Workbook のセッションロールバック機能は、リクエストされた環境ではなく過去のセッションの解決された環境を使用するため、この情報は特に重要です。
環境がどのように変化したかを理解するには、2つのセッションを比較すると役立つことがよくあります。セッション履歴ウィンドウでは、現在のセッションと任意の過去のセッションを比較できます。セッション履歴ウィンドウの右上にあるセッションを比較を選択すると、セッション履歴の比較タブにアクセスできます。
セッション比較メニューには、2つのウィンドウが横に並んで表示されます。右側には、現在のセッションの情報が表示されます。左側には、セッションリストから任意のセッションを表示して比較できます。左側で比較するセッションを切り替えるには、セッションリストから任意のセッションを選択します。ウィンドウの右上にある比較を編集を選択すると、いつでも比較表示を終了できます。左側で選択したセッションは、引き続き選択されたままになります。
利用可能な3つのタブすべてでセッションを比較できます。2つのセッションの情報を計算を比較すると、モジュールで利用可能なメモリーの変化を理解するのに役立つ場合があります。リクエストされた環境の比較は、2つのセッションの環境間で何が手動で変更されたかを理解するのに役立ちます。一方、解決された環境の比較は、2つのセッション間でインストールされたバージョンの違いを理解するのに役立つ場合があります。
以下の例では、セッション比較の各タブを使用すると、2つのセッションについて次の情報が分かります。



過去のセッションとまったく同じ設定に一時的にロールバックしたい場合があります。Code Workbook では、セッションをピン留めすることでこの操作を行えます。セッションのピン留めとは、過去のセッションと同じメタデータを使用して新しいセッションと Spark モジュールを初期化し、見かけ上同一の環境を再現することです。ピン留めされたセッションでは、過去のセッションの解決済みの情報を利用して新しいモジュールを初期化します。これは特に重要です。同じ解決済み環境を使用すれば、インストールされるパッケージが同一であることが保証されますが、同じ要求環境を使用しても保証されないためです。そのため、セッションをピン留めすると、以前動作していた環境にロールバックする効果を再現できます。ただし、初期化モードなど、一部のメタデータは過去のセッションから引き継がれません。
セッションをピン留めするには、セッション履歴ウィンドウに移動し、ピン留めするセッションを選択します。次に、パネルの右下にあるセッションをピン留めを選択します。Workbook の現在のブランチには、ピン留めされたセッションによるオーバーライドが最大24時間適用されます。バナーには、オーバーライドの残り時間と、ピン留めを解除するオプションが表示されます。この期間中、それ以降のすべてのインタラクティブ環境の初期化では、ピン留めされたセッションの情報が利用されます。期間が終了するか、セッションのピン留めを手動で解除すると、Workbook は現在設定されている環境を使用する状態に戻ります。
セッションのピン留めはデバッグを目的として設計されており、長期的に使用する本番運用向けのパイプラインで依存すべき機能ではありません。そのため、ピン留めされたセッションが影響するのは、_インタラクティブ_環境のみです。スケジュールされたビルドなど、Code Workbook インターフェースの外部で実行されるビルドは、ピン留めされたセッションによるオーバーライドの影響を受けません。セッションのピン留めは、必要に応じたトラブルシューティングや試行に用途を限定することを推奨します。それ以外では、セッション履歴機能を使用してセッション間の違いを把握し、環境定義を直接編集します。
セッションのピン留めには、いくつかの制限があります。ピン留めされたセッションは無期限には維持されず、すべてのセッションをピン留めできるわけではなく、すべての初期化がピン留めされたセッションの影響を受けるわけでもありません。セッションのピン留めを検討する際には、次の制限に注意してください。
上記の理由から、セッションのピン留めはデバッグ機能であり、長期的に使用する本番運用向けのパイプラインで依存すべき機能ではありません。
上記のセッション履歴、セッションの比較、セッションのピン留め機能は、失敗する環境のトラブルシューティングに役立ちます。特に、以前動作していた環境での失敗に対処する際に役立ちます。このような場合は、次の手順に沿って対処します。
環境は過去に動作したことがありますか?
セッションを比較機能を使用して、現在失敗しているセッションと以前成功したセッションを選択し、環境の違いを確認します。
(任意)前のステップでトラブルシューティングを行う際に、セッションのピン留め機能を使用して、まずピン留めされたバージョンの環境が動作することを確認し、より恒久的な解決策が見つかるまで Workbook の機能を一時的に利用できる状態にします。
環境が失敗する根本原因を特定したら、それに応じてプロファイルの設定を調整し、状況を恒久的に解決します。