dlt-metaによるLakeFlow宣言型パイプラインの作成
この記事では、管理するメタデータからLakeFlow宣言型パイプラインを生成するツールを提供するDatabricks Labs プロジェクトであるdlt-metaを紹介します。
オープンソース dlt-meta プロジェクトは、databrickslabs GitHub アカウント内のすべてのプロジェクトと同様に、探索目的でのみ存在します。 Databricks は、サービスレベル (SLA) をサポートしたり、提供したりしていません。 このプロジェクトに関連する問題について、Databricks サポート チケットを送信しないでください。代わりに、 GitHub の問題を提出し、時間が許す限りレビューします。
dlt-metaとは何ですか?
LakeFlow 宣言型パイプラインを使用すると、テーブルを宣言的に指定し、テーブルを作成し、ソース データの変更に応じてテーブルを最新の状態に保つフローをパイプラインに生成します。 ただし、組織に数百のテーブルがある場合、これらのパイプラインの生成と管理には時間がかかり、一貫性のないプラクティスにつながる可能性があります。
dlt-meta プロジェクトは、宣言型パイプラインと連携するように設計されたメタデータ駆動型 LakeFlow メタプログラミング フレームワークです。 このフレームワークは、一連の JSON ファイルと YAML ファイルに記録されたメタデータを活用することで、ブロンズおよびシルバーのデータパイプラインの自動化を可能にします。dlt-meta エンジンは、 Python コードを使用して LakeFlow メタデータに記述されているフローの宣言型パイプライン コードを動的に生成します。 パイプラインに関するメタデータを生成し、dlt-meta がパイプラインを生成します。
ロジックが 1 か所 (メタデータ) に一元化されているため、システムはより高速で再利用可能で、保守が容易になります。
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でdlt-metaを開始するを参照してください。