1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Databricksにおけるデータパイプラインとオーケストレーション

Last updated at Posted at 2024-04-27

Databricksにおけるデータの取り込み、ETL、ジョブのオーケストレーションをカバーします。

典型的なデータパイプライン

Databricksに限らず、データ分析のためのデータを準備するためには生データからスタートし、クレンジングを経て、BIや機械学習に用いるデータを生成するパイプラインを構築するのが一般的です。これはメダリオンアーキテクチャと呼ばれるものです。

Screenshot 2024-04-27 at 11.18.54.png

しかし、生データを準備する時点からいくつかの課題に遭遇することになります。
Screenshot 2024-04-27 at 11.20.46.png

ランディングゾーンからブロンズテーブルを準備する際の課題

  • 間違っていくつかのファイルをスキップしてしまう → データの欠損
  • 間違って以前のファイルを取り込んでしまう → 重複し、エラーを含むBIやレポートを作り出すことになってしまう
  • DIYのファイル追跡 / 一覧はスケールせず、コスト効率が悪い
  • スキーマの変更 / 問題 → ジョブの失敗
  • スキーマの変更 / 問題 → ファイルの損失、破損 (有害!)

Screenshot 2024-04-27 at 11.22.13.png

Auto Loaderによるデータ取り込み

DatabricksのAuto Loaderを用いることで、スケーラブルなexactly-onceのデータ取り込みを実現し、上記の課題を解決します。

  • 新規データファイルがクラウドストレージに到着するとインクリメンタルかつ効率的に処理します。
    • ファイル通知モードによってイベント駆動の取り込みを実現(あなたの代わりに自動でEvent Grid / Amazon SNS + Azure Queue Storage / Amazon SQSをセットアップします)
  • 到着ファイルのスキーマを自動で推定、あるいはスキーマヒントで既知の情報を提示
  • 自動のスキーマ進化
  • レスキューデータ列 - 決してデータを失いません

Screenshot 2024-04-27 at 11.24.22.png

Python、SQLで利用することができます。PySparkの場合、formatでcloudFilesを指定します。

df = spark
 .readStream
 .format("cloudFiles")
 .option("cloudFiles.format", "json")
 .load("abfss://…" or "s3://")
 .<apply your transformations>
 .writeStream
 .option("checkpointLocation","/chk/path")
 .start("/out/path")

大量のデータが流入する場合にも、複数のジョブを起動することで柔軟に対応することができます。
Screenshot 2024-04-27 at 11.25.28.png

Delta Live Tablesによるデータパイプライン開発

データパイプラインの開発、運用においては様々な課題があり、それらを解決するために上述のAuto Loaderや、ここで説明するDelta Live Tables(DLT)が提供されています。

Screenshot 2024-04-27 at 11.27.05.png

Delta Live Tablesでは、どのようにデータを処理するのかを記述するのではなく、期待するデータを宣言することで、何のデータが必要なのかにフォーカスすることができます。また、エラーハンドリング、自動テスト、オートスケーリングなどの機能を提供しているので、データエンジニアはデータパイプラインのロジック開発に注力することができます。
Screenshot 2024-04-27 at 11.28.35.png

チェンジデータキャプチャ(CDC)もサポートしています。
Screenshot 2024-04-27 at 11.28.58.png

データに対する期待(エクスペクテーション)を定義することで、自動テストを実装することができます。
Screenshot 2024-04-27 at 11.29.31.png

パイプラインのイベントログも自動で記録されるので、容易にパイプラインの健康状態を監視するダッシュボードを構築することも可能です。
Screenshot 2024-04-27 at 11.30.07.png

パイプラインに流入するデータが増加したとしても、オートスケーリングでリソースを確保し、時間内に処理を終わらせるようにします。
Screenshot 2024-04-27 at 11.31.11.png

Databricksワークフローによるオーケストレーション

モダンなデータエンジニアリングにはモダンなデータオーケストレーションが必要です。

しかし、そのためには複数のユースケースに対する複雑なデータフローを効率的に構築、運用できる必要があります。
Screenshot 2024-04-27 at 11.32.26.png

すでに、多くのお客様がモダンなデータオーケストレーションでコスト削減などのメリットを享受しています。
Screenshot 2024-04-27 at 11.33.59.png

しかし、モダンなデータオーケストレーションのためには様々なツールの組み合わせが必要となり、苦戦しているお客様も多数存在しています。
Screenshot 2024-04-27 at 11.34.12.png

Databricksにおいても、複数のオーケストレータを組み合わせることは可能です。
Screenshot 2024-04-27 at 11.35.07.png

しかし、これは様々な課題を引き起こします。

  • 多くの実践者には利用が難しい -> データチームの生産性の悪化
  • 問題が発生した際の根本原因の理解が困難 -> 悪いデータが後段のアプリケーションの価値を損なう
  • 管理と維持には複雑なアーキテクチャ -> 所有コストの増加、信頼性の低下

そして、これらのツールはDatabricksデータインテリジェンスプラットフォームと統合されていません。
Screenshot 2024-04-27 at 11.37.25.png

そこで、我々はDatabricksワークフローを提供します。データインテリジェンスプラットフォームにおけるデータ、分析、AIのための統合オーケストレーションを実現します。
Screenshot 2024-04-27 at 11.37.54.png

Databricksワークフローは以下のようなメリットをもたらします。

  • シンプルな作成手順 -> すべてのデータ実践者が活用
  • アクション可能な洞察 -> リアルタイムの監視
  • 立証された信頼性 -> プロダクション向け

Screenshot 2024-04-27 at 11.38.05.png

すべてのデータ実践者向けのシンプルな作成手順

Databricksでの数クリック、あるいはお好きなIDEに接続することで、洗練されたワークフローを構築できます。

Screenshot 2024-04-27 at 11.43.01.png
Screenshot 2024-04-27 at 11.43.08.png
Screenshot 2024-04-27 at 11.43.13.png
Screenshot 2024-04-27 at 11.43.17.png

リアルタイム監視によるアクション可能な洞察

シンプルかつ直感的なモニタリングUIによって、すべてのワークフロー実行に対するリアルタイムメトリクスと詳細分析を提供します。
Screenshot 2024-04-27 at 11.44.28.png

どのタスクがなぜ失敗したのかを理解するためにドリルダウンすることで、あなたのお客様にインパクトが出る前のトラブルシュートを可能とします。
Screenshot 2024-04-27 at 11.44.37.png

プロダクションワークロードで立証された信頼性

数百万のプロダクションワークロードを実行する数千のお客様からの信頼を得ています。
Screenshot 2024-04-27 at 11.45.24.png

まとめ

  • Auto Loaderによってデータ取り込みを堅牢かつスケーラブルに
  • Delta Live Tablesはエンドツーエンドでデータパイプラインを管理し、可視性を提供
  • 基盤としてのDelta Lakeが、データのバージョン管理、信頼性、パフォーマンスを充当
  • Databricksワークフローがすべてをオーケストレーション

はじめてのDatabricks

はじめてのDatabricks

Databricks無料トライアル

Databricks無料トライアル

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?