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

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

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

にジャンプする:

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

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 がワークスペース・ファイルシステム内にある場合は現行作業ディレクトリ (CWD) に書き込むよりもパフォーマンスが向上します。 詳細については、「Databricksのどこに一時ファイルを書き込む必要がありますか?」を参照してください。

ワークスペースあたりの Git フォルダーの最大数

ワークスペースごとに最大 2,000 個の Git フォルダーを持つことができます。 さらに必要な場合は、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 フォルダーでサポートされるアセットの種類

Git フォルダーでは、特定の Databricks アセットの種類のみがサポートされます。 サポートされているアセットの種類は、シリアル化、バージョン管理、およびバッキング Git リポジトリへのプッシュを行うことができます。

現在、サポートされているアセット・タイプは次のとおりです。

資産タイプ

詳細

ファイル

ファイルはシリアル化されたデータであり、ライブラリからバイナリ、コード、画像まで、あらゆるものを含めることができます。詳細については、「ワークスペース ファイルとは」を参照してください。

ノートブック

ノートブックは、具体的にはDatabricksでサポートされているノートブックファイル形式です。 ノートブックはシリアル化されていないため、ファイルとは別の Databricks アセット タイプと見なされます。 Git フォルダーは、ファイル拡張子 ( .ipynbなど) またはファイル コンテンツ内の特別なマーカーと組み合わせたファイル拡張子 (たとえば、 .pyソース ファイルの先頭にある# Databricks notebook sourceコメント) によってノートブックを判別します。

フォルダ

フォルダーは、Git のファイルの論理グループに関するシリアル化された情報を表す Databricks 固有の構造体です。 予想どおり、Databricks Git フォルダーを表示したり、Databricks CLI を使用してアクセスしたりすると、ユーザーはこれを "フォルダー" として体験します。

クエリ (パブリック プレビュー)

Databricks SQL (DBSQL) クエリは、 ipynb ノートブック (拡張: .dbquery.ipynb) としてコミットできます。 DBSQL クエリの Git サポートには、 新しい SQL エディターを有効にする必要があります。新しい SQL エディタ機能を無効にして作成されたクエリは、Git フォルダに配置できますが、リモートリポジトリにコミットすることはできません。

Git フォルダーで現在サポートされていない Databricks アセットの種類には、次のものがあります。

Git でアセットを操作する場合は、ファイルの名前付けに関する次の制限に注意してください。

  • フォルダには、ファイル拡張子が異なっていても、同じ Git リポジトリ内の別のノートブック、ファイル、またはフォルダと同じ名前のノートブックを含めることはできません。(ソース形式のノートブックの場合、拡張機能は Python では .py 、Scala では .scala 、SQL では .sql 、R では .r です。ipynb-format ノートブックの場合、拡張子は .ipynb.) たとえば、test1.py という名前のソース形式のノートブックと test1 という名前の ipynb ノートブックを同じ Git フォルダー内で使用することはできません。これは、ソース形式の Python ノートブック ファイル (test1.py) が test1Windows としてシリアル化され、競合が発生するためです。
  • 文字 / はファイル名ではサポートされていません。 たとえば、Git フォルダに i/o.py という名前のファイルを含めることはできません。

これらのパターンを持つ名前のファイルに対して Git 操作を実行しようとすると、「Git ステータスのフェッチ中にエラーが発生しました」というメッセージが表示されます。このエラーが予期せず表示される場合は、Git リポジトリ内のアセットのファイル名を確認してください。これらの競合するパターンを持つ名前のファイルが見つかった場合は、名前を変更して操作を再試行してください。

注記

サポートされていない既存のアセットを 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でのライブラリの優先順位の詳細については、「ライブラリの優先順位Python」を参照してください。

外部のオーケストレーションツールに依存せずに、ジョブを実行する前にGitから最新バージョンのリポジトリをプルできますか?

いいえ。通常、これを Git サーバーの pre-commit フックとして統合して、ブランチ (main/prod) へのプッシュごとに本番運用リポジトリが更新されるようにすることができます。

リポジトリをエクスポートできますか?

ノートブック、フォルダー、またはリポジトリ全体をエクスポートできます。 ノートブック以外のファイルはエクスポートできません。 リポジトリ全体をエクスポートする場合、ノートブック以外のファイルは含まれません。 エクスポートするには、Databricks CLIworkspace export コマンドを使用するか、ワークスペース API を使用します。

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

Microsoft Entra ID の条件付きアクセス ポリシー (CAP) に関する問題

リポジトリを複製しようとすると、次の場合に "アクセスが拒否されました" というエラー メッセージが表示される場合があります。

  • Databricks は、Microsoft Entra ID 認証で Azure DevOps を使用するように構成されています。
  • Azure DevOps で条件付きアクセス ポリシーと Microsoft Entra ID 条件付きアクセス ポリシーを有効にしました。

これを解決するには、Databricks の IP アドレスまたはユーザーの条件付きアクセス ポリシー (CAP) に除外を追加します。

詳細については、条件付きアクセス ポリシーを参照してください。

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

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

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

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

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

いいえ。

GitフォルダはSSHをサポートしていますか?

いいえ、 HTTPSだけです。

CI/CD と MLOps

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

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

important

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

リポジトリに MLflow エクスペリメントを作成できますか?

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

Git フォルダーでは、どちらのタイプの MLflow エクスペリメントに対してもmlflow.set_experiment("/path/to/experiment")を呼び出し、ランを記録できますが、そのエクスペリメントと関連するランはソース管理に チェックインされません

ワークスペース MLflow エクスペリメント

ワークスペースMLflow エクスペリメント フォルダ DatabricksGit(Git フォルダ) に作成することはできません。複数のユーザーが別々のGitフォルダーを使用して同じMLコードで共同作業する場合は、通常のワークスペースフォルダーに作成されたMLflowエクスペリメントに実行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 ワークスペース ファイルの詳細については、「 ワークスペース ファイルとは」を参照してください。