Databricks ReposがGA(Generally Available)になりました

[Databricks Repos Provides Repository\-level Git Integration With Popular Git Providers \- The Databricks Blog](https://databricks.com/blog/2021/10/07/databricks-repos-is-now-generally-available.html)の翻訳です。

Databricks Reposのパブリックプレビュー以来、数千のDatabricksユーザーの皆様がDatabricks Reposを導入いただいており、皆様の開発、プロダクションワークフローを標準化しています。本日、[Databricks Repos](https://qiita.com/taka_yayoi/items/b89f199ff0d3a4c16140)のGAを発表できることを嬉しく思っています。

Databricks Reposはデータチームが常に抱えている課題を解決するために開発されました。データエンジニア、データサイエンティストが使用しているツールの多くは、Gitのバージョン管理システムとの連携が貧弱、あるいは全く存在しないため、単にコードをレビュー、コミットするためにも、数多くのファイル、ステップ、UIを行ったり来たりする必要がありました。これは時間の浪費であるだけでなく、エラーが発生しやすいものです。

Reposは、Databricksと著名なGitプロバイダーとを直接リポジトリレベルでインテグレーションすることで、データの実践者は容易に新規のGitリポジトリを作成したり、既存リポジトリをクローンし、Gitオペレーションを実行し、開発のベストプラクティスに従うことを可能にします。

Databricks Reposによって、皆様がGitベース開発のワークフローを活用できるように、ブランチの管理、リモートの変更のプル、コミット前の変更点の確認など馴染みのあるGitの機能にアクセスすることができます。さらに、ReposはGithub、Bitbucket、Gitlab、Microsoft Azure DevOpsのような幅広いGitプロバイダーをサポートしており、CI/CDシステムとインテグレーションするための一連の[API](https://docs.databricks.com/dev-tools/api/latest/repos.html)も提供しています。

# 新機能: Files in Repos

また、我々は皆様がDatabricks上で、Pythonソースコード、ライブラリファイル、設定ファイル、環境設定ファイル、小規模のデータファイルなど、ノートブックファイル以外のファイルに対して作業できるようにする新機能を発表できることを嬉しく思っています。Files in Reposと呼ばれるこの機能によって、コードの再利用、環境管理、デプロイメントの自動化が容易になります。ユーザーはファイルシステムと同じように、DatabricksのRepoのファイルに対して、インポート(クローン)、読み込み、編集が可能になります。この機能は[パブリックプレビュー](https://docs.databricks.com/repos.html)として利用できるようになっています。
![repos-ga-blog-img-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/1cfffc2e-341e-03ab-d04a-a06b126cd384.png)
*図1. Databricks Reposにおいてあらゆるタイプのファイルを操作できます。Gitオペレーションや手動によるアップロードによってDatabricks Reposにファイルを追加できます。*

Files in reposは、シンプルかつ標準に準拠した開発体験を提供します。一般的な開発ワークフローにおいてどのように役立つのかを見ていきましょう。

# Files in Reposのメリット

## コード再利用が容易に

![repos-blog-2-rev-1024x309.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/98035640-3857-0202-4631-6ce3a9c6ac52.png)
*図2. pythonモジュールをRepoにインポート*

PythonとRモジュールをReposに配置することができ、当該Repoのノートブックは`import`文を用いて関数を参照することができます。参照するPython関数それぞれに対して新規ノートブックを作成したり、モジュールをパッケージング(pythonにおけるwhlなど)してクラスターライブラリとしてインストールする必要はありません。Files in Reposはこれら全てのステップ(さらに多くのステップ)を1行のコードで実現します。

## 環境管理とプロダクションデプロイメントの自動化

- **コードと一緒に環境設定を格納:** Repoにrequirements.txtのような環境設定ファイルを格納することができ、`%pip install -r requirements.txt`で必要なライブラリ依存関係をインストールすることができます。これによって、手動による環境管理の重荷を軽減し、エラーや不一致を排除します。
- **デプロイメントの自動化:** RepoにジョブやクラスターなどのDatabricksのリソース設定を格納することができますので、これらのリソースのデプロイメントを自動化でき、プロダクションの環境を厳密にコントロールすることができます。
- **設定ファイルのバージョン管理:** 環境設定、リソース設定に加え、お使いの設定ファイルにはアルゴリズムのパラメーター、ビジネスロジックに対する入力データなどが含まれるケースがあります。Reposを用いることで、常にファイルの適切なバージョンを使用していることを保証でき、エラーを排除するために`main`ブランチや特定のタグを用いることができます。
![repos.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/fe0e30c3-c065-889b-f5c7-c1cc66a2191a.png)
*図3. Reposはあらゆるタイプのファイルのバージョン管理を実現します*

まとめると、Databricksを用いることで、データチームはコードのバージョン管理やプロダクション移行のためのアドホックなプロセスを構築する必要はなくなります。Databricks ReposはデータチームのGitオペレーションを自動化し、企業で確立されたCI/CDパイプラインとの密連携を実現します。新機能であるFile in Reposによって、コードの可搬性のためにライブラリをインポートしたり、環境設定ファイルをバージョン管理したり、小規模なデータファイルを編集することが可能になります。

# 使ってみる

ReposはGAとなっています。使い始めるには、サイドバーの`Repos`ボタンあるいはRepos APIにアクセスしてください。

Files in Repos機能はパブリックプレビューであり、Databricksワークスペースで有効化することができます！有効化するには、Adminパネル -> Advancedに移動し、"Files in Repos"の隣にある"Enable"をクリックしてください。詳細は[ドキュメント](https://qiita.com/taka_yayoi/items/b89f199ff0d3a4c16140#databricks-repo%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8B%E9%9D%9E%E3%83%8E%E3%83%BC%E3%83%88%E3%83%96%E3%83%83%E3%82%AF%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E4%BD%9C%E6%A5%AD)をご覧ください。
![repos-ga-img-4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/1c313983-dbf6-8a37-79d0-ad6221a4514a.png)

MLライフサイクルのそれぞれのステップを自動化することで、どのようにDatabricksがデータチームによる開発をシンプルなものにしているのかに関しては、DatabricksアーキテクトのRafi Kuralisnikによる[オンデマンドウェビナー](https://databricks.com/p/webinar/automating-the-ml-lifecycle-with-databricks-machine-learning)をご覧ください。

### Databricks 無料トライアル

[Databricks 無料トライアル](https://databricks.com/jp/try-databricks)