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

Databricks Git フォルダーと Git の統合には、次の各セクションに記載されている制限があります。 一般的な情報については、Databricks の制限をご覧ください。

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

Azure Databricks には、リポジトリのサイズに適用される制限はありません。 ただし

  • 作業ブランチは 500 メガバイト (MB) に制限されています。
  • Azure Databricks UI では、10 MB を超えるファイルを表示できません。
  • 個々のワークスペース ファイルには、個別のサイズ制限が適用されます。 詳細については、「制限」を参照してください。

Databricks では、リポジトリについて次のことが推奨されています。

  • すべてのファイルの合計数が 10,000 を超えない。
  • ノートブックの合計数が 5,000 を超えない。

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

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

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

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

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

ワークスペースあたり最大 2,000 個の Git フォルダーを使用できます。 さらに必要な場合は、Databricks サポートにお問い合わせください。

Monorepo のサポート

Databricks は、monorepo をベースとする Git フォルダーを作成しないことを推奨しています。ここで、monorepo とは多数のプロジェクトにわたる何千ものファイルを含む大規模な単一組織の Git リポジトリです。

Git フォルダーの構成

Azure Databricks リポジトリの内容はどこに格納されますか?

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

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

サーバーがインターネットでアクセス可能な場合、Databricks Git フォルダーは、GitHub Enterprise、Bitbucket サーバー、Azure DevOps Server、GitLab 自己管理型統合をサポートしています。 Git フォルダーとオンプレミスの Git サーバーとの統合の詳細については、Git フォルダー用の Git Proxy サーバーに関するページを参照してください。

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

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

サポートされている資産の種類の詳細については、「Databricks Git フォルダーでファイル資産を管理する」を参照してください。

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

はい。 リポジトリに追加したファイルが、Git によって追跡されないようにしたい場合は、.gitignore ファイルを作成するか、リモート リポジトリからクローンしたものを使用して、拡張子を含むファイル名を追加します。

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

ユーザー フォルダーではない最上位フォルダーを作成できますか?

はい。管理者は、深さ 1 のレベルに最上位フォルダーを作成できます。 Git フォルダーでは追加のフォルダー レベルはサポートされていません。

Git フォルダーでは Git のサブモジュールはサポートされていますか?

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

Git フォルダーは Azure Data Factory (ADF) でサポートされていますか?

はい。

ソース管理

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

これは、Azure Databricks ノートブックのソース ファイルにノートブック ダッシュボード情報が格納されないことに起因する、現時点における制限です。

Git リポジトリにダッシュボードを保持する場合は、ノートブックの形式を .ipynb (Jupyter ノートブック形式) に変更してください。 既定では、.ipynb はダッシュボードと視覚化の定義がサポートされています。 グラフ データ (データ ポイント) を保持する場合は、出力と共にノートブックをコミットする必要があります。

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

Git フォルダーではブランチのマージがサポートされていますか?

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

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

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

ライブラリがクラスターにインストールされていて、同じ名前のライブラリがリポジトリ内のフォルダーに含まれている場合、どのライブラリがインポートされますか?

リポジトリのライブラリがインポートされます。 Python でのライブラリの優先順位の詳細については、「Python ライブラリの優先順位」を参照してください。

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

いいえ。 通常、これを Git サーバー上の事前コミットとして統合し、ブランチ (メイン/運用) へのすべてのプッシュで運用リポジトリを更新することができます。

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

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

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

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

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

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

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

詳しくは、条件付きアクセスポリシーに関するページをご覧ください。

Azure AD トークンを含む許可リスト

Azure DevOps での認証に Azure Active Directory (AAD) を使用する場合、既定の許可リストでは Git URL が次のように制限されます:

  • dev.azure.com
  • visualstudio.com

詳細については、許可リストでリモート リポジトリの使用を制限するを参照してください。

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

Azure Databricks Git フォルダーの内容は、既定のキーを使用して Azure Databricks により暗号化されます。 Git 資格情報を暗号化する場合を除き、カスタマー マネージド キーを使用した暗号化はサポートされていません。

GitHub トークンはどのようにして、Azure Databricks 内のどこに格納されますか? 誰が Azure Databricks からアクセスできますか?

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

Git フォルダーではコミットの GPG 署名がサポートされていますか?

いいえ。

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

いいえ、HTTPSのみ。

Azure Databricks を別のテナントの Azure DevOps リポジトリに接続するときのエラー

別のテナントの DevOps に接続しようとすると、Unable to parse credentials from Azure Active Directory account というメッセージが表示されることがあります。 Azure DevOps プロジェクトが Azure Databricks とは異なる Microsoft Entra ID テナントにある場合は、Azure DevOps からのアクセス トークンを使用する必要があります。 「DevOps トークンを使用した Azure DevOps への接続」を参照してください。

CI/CD と MLOps

受信した変更によってノートブックの状態がクリアされる

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

重要

MLflow 実験は、DBR 14.x 以下のバージョンの Git フォルダーでは機能しません。

リポジトリに MLflow 実験を作成できますか?

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

Git フォルダーでは、どちらの種類の MLflow 実験でも mlflow.set_experiment("/path/to/experiment") を呼び出し、その実験の実行にログを記録できますが、その実験と関連する実行はソース管理にはチェックインされません

ワークスペース MLflow 実験

Databricks Git フォルダー (Git フォルダー) にワークスペース MLflow 実験を作成することはできません。 複数のユーザーが個別の Git フォルダーを使用して同じ ML コードで共同作業を行う場合、MLflow の実行は、通常のワークスペース フォルダーに作成された MLflow 実験に記録します。

ノートブック MLflow 実験

Databricks Git フォルダーにノートブック実験を作成できます。 ノートブックを .ipynb ファイルとしてソース管理にチェックインすると、自動的に作成され関連付けられた MLflow 実験に MLflow 実行を記録できます。 詳細については、「ノートブック実験の作成」をご覧ください。

MLflow 実験でデータ損失を防止する

Databricks ジョブをリモート リポジトリ内のソース コードと共に使用して作成されたノートブック MLflow 実験は、一時的保存場所に格納されます。 これらの実験はワークフローの実行後も最初は保持されますが、後で一時保存場所内のファイルのスケジュールされた削除中に削除される危険があります。 Databricks では、ワークスペース MLflow 実験を、ジョブおよびリモート Git ソースと共に使用することをお勧めします。

警告

ノートブックを含まないブランチに切り替えると、関連する MLflow 実験データが失われるリスクがあります。 この損失は、30 日以内に以前のブランチにアクセスしなかった場合に永続的になります。

30 日間の有効期限が切れる前に失われた実験データを復旧するには、ノートブックの名前を元の名前に戻し、ノートブックを開き、右側ペインの「実験」アイコンをクリックする (これは mlflow.get_experiment_by_name() API を効果的に呼び出すことにもなります) ことで、復旧された実験と実行を確認できます。 30 日後、孤児となった MLflow 実験は、GDPR コンプライアンス ポリシーを満たすために消去されます。

このような事態を防ぐため、Databricks では Repos 内のノートブック名の変更をすべて回避するか、ノートブック名を変更した直後に右側ペインの「実験」アイコンをクリックすることをお勧めします。

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

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

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

この状況が発生しないようにするには、代わりに Git ベースのジョブ (ソースがワークスペース パスではく Git プロバイダーのジョブ) を使用します。 詳細については、「Azure Databricks ジョブでバージョン管理されたソース コードを使う」をご覧ください。

リソース

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