dlt-metaによるLakeFlow宣言型パイプラインの作成
この記事では、管理するメタデータからLakeFlow宣言型パイプラインを生成するツールを提供するDatabricks Labs プロジェクトであるdlt-metaを紹介します。
オープンソースの dlt-meta プロジェクトは、databrickslabs GitHub アカウントのすべてのプロジェクトと同様に、探索目的のみで存在します。Databricksこれをサポートしていないか、サービスレベルアグリーメント (SLA) を提供していません。 このプロジェクトに関連する問題については、Databricks サポート チケットを送信しないでください。代わりに、 GitHub の問題を提出してください。時間の許す限り検討されます。
dlt-metaとは何ですか?
LakeFlow宣言型パイプラインを使用すると、テーブルを宣言的に指定し、テーブルを作成し、ソース データの変更に応じてテーブルを最新の状態に保つフローをパイプラインに生成できます。 ただし、組織に何百ものテーブルがある場合、これらのパイプラインの生成と管理には時間がかかり、一貫性のないプラクティスにつながる可能性があります。
dlt-meta プロジェクトは、 LakeFlow宣言型パイプラインと連携するように設計されたメタデータ駆動型のメタプログラミング フレームワークです。 このフレームワークは、 JSONおよび YAML ファイルのセットに記録されたメタデータを活用することにより、bronze および silver データパイプラインの自動化を可能にします。 dlt-meta エンジンは、 Pythonコードを使用して、メタデータに記述されているフローのLakeFlow宣言型パイプライン コードを動的に生成します。 パイプラインに関するメタデータを生成し、dlt-meta がパイプラインを生成します。
ロジックが 1 か所 (メタデータ) に集中化されるため、システムは高速化され、再利用しやすくなり、保守も容易になります。
dlt-meta プロジェクトは、Databricks の古い Delta Live Tables 機能にちなんで名付けられました。 Delta Live Tables はLakeFlow宣言型パイプラインに置き換えられ、dlt-meta はLakeFlow宣言型パイプラインで動作します。
dlt-metaの利点
dlt-meta には主に 2 つの使用例があります。
- 大量のテーブルを簡単に取り込み、クリーンアップします。
- データエンジニアリング標準を複数のパイプラインとユーザーに適用します。
メタデータ駆動型アプローチを使用する利点は次のとおりです。
- メタデータの維持は、Python や SQL コードの知識がなくても行うことができます。
- コードではなくメタデータを維持することで、オーバーヘッドが少なくなり、エラーが減少します。
- コードは dlt-meta によって生成されるため、一貫性が保たれ、パイプラインと公開されたテーブル全体でカスタム コードが少なくなります。
- メタデータ内でテーブルをパイプラインに簡単にグループ化して、データを最も効率的に更新するために必要な数のパイプラインを生成できます。
どのように機能しますか?
次の図は、dlt-meta システムの概要を示しています。
- ソース ファイルと出力、品質ルール、必要な処理を指定するには、dlt-meta への入力としてメタデータ ファイルを作成します。
- dlt-meta エンジンは、オンボーディング ファイルを DataflowSpec と呼ばれるデータ フロー仕様にコンパイルし、後で使用するために保存します。
- dlt-meta エンジンは、DataflowSpec を使用して、ブロンズ テーブルを生成するパイプラインを作成します。これはメタデータ ファイルを使用してソース データを読み取り、品質ルールに一致する正しいデータ期待を適用します。
- 次に、dlt-meta エンジンは DataflowSpec を使用して、シルバー テーブルを生成する追加のパイプラインを作成します。メタデータ ファイルを使用して、システムに適切な変換やその他の処理を適用します。
ソース データが更新されたときに出力を最新の状態に保つには、dlt-meta によって生成されたパイプラインを実行します。
どうやって始めればいいですか?
dlt-meta を使用するには、次のことが必要です。
- dlt-meta ソリューションをデプロイして構成します。
- ブロンズおよびシルバーレイヤー テーブルのメタデータを準備します。
- メタデータをオンボードするジョブを作成します。
- メタデータを使用して、テーブルのパイプラインを作成します。
GitHub の dlt-meta ドキュメントには、このプロセスを開始するのに役立つチュートリアルがあります。詳細については、 GitHubの「getting started with dlt-meta」を参照してください。