はじめに
Microsoft Fabricを普段から使っていると、ノートブックやパイプライン、レイクハウスなど、さまざまな種類のアイテムが増えていきます。
開発を進めるうちにアイテム数が増えてくると、「どこに何を配置すればいいのか」「どういうフォルダー構成にすれば管理しやすいのか」と悩むことも多いのではないでしょうか。
特にFabricは、ワークスペースの分け方やシステムの用途によっても最適な構成が変わるため、これが絶対的な正解というものはないと思っています。
私自身、普段からFabricを触りながらいろいろと試行錯誤してきましたが、最近は以下のような考え方でフォルダーを整理するのが気に入っています。
今回は、あくまで私なりのフォルダー構成・運用ルールとして紹介します。
1. フォルダー構成の基本方針
まず、フォルダー構成を考えるうえで意識していることが3つあります。
① フォルダー階層はなるべく浅くする
FabricのUIでは、フォルダーを深く掘りすぎると目的のアイテムを探しにくくなります。
そのため、フォルダー階層はなるべく2~3階層以内に抑える方針です。
細かく分類しすぎるよりも、大まかな用途で分類して、必要なアイテムを見つけやすくすることを優先しています。
② フォルダー名の先頭に番号を付ける
Fabricのフォルダーは名前順で並び替えられるため、先頭に番号を付けて表示順をコントロールします。
③ アイテムの種類ではなく、処理・機能単位で分類する
個人的には、ここが一番重要だと考えています。
例えば、以下のようにアイテムの種類ごとに分類する方法もあります。
- Pipeline
- Notebook
しかし、この分類では関連するアイテムが別々のフォルダーに分かれてしまいます。
例えば、あるパイプラインがノートブックを呼び出している場合、両者が別々のフォルダーに配置されることになります。
そのため、私はアイテムの種類ではなく、処理・機能単位でまとめる方針にしています。
2. フォルダー構成の例
上記の方針を踏まえ、現在考えているフォルダー構成は以下のとおりです。
| 番号 | フォルダー名 | 用途 |
|---|---|---|
| 00 | DataStore | レイクハウス、Warehouse、SQL Databaseなど |
| 01 | DDL | DDL関連のアイテム |
| 10~79 | 各処理・機能 | 処理や機能単位で分類、GoldレイヤーならBIやAgent単位で分類 |
| 80 | Test Items | テスト用アイテム |
| 90 | Temporary | 一時作業・検証用アイテム |
00_DataStore
レイクハウス、Warehouse、SQL Databaseなどのデータストアを配置します。
データを保持するアイテムをまとめておくことで、ワークスペース内のデータの配置場所を分かりやすくします。
01_DDL
DDL関連のアイテムを配置します。
10~79:各処理・機能
処理や機能ごとにフォルダーを作成します。
番号はあえて連番にせず、将来的にフォルダーを追加できるように余白を持たせます。(あとから変えられるので連番でもいいんですが、、)
また、開発フェーズ(このフェーズは10番台を使う etc...)や処理の目的(経理系系は10番代、人事系は20番台etc..)に応じて番号帯を分けておくと、関連する処理を整理しやすくなります。
80_Test Items
単体テストや結合テストなど、テストに使用するアイテムを配置します。
例えば、以下のような用途を想定しています。
- 単体テスト用のパイプライン・ノートブック
- テストデータの初期化処理
- テスト用のサンプルアイテム
90_Temporary
一時的な検証や作業用のアイテムを配置します。
ちょっとした動作確認や調査のために作成したアイテムなど、継続的に管理する必要のないものを配置します。
このフォルダーは一時的な利用を前提とし、不要になったアイテムは必ず削除する運用とします。
変数ライブラリの配置
Git統合を利用し、開発・テスト・本番などの環境ごとにワークスペースを分けて運用している場合、変数ライブラリについては、特定の処理・機能に属するものではなく、ワークスペース全体で利用する設定情報を管理するものです。
そのため、フォルダーには格納せず、ワークスペースのルート直下に配置するようにしています。
なお、そもそもどのようなケースでGit統合を利用した方がよいのか、ワークスペースをどのように分けるべきなのかについても、需要があれば別の記事で紹介したいと思います。
興味のある方は、ぜひコメントで教えてください!
おまけ:タスクフローを使った整理方法
フォルダーでの整理以外にも、Fabricにはアイテムを整理・可視化するための機能があります。
タスクフロー(Task flows)を利用すると、データソースからBronze、Silver、Goldへと続く処理の流れを、ワークスペース上で視覚的に整理できます。
各タスクに関連するFabricアイテムを割り当てることで、処理単位でアイテムを確認したり、タスクを選択してアイテム一覧を絞り込んだりできます。
このように、フォルダーだけで細かく分類しようとするのではなく、
- フォルダー:処理・機能単位でアイテムを整理する
- タスクフロー:処理全体の構成や流れを視覚的に把握する
といった使い分けもおすすめです。
フォルダー構成に悩んでいる方は、こういった機能も組み合わせてみると、ワークスペースをより使いやすくできると思います。
最後に
今回紹介したフォルダー構成は、あくまで私なりにFabricを利用する中で整理しやすいと感じている構成です。
皆さんはFabricのワークスペース内のアイテムをどのように整理していますか?ぜひコメントで教えてください!
FabricやDatabricksについて学べる勉強会を毎月開催!
Fabricの技術情報や実践的な内容は、毎月開催している勉強会で発信しています!
▽勉強会の申し込みはこちら!
→次回イベント欄から「Microsoft Data Analytics Day(Online)」または「OneLake Deep Dive」ページ移動し、申し込みをお願いします!




