メインコンテンツまでスキップ

Git と Databricks Git フォルダーの統合に関する制限と FAQ

Databricks Git フォルダーと Git 統合には、次のセクションで指定されている制限があります。 一般的な情報については、「 Databricks の制限」を参照してください。

にジャンプする:

Git フォルダーでサポートされている Databricks アセットの種類については、「 Git フォルダーでサポートされているアセットの種類」を参照してください。

ファイルとリポジトリの制限

Databricks では、リポジトリのサイズに制限はありません。 しかし:

  • 作業ブランチは 1 ギガバイト (GB) に制限されています。
  • 10 MB を超えるファイルは、Databricks UI で表示できません。
  • 個々のワークスペース ファイルには、個別のサイズ制限が適用されます。 詳細については、 制限事項をお読みください。

Databricks では、リポジトリで次のことを推奨しています。

  • ワークスペースのアセットとファイルの合計数が 20,000 を超えないこと。

Git 操作では、メモリ使用量は 2 GB に制限され、ディスク書き込みは 4 GB に制限されます。制限は操作ごとであるため、サイズが 5 GB の Git リポジトリを複製しようとするとエラーが発生します。ただし、1 つの操作でサイズが 3 GB の Git リポジトリを複製し、後で 2 GB を追加すると、次のプル操作は成功します。

リポジトリがこれらの制限を超えると、エラー メッセージが表示される場合があります。また、リポジトリのクローン作成時にタイムアウト エラーが表示されることもありますが、操作はバックグラウンドで完了する可能性があります。

サイズ制限より大きいリポジトリを操作するには、 スパース チェックアウトを試してください。

クラスタのシャットダウン後に保持しない一時ファイルを書き込む必要がある場合は、一時ファイルを $TEMPDIR に書き込むと、ブランチ・サイズの制限を超えないようにし、ワークスペース・ファイル・システム内の作業ディレクトリ(CWD)に書き込むよりもパフォーマンスが向上します。 詳細については、「Databricksのどこに一時ファイルを書き込む必要がありますか?」を参照してください。

ワークスペース内の Git フォルダーから削除されたファイルの回復

Git フォルダーに対するワークスペースのアクションは、ファイルの回復可能性によって異なります。一部のアクションでは 、ごみ箱 フォルダからリカバリできますが、他のアクションでは許可されません。以前にコミットされ、リモートブランチにプッシュされたファイルは、リモートGitリポジトリのGitコミット履歴を使用して復元できます。次の表に、各アクションの動作と回復可能性の概要を示します。

操作

ファイルは回復可能ですか?

ワークスペースブラウザでファイルを削除する

はい、 ごみ箱 フォルダから

Git フォルダ ダイアログで新しいファイルを破棄する

はい、 ごみ箱 フォルダから

Git フォルダダイアログで変更したファイルを破棄する

いいえ、ファイルはなくなりました

reset (hard) コミットされていないファイル変更の場合

いいえ、ファイルの変更はなくなりました

reset (hard) コミットされていない、新しく作成されたファイルの場合

いいえ、ファイルの変更はなくなりました

Git フォルダダイアログでブランチを切り替える

はい、リモートの Git リポジトリから

その他の Git 操作 (コミットやプッシュなど) を Git フォルダ ダイアログから

はい、リモートの Git リポジトリから

PATCH Repos API からの /repos/id を更新する操作

はい、リモートの Git リポジトリから

モノレポのサポート

Databricks では、 モノレポ に基づく Git フォルダーを作成しないことをお勧めします。モノレポは、多数のプロジェクトにまたがる数千のファイルを持つ、大規模な単一組織の Git リポジトリです。

よくある質問: Git フォルダーの構成

Databricks リポジトリのコンテンツはどこに保存されますか?

リポジトリの内容は、コントロール プレーンのディスクに一時的に複製されます。 Databricks ノートブック ファイルは、メイン ワークスペースのノートブックと同様に、コントロール プレーン データベースに格納されます。 ノートブック以外のファイルは、最大 30 日間ディスクに保存されます。

Git フォルダーは、オンプレミスまたはセルフホステッドの Git サーバーをサポートしていますか?

Databricks Git フォルダーは、サーバーがインターネットにアクセスできる場合、GitHub Enterprise、Bitbucket Server、Azure DevOps Server、GitLab 自己管理統合をサポートします。Git フォルダーをオンプレミスの Git サーバーと統合する方法の詳細については、「 Git フォルダーの Git プロキシ サーバー」を参照してください。

Bitbucket Server、GitHub Enterprise Server、またはインターネットにアクセスできない GitLab の自己管理型サブスクリプション インスタンスと統合するには、Databricks アカウント チームにお問い合わせください。

Git フォルダーではどの Databricks アセットの種類がサポートされていますか?

サポートされているアセットタイプの詳細については、「 Git フォルダーでサポートされているアセットタイプ」を参照してください。

Git フォルダーは .gitignore ファイルをサポートしていますか?

はい。 リポジトリにファイルを追加し、Git で追跡したくない場合は、 .gitignore ファイルを作成するか、リモート リポジトリから複製されたファイルを使用して、拡張子を含むファイル名を追加します。

.gitignore Git によってまだ追跡されていないファイルに対してのみ機能します。Git によって既に追跡されているファイルを .gitignore ファイルに追加しても、そのファイルは引き続き Git によって追跡されます。

Git フォルダは Git サブモジュールをサポートしていますか?

いいえ。 Git サブモジュールを含む リポジトリを複製することはできますが、サブモジュールは複製されません。

ソース管理

別のブランチをプルまたはチェックアウトすると、ノートブックのダッシュボードが消えるのはなぜですか?

これは、ソース フォーマット Databricks ノートブック ダッシュボード情報を保存しないため、制限です。

Git リポジトリにダッシュボードを保持するには、ノートブックの形式を .ipynb (Jupyter ノートブック形式) に変更します。デフォルトでは、 .ipynb はダッシュボードとビジュアリゼーションの定義をサポートします。視覚化データを保持するには、ノートブックを出力と共にコミットする必要があります。

ノートブック出力.ipynbコミットの詳細については、「ipynb ノートブック出力コミットの管理」を参照してください。

Git フォルダーはブランチのマージをサポートしていますか?

はい。 また、Git プロバイダーを通じて pull request を作成し、マージすることもできます。

Databricks リポジトリからブランチを削除できますか?

いいえ。ブランチを削除するには、Git プロバイダーで作業する必要があります。

Pythonの依存関係がGitフォルダに含まれている場合の優先順位は何ですか?

Git フォルダに保存された Python ライブラリは、他のフォルダに保存されたライブラリよりも優先されます。たとえば、ライブラリが Databricks コンピュートにインストールされていて、同じ名前のライブラリが Git フォルダに含まれている場合、 Git フォルダ内のライブラリがインポートされます。 Pythonでのライブラリの優先順位の詳細については、「ライブラリの優先順位Python」を参照してください。

セキュリティ、認証、トークン

Databricks Git フォルダーの内容は暗号化されていますか?

Databricks Gitフォルダの内容は、デフォルトキーを使用してDatabricksによって暗号化されます。顧客が管理するキーを使用した暗号化は、 Git 資格情報を暗号化する場合を除き、サポートされていません。

GitHub トークンは Databricks のどこにどのように保存されますか? Databricks からアクセスできるのは誰ですか?

  • 認証トークンは Databricks コントロール プレーンに格納され、Databricks の従業員は、監査された一時的な資格情報を通じてのみアクセスできます。
  • Databricks は、これらのトークンの作成と削除をログに記録しますが、その使用状況はログに記録しません。Databricks には、Databricks アプリケーションによるトークンの使用状況を監査するために使用できる Git 操作を追跡するログ記録があります。
  • GitHub Enterprise はトークンの使用状況を監査します。 他の Git サービスにも Git サーバー監査がある場合があります。

Git フォルダーはコミットの GPG 署名をサポートしていますか?

いいえ。

Git フォルダーは SSH を使用した Git 操作をサポートしていますか?

いいえ、 HTTPS プロトコルのみがサポートされています。

CI/CD と MLOps

受信した変更により、ノートブックの状態がクリアされます

ノートブックのソースコードを変更する Git 操作を行うと、セル出力、コメント、バージョン履歴、ウィジェットなど、ノートブックの状態が失われます。たとえば、ノートブックのソース コードを変更 git pull 。この場合、Databricks Git フォルダーは、変更をインポートするために既存のノートブックを上書きする必要があります。git commitpush 、または新しいブランチを作成しても、ノートブックのソース コードには影響しないため、ノートブックの状態はこれらの操作で保持されます。

important

MLflow エクスペリメントは、DBR 14.x 以前のバージョンの Git フォルダーでは機能しません。

MLflowフォルダに エクスペリメントを作成できますか?Git

MLflowエクスペリメントには、 ワークスペースノートブック の2種類があります。2 種類の MLflow エクスペリメントの詳細については、「MLflow エクスペリメントを使用してトレーニング 実行を整理する」を参照してください。

  • ワークスペース エクスペリメント: フォルダにワークスペースMLflow エクスペリメントを作成することはできません。Git代わりに、通常のワークスペース フォルダーに作成されたMLflow エクスペリメントに実行MLflowログを記録します。複数のユーザーが別々のGitフォルダーを使用して同じコードで共同作業する場合は、共有ワークスペースフォルダーに作成されたMLflowエクスペリメントに実行MLflowログを記録します。

  • ノートブック エクスペリメント : Databricks Git フォルダーにノートブック エクスペリメントを作成できます。 ノートブックを .ipynb ファイルとしてソース コントロールにチェックインすると、自動的に作成され関連付けられた MLflow エクスペリメントにMLflow実行をログに記録できます。ただし、エクスペリメントと関連する実行はソース コントロールにチェックインされません。 詳細については、「 ノートブック エクスペリメントの作成」を参照してください。

エクスペリメントでのデータ損失を防ぐMLflow

DatabricksJobs with Source code in remote repository を使用して 作成されたノートブックMLflow エクスペリメントは、一時的なストレージの場所に保存されます。これらのエクスペリメントは、ワークフローの実行後も最初は保持されますが、後で一時ストレージ内のファイルをスケジュールして削除する際に削除されるリスクがあります。 Databricks では、ワークスペース MLflow エクスペリメントと Jobs およびリモート Git ソースを使用することをお勧めします。

警告

ノートブックが含まれていないブランチに切り替えるたびに、関連付けられている MLflow エクスペリメントのデータが失われるリスクがあります。 この損失は、前のブランチが 30 日以内にアクセスされない場合、永続的になります。

30 日の有効期限が切れる前に失われたエクスペリメント データを回復するには、ノートブックの名前を元の名前に変更し、ノートブックを開いて、右側のペインで [ エクスペリメントアイコン ] をクリックすると、 mlflow.get_experiment_by_name() 関数の呼び出しがトリガーされます。 関数が戻ると、回復したエクスペリメントを確認して実行できます。 30 日後、孤立した MLflow エクスペリメントは、コンプライアンス ポリシーを満たすために消去されます GDPR 。

この状況を防ぐために、Databricks ではリポジトリ内のノートブックの名前を変更しないことをお勧めします。ノートブックの名前を変更する場合は、ノートブックの名前を変更した直後に、右側のペインにある[エクスペリメント]アイコンをクリックします。

Git 操作の進行中にノートブック ジョブがワークスペースで実行されている場合はどうなりますか?

Git 操作が進行中の任意の時点で、リポジトリ内の一部のノートブックは更新され、他のノートブックは更新されていない可能性があります。これにより、予期しない動作が発生する可能性があります。

たとえば、notebook A%run コマンドを使用して notebook Z を呼び出すとします。Git 操作中に実行中のジョブが最新バージョンの notebook Aを開始したが、notebook Z がまだ更新されていない場合、notebook A%run コマンドで古いバージョンの notebook Zが開始する可能性があります。Git 操作中、ノートブックの状態は予測できず、ジョブが失敗するか、異なるコミットから notebook Anotebook Z が実行される可能性があります。

この状況を回避するには、ワークスペース パスではなくソースとして Git プロバイダーを使用するようにジョブ タスクを構成します。詳細については、「 ジョブでの Git の使用」を参照してください。

リソース

Databricks ワークスペース ファイルの詳細については、「 ワークスペース ファイルとは」を参照してください。