DLTのマルチファイルエディタを用いたETLパイプラインの開発およびデバッグ
ベータ版
この機能は、プレミアムプランの ベータ版 です。他のすべてのプランでは、この機能は プライベート プレビュー段階です。プライベート プレビューで試すには、Databricks の連絡先にお問い合わせください。
この記事では、DLT のマルチファイル エディターを使用して ETL (抽出、変換、読み込み) パイプラインを開発およびデバッグする方法について説明します。マルチファイルエディタでは、パイプラインが一連のファイルとしてパイプラインアセットブラウザに表示されます。ファイルを編集し、パイプラインの構成と 1 つの場所に含めるファイルを制御できます。
DLTで 単一のノートブックを使用したデフォルトの開発エクスペリエンスについては、DLTのノートブックを使用したETL パイプラインの開発とデバッグを参照してください。
マルチファイルエディタの概要
ETL パイプラインのマルチファイルエディタには、次の機能があります。
- パイプラインアセットブラウザ: パイプラインアセットを作成、削除、名前変更、整理します。
- タブ付きのマルチファイル コード エディター : パイプラインに関連付けられている複数のコード ファイルに対して作業します。
- パイプライン固有のツールバー : パイプライン構成 を有効にし、 パイプライン レベルの実行アクションがあります。
- 対話型の有向非巡回グラフ (DAG): テーブルの概要を把握し、データ プレビューの下部バーを開き、その他のテーブル関連のアクションを実行します。
- データのプレビュー: ストリーミングテーブルとマテリアライズドビューのデータを検査します。
- テーブルレベルの実行の知見: パイプライン内のすべてのテーブルまたは 1 つのテーブルの実行の知見を取得します。 本知見は、最新のパイプライン実行を参照しています。
- エラー トレイ: この機能は、パイプライン内のすべてのファイルのエラーを要約し、特定のファイル内でエラーが発生した場所に移動できます。これは、コードに添付されたエラーインジケータを補完します。
- 選択的実行: コード エディターには、 ファイルの実行 アクションまたは 1 つのテーブルを使用して現在のファイル内のテーブルのみを更新する機能など、段階的な開発のための機能があります。
- デフォルト パイプライン フォルダ構造: 新しいパイプラインには、パイプラインの開始点として使用できる定義済みのフォルダ構造とサンプル コードが含まれています。
- パイプライン作成の簡略化: 名前、カタログ、スキーマを指定し、デフォルトによってテーブルを作成し、パイプラインはデフォルトの設定を使用して作成します。 後でパイプライン エディターのツール バーから [設定] を調整できます。
マルチファイルエディタを有効にする
Private Preview でこの機能を使用する場合は、最初に パイプライン マルチファイル開発者エクスペリエンス を有効にする必要があります。詳細については、「 Databricks プレビューの管理 」を参照してください。
ETL パイプラインのマルチファイルエディタは、複数の方法で有効にできます。
-
新しいETL パイプライン を作成する場合は、DLT ETL パイプライン エディター のトグルを使用して、 でマルチファイル エディターを有効にします。
パイプラインの詳細設定ページは、マルチファイル エディターを初めて有効にするときに使用されます。簡略化されたパイプライン作成ウィンドウは、次に新しいパイプラインを作成するときに使用されます。
-
既存のパイプラインの場合は、パイプラインで使用されているノートブックを開き、ヘッダーで ETL パイプライン エディタ のトグルを有効にします。 また、パイプライン モニタリング ページに移動し、[ 設定 ] をクリックしてマルチファイル エディターを有効にすることもできます。
ETL パイプライン エディタ のトグルを有効にすると、すべての ETL パイプラインでデフォルトによるマルチファイル エディタが使用されます。ETL パイプラインのマルチファイルエディタは、エディタからオンとオフを切り替えることができます。
または、ユーザー設定からマルチファイルエディタを有効にすることもできます。
- ワークスペースの右上にある ユーザーバッジ をクリックし、[ 設定 と 開発者 ]をクリックします。
- ノートブックとファイルのタブ を有効にします。
- ETL パイプライン マルチファイル エディター を有効にします。
新しい ETL パイプラインを作成する
マルチファイル エディターを使用して新しい ETL パイプラインを作成するには、次の手順を実行します。
-
サイドバーの上部にある 新規 と ETL パイプライン をクリックします。
-
[ 名前 ] に、パイプラインの一意の名前を入力します。
-
既存の デフォルトカタログ と、既存または新しい デフォルトスキーマ を選択します。
デフォルトの カタログ とデフォルトの スキーマ は、データセットの読み取りまたは書き込みが行われる場所です。詳細については、Databricksのデータベース・オブジェクトを参照してください。
-
サンプル コードの言語 として Python または SQL を選択します。
ETL パイプラインには、SQL と Python の両方のソースコードファイルを含めることができます。新しいパイプラインを作成し、 サンプル コードの言語 を選択する場合、言語はデフォルトによってパイプラインに含まれるサンプル コードのみになります。
-
作成 をクリックします。
ETL パイプラインは、次のデフォルト設定で作成されます。
これらの設定は、パイプライン ツール バーから調整するか、 [ 高度なパイプラインの作成 ] を選択して好みの設定を指定できます。詳細については、「DLT パイプラインの構成」を参照してください。
または、ワークスペース ブラウザーから ETL パイプラインを作成することもできます。
- 左側のパネルで ワークスペース をクリックします。
- 右上隅の「 作成 」をクリックし、「 ETL パイプライン 」をクリックします。
ETL パイプラインは、ジョブとパイプラインのページから作成することもできます。
- 左側のパネルで ジョブ をクリックします。
- ジョブとパイプライン タブをクリックします。
- 右上隅の「 作成 」をクリックし、「 ETL パイプライン 」をクリックします。
既存の ETL パイプラインを開く
既存の ETL パイプラインをマルチファイル エディターで開くには、次の手順を実行します。
- サイドパネルの ワークスペース をクリックします。
- パイプラインのソース コード ファイルを含むフォルダーに移動します。
- ソース コード ファイルをクリックして、エディターでパイプラインを開きます。
次の方法で既存の ETL パイプラインを開くこともできます。
- パイプラインのソースコードとして設定されたソースコードファイルを、エディタの横に表示されるワークスペースブラウザのサイドバーから開きます。
- 左側のサイドバーの [最近] ページで、パイプラインまたはパイプラインのソース コードとして設定されたファイルを開きます。
- パイプライン モニタリング ページで、[ パイプラインの編集 ] をクリックします。
- 左側のサイドバーの ジョブ実行 ページで、 ジョブとパイプライン タブをクリックし、ケバブ メニューと パイプラインの編集 をクリックします。
- 新しいジョブを作成してパイプライン タスクを追加する場合、 パイプライン でパイプラインを選択するときに 新しいタブで開く
をクリックできます。
パイプラインアセットブラウザ
マルチファイル パイプライン エディタには、ワークスペース ブラウザ サイドバー用のパイプライン アセット ブラウザ と呼ばれる特別なモードがあり、デフォルトによって、パネルをパイプラインにフォーカスします。 次の 2 つのタブがあります。
- パイプライン : ここでは、パイプラインに関連付けられているすべてのファイルを見つけることができます。 作成、削除、名前の変更、およびフォルダへの整理を行うことができます。
- すべてのファイル : 他のすべてのワークスペース資産は、ここで使用できます。
パイプラインには、次の種類のファイルを含めることができます。
- ソース コード ファイル: これらのファイルは、パイプラインのソース コード定義の一部であり、[ 設定 ] で確認できます。 Databricks では、常にソース コード ファイルを パイプラインのルート フォルダー内に格納することをお勧めします。そうしないと、ブラウザの下部にある 外部ファイル セクションに表示され、機能セットがあまり豊富になりません。
- 非ソース コード ファイル: これらのファイルはパイプラインのルート フォルダー内に格納されますが、パイプラインのソース コード定義の一部ではありません。
パイプラインのファイルとフォルダを管理するには、 パイプライン タブの下にあるパイプラインアセットブラウザを使用する必要があります。 これにより、パイプラインの設定が正しく更新されます。ワークスペース ブラウザーまたは すべてのファイル タブからファイルやフォルダーを移動または名前変更すると、パイプライン構成が中断されるため、 これを 設定 で手動で解決する必要があります。
ルートフォルダ
パイプライン アセット ブラウザーは、パイプラインのルート フォルダーに固定されています。新しいパイプラインを作成すると、パイプラインのルートフォルダが ユーザー ホームフォルダーに作成され、パイプライン名と同じ名前が付けられます。
ルート フォルダーは、パイプライン アセット ブラウザーで変更できます。これは、パイプラインに Git フォルダーを使用する場合に便利です。
- ルートフォルダの [
] をクリックします。
- [ 新しいルートフォルダの設定 ] をクリックします。
- パイプライン ルート フォルダ で
をクリックし、別のフォルダをパイプライン ルート フォルダとして選択します。
- 保存 をクリックします。
ルートフォルダの で、[ ルートフォルダの名前を変更 ]をクリックしてフォルダ名を変更することもできます。ここでは、[ ルートフォルダを移動 ]をクリックして、ルートフォルダをGitフォルダなどに移動することもできます。
設定でパイプラインのルートフォルダを変更することもできます。
- 設定 をクリックします。
- コードアセット で、 パスの構成 をクリックします。
- [
] をクリックして、 パイプライン ルート フォルダー の下のフォルダーを変更します。
- 保存 をクリックします。
パイプラインのルートフォルダを変更すると、以前のルートフォルダ内のファイルが外部ファイルとして表示されるようになるため、パイプラインアセットブラウザに表示されるファイルリストが影響を受けます。
ルート フォルダーがない既存のパイプライン
DLTの 1 つのノートブックを使用してデフォルト開発エクスペリエンスで作成された既存のパイプラインには、ルート フォルダーが構成されません。次の手順に従って、既存のパイプラインのルート フォルダーを構成します。
- パイプラインアセットブラウザで、 設定 をクリックします。
- [
] をクリックして、 パイプライン ルート フォルダー の下のルート フォルダーを選択します。
- 保存 をクリックします。
デフォルトのフォルダ構造
新しいパイプラインを作成すると、デフォルトのフォルダ構造が作成されます。これは、以下で説明するように、パイプラインのソース コード ファイルと非ソース コード ファイルを整理するための推奨される構造です。
このフォルダ構造には、少数のサンプル・コード・ファイルが作成されます。
フォルダ名 | これらの種類のファイルの推奨場所 |
---|---|
| パイプラインのすべてのフォルダーとファイルを含むルート フォルダー。 |
| 非ソース コード ファイル (探索的データ分析に使用されるノートブック、クエリ、コード ファイルなど)。 |
| Python や SQL コードファイルなどのソースコードファイル(テーブル定義を含む)。 |
| 他のコードファイルからインポートできるPythonモジュールを含む非ソースコードファイル。サンプル コードの言語として SQL を選択した場合、このフォルダーは作成されません。 |
フォルダ名を変更したり、ワークフローに合わせて構造を変更したりできます。新しいソース コード フォルダーを追加するには、次の手順を実行します。
- パイプラインアセットブラウザで 追加 をクリックします。
- パイプライン ソース コード フォルダの作成 をクリックします。
- フォルダ名を入力し、[ 作成 ]をクリックします。
ソースコードファイル
ソース コード ファイルは、パイプラインのソース コード定義の一部です。 パイプラインを実行すると、これらのファイルが評価されます。ソースコード定義の一部であるファイルとフォルダには、ミニパイプラインアイコンが重ね合わされた特別なアイコンがあります。
新しいソース コード ファイルを追加するには、次の手順を実行します。
- パイプラインアセットブラウザで 追加 をクリックします。
- 変換 または データソース をクリックします。
- ファイルの 名前 を入力し、 言語 として Python または SQL を選択します。
- 作成 をクリックします。
また、パイプラインアセットブラウザの任意のフォルダの [ ] をクリックして、ソースコードファイルを追加することもできます。
ソース コード用の transformations
フォルダーは、新しいパイプラインを作成するときに デフォルトで作成されます。 データソースファイルを追加すると、 data_sources
フォルダが存在しない場合は作成されます。
フォルダ名 | 説明 |
---|---|
| このフォルダは、パイプライン テーブル定義を含む Python や SQL コード ファイルなど、パイプライン ソース コードに推奨される場所です。このフォルダは、新しいパイプラインを作成するときにデフォルトで作成されます。 |
| このフォルダは、ビューの作成やクラウドファイルからのデータの読み込みなど、ソースデータセットの読み取りに関連するコードに推奨される場所です。Spark 構成パラメーターまたは Databricks アセット バンドル (DAB) と組み合わせて、さまざまな条件に応じてパイプラインの読み取り元を変更できます。たとえば、DAB は、それぞれ |
非ソース コード ファイル
ソース コード ファイル以外のファイルは、パイプラインのルート フォルダー内に格納されますが、パイプラインのソース コード定義の一部ではありません。これらのファイルは、パイプラインの実行時には評価されません。ソース コード ファイル以外のファイルを 外部ファイルにすることはできません。
これは、ソース コードと共に保存するパイプラインでの作業に関連するファイルに使用できます。例えば:
- パイプラインのライフサイクル外で非 DLT コンピュートで実行されるアドホック探索に使用するノートブック。
- Python モジュールは、これらのモジュールをソース コード ファイル内に明示的にインポートしない限り、ソース コードで評価されません。
新しい非ソース コード ファイルを追加するには、次の手順を実行します。
- パイプラインアセットブラウザで 追加 をクリックします。
- [Exploration] または [Utility] をクリックします。
- ファイルの 名前 を入力します。
- 作成 をクリックします。
また、パイプラインのルート フォルダまたはソース コード ファイル以外の [ ] をクリックして、ソース コード ファイル以外のファイルをフォルダに追加することもできます。
新しいパイプラインを作成すると、ソース以外のコード ファイル用の次のフォルダーがデフォルトによって作成されます。
フォルダ名 | 説明 |
---|---|
| このフォルダは、ノートブック、クエリ、ダッシュボード、およびその他のファイルの場所として推奨され、パイプラインの実行ライフサイクルの外部で通常行うように、DLT コンピュート以外のファイルで実行します。 重要: これらはパイプラインのソースコードとして追加しないでください。パイプラインでは、これらのファイルが任意の非 DLT コードをカバーする可能性があるため、エラーが発生する可能性があります。 |
| このフォルダは、親フォルダがルート フォルダの下に階層的である限り、 |
ルート フォルダーの外部にある Python モジュールをインポートすることもできますが、その場合は、Python コード内の sys.path
にフォルダー パスを追加する必要があります。
import sys, os
sys.path.append(os.path.abspath('<alternate_path_for_utilities>/utilities'))
from utils import \*
外部ファイル
パイプライン ブラウザーの 外部ファイル セクションには、ルート フォルダーの外部にあるソース コード ファイルが表示されます。
外部ファイルをルート フォルダ ( transformations
フォルダなど) に移動するには、次の手順を実行します。
- アセットブラウザでファイルの
をクリックし、 移動 をクリックします。
- ファイルの移動先のフォルダを選択し、 移動 をクリックします。
複数のパイプラインに関連付けられたファイル
バッジは、ファイルが複数のパイプラインに関連付けられている場合、ファイルのヘッダーに表示されます。関連付けられたパイプラインの数があり、他のパイプラインに切り替えることができます。
[すべてのファイル] セクション
[パイプライン] セクションに加えて、[ すべてのファイル ] セクションがあり、ワークスペース内の任意のファイルを開くことができます。ここでは、次のことができます。
- ルートフォルダ外のファイルをタブで開くには、マルチファイルエディタを離れることなく行います。
- 別のパイプラインのソース コード ファイルに移動して開き、エディターをこの 2 番目のパイプラインにフォーカスします。
- パイプラインのルート フォルダーにファイルを移動します。
- ルート フォルダの外部にあるファイルをパイプラインのソース コード定義に含めます。
パイプライン コードの実行
パイプラインコードを実行するには、次の 3 つのオプションがあります。
-
パイプライン内のすべてのソース コード ファイルを実行: パイプラインの実行 または テーブルのフルリフレッシュによるパイプライン実行 をクリックして、パイプライン ソース コードとして定義されているすべてのファイルのすべてのテーブル定義を実行します。
ドライラン をクリックして、データを更新せずにパイプラインを検証することもできます。
-
1 つのファイルでコードを実行する: [ 実行ファイル ] または [ 完全なテーブル更新を含む実行ファイル ] をクリックして、現在のファイル内のすべてのテーブル定義を実行します。
-
1 つのテーブルのコードを実行する: ソース コード ファイル内のテーブル定義の テーブルの実行
をクリックし、 テーブルの更新 または テーブルのフルリフレッシュ をクリックします。
有向非巡回グラフ (DAG)
パイプライン内のすべてのソース コード ファイルを実行または検証すると、有向非巡回グラフ (DAG) が表示されます。グラフには、テーブルの依存関係グラフが表示されます。各ノードには、パイプラインのライフサイクルに沿って、検証済み、実行中、エラーなど、さまざまな状態があります。
グラフのオンとオフを切り替えるには、右側のパネルにあるグラフアイコンをクリックします。向きを垂直または水平に変更することもできます。
ノードをクリックすると、 データのプレビュー とテーブル定義が表示されます。ファイルを編集すると、そのファイルで定義されているテーブルがグラフで強調表示されます。
データプレビュー
データ プレビュー セクションには、選択したテーブルのサンプル データが表示されます。
有向非巡回グラフ (DAG) のノードをクリックすると、テーブルのデータのプレビューが表示されます。
テーブルが選択されていない場合は、 テーブル セクションに移動し、 データ プレビュー の表示 をクリックします。テーブルを選択した場合は、[ すべてのテーブル ] をクリックしてすべてのテーブルに戻ります。
処理に対する洞察
最新のパイプライン更新に関するテーブル実行の知見は、エディタ下部のパネルで確認できます。
パネル | 説明 |
---|---|
テーブル | すべてのテーブルを、そのステータスとメトリクスとともに一覧表示します。1 つのテーブルを選択すると、そのテーブルのメトリクスとパフォーマンス、およびデータプレビューのタブが表示されます。 |
パフォーマンス | このパイプライン内のすべてのフローのクエリ履歴とプロファイル。実行中および実行後に、実行メトリクスと詳細なクエリプランにアクセスできます。詳細については、DLT パイプラインのクエリ履歴へのアクセスを参照してください。 |
問題 | 簡略化されたエラーと警告の表示。このトレイからイベント ログに移動し、エントリをクリックして詳細を表示し、エラーが発生したコード内の場所に移動できます。エラーが現在表示されているファイル以外のファイルにある場合は、エラーが発生しているファイルにリダイレクトされます。 [ 詳細の表示 ] をクリックして、対応するイベント ログ エントリを表示し、完全な詳細を確認します。[ ログの表示 ] をクリックして、完全なイベント ログを表示します。 コードに添付されたエラー インジケーターは、コードの特定の部分に関連するエラーに対して表示されます。詳細を表示するには、 エラー アイコンをクリックするか、赤い線にカーソルを合わせます。詳細情報を含むポップアップが表示されます。その後、[ クイック修正 ] をクリックして、エラーのトラブルシューティングを行うための一連のアクションを表示できます。 |
イベントログ | 最後のパイプライン実行中にトリガーされたすべてのイベント。[ ログの表示 ] をクリックするか、コードに添付されたエラーがある場合は [ ログで開く ] をクリックして、このパネルをナビゲートします。 |
パイプライン設定
パイプライン設定パネルにアクセスするには、ツールバーの 設定 をクリックするか、パイプラインアセットブラウザのミニカードで [ ] をクリックします。
制限事項と既知の問題
DLT の ETL パイプライン複数行エディターに関する次の制限事項と既知の問題を参照してください。
-
explorations
フォルダまたはノートブック内のファイルを開くことから開始すると、これらのファイルまたはノートブックはパイプライン ソース コード定義の一部ではないため、ワークスペース ブラウザのサイドバーはパイプラインにフォーカスしません。- ワークスペース ブラウザーでパイプライン フォーカス モードに入るには、パイプラインに関連付けられているファイルを開きます。
-
データ プレビューは、通常のビューではサポートされていません。
-
通知はエディターページで定義できません。[詳細設定] セクションの下にある従来の設定ページのリンクを使用します。
-
複数テーブルの更新は、パイプライン モニタリング ページからのみ実行できます。 パイプライン ブラウザーのミニカードを使用して、そのページに移動します。
-
実行 テーブル
コード内の行の折り返しにより、正しくない位置に表示されることがあります。
-
%pip install
は、ファイルからはサポートされていません (新しいエディターのデフォルトのアセットタイプ)。パイプラインのソース コード定義を使用すると、ノートブックから%pip install
を実行できます。 設定 を使用してノートブックを追加します。
FAQ
-
なぜソースコードにノートブックではなくファイルを使用するのですか?
ノートブックのセルベースの実行はDLTと互換性がありませんでした。そのため、機能をオフにしたり、動作を変更したりする必要があり、混乱を招いていました。
ETL パイプラインのマルチファイルエディタでは、ファイルエディタは DLT のファーストクラスエディタの基盤として使用されます。 テーブル の実行
などの機能は、馴染みのある機能を異なる挙動で上書きするのではなく、明示的にDLTを対象としています。
-
ノートブックをソースコードとして使用できますか?
はい、できます。ただし、 テーブルの実行
や ファイルの実行 などの一部の機能は表示されません。
ノートブックを使用する既存のパイプラインがある場合でも、新しいエディターで引き続き機能します。ただし、Databricks では、新しいパイプラインのファイルに切り替えることをお勧めします。
-
新しく作成したパイプラインに既存のコードを追加するにはどうすればよいですか?
既存のソース コード ファイルを新しいパイプラインに追加できます。既存のファイルを含むフォルダを追加するには、次の手順を実行します。
- 設定 をクリックします。
- [ソース コード ] で [ パスの構成 ] をクリックします。
- [ パスの追加 ] をクリックし、既存のファイルのフォルダーを選択します。
- 保存 をクリックします。
また、個々のファイルを追加することもできます。
- パイプラインアセットブラウザで [All files ] をクリックします。
- ファイルに移動し、[
]、[ パイプラインに含める ] の順にクリックします。
これらのファイルをパイプラインのルート フォルダーに移動することを検討してください。パイプラインのルート フォルダーの外部に残した場合は、[ 外部ファイル ] セクションに表示されます。
-
パイプライン ソース コードを Gitで管理できますか?
ルート フォルダーは、パイプライン アセット ブラウザーの Git フォルダーに移動できます。
- ルートフォルダの [
] をクリックします。
- [ ルートフォルダを移動 ]をクリックします。
- ルートフォルダの新しい場所を選択し、[ 移動] をクリックします。
詳細については、「 ルートフォルダ 」セクションを参照してください。
移動後、ルートフォルダの名前の横におなじみのGitアイコンが表示されます。
- ルートフォルダの [
パイプラインのルート フォルダーを移動するには、パイプライン アセット ブラウザーと上記の手順を使用します。他の方法で移動するとパイプライン構成が中断されるため、[ 設定 ] で正しいフォルダー パスを手動で構成する必要があります。
-
同じルート フォルダーに複数のパイプラインを含めることはできますか?
可能ですが、Databricks では、ルート フォルダーごとに 1 つのパイプラインのみを使用することをお勧めします。
-
ドライ実行はいつ実行する必要がありますか?
ドライラン をクリックして、テーブルを更新せずにコードを確認します。
-
一時的なビューを使用する必要がある場合と、コードでマテリアライズドビューを使用する必要がある場合
一時ビューは、データを実体化しない場合は使用します。たとえば、これは、カタログに登録されているストリーミングテーブルまたはマテリアライズドビューを使用して、データを具体化する準備が整う前にデータを準備する一連のステップのステップです。