はじめに
GLB事業部Global Engineering部 佐々木です。 現地でのData + AI SUMMIT2023(DAIS)に参加し、セッションの内容をまとめた記事を書きました。
DAISでのセッションに関する記事は、以下の特設サイトにまとめています。
https://www.ap-com.co.jp/data_ai_summit-2023/ 今回は、最近視聴した講演「Delta Live Tables A to Z: Best Practices for Modern Data Pipelines」についてお話ししたいと思います。この講演は、Spark SQL、Structured Streaming、Deltaを統合したシステムであるDelta Live Tables(DLT)を紹介し、データセットの作成・更新方法を解説することを目的としています。対象となる視聴者は、データプロフェッショナル、データエンジニア、データサイエンティストの皆さんです。 このブログは全2部構成で、今回は第2部をお届けします。第1部では、DLTの概要やリアルタイムデータ分析、機械学習モデルのトレーニング、Autoloaderによる自動データ追跡やスキーマ推定などの機能が紹介されました。第2部では、データ変換の効率化やデータパイプラインのベストプラクティスについて解説します。
データ変換の効率化とデータパイプラインのベストプラクティス
マテリアライズドビューでデータ変換を簡素化
マテリアライズドビューは、データ変換を簡素化し、一貫した結果を保証する方法として紹介されました。これにより、データセットの作成や更新が容易になります。マテリアライズドビューの利点は以下の通りです。
- データ変換の効率化
- 一貫性のある結果の保証
- データセットの作成・更新の容易さ
SCDタイプ2を活用した履歴データの保存
講演では、SCDタイプ2を使用して、Deltaテーブルに履歴データを保存する方法が紹介されました。これにより、データの変更履歴を追跡し、過去の状態を参照できるようになります。SCDタイプ2の利点は以下の通りです。
- データの変更履歴の追跡
- 過去の状態の参照可能性
Enzymeを用いた複雑なクエリの効率的な処理
Enzymeは、複雑なクエリを効率的に処理するための強力な手法であることが紹介されました。ただし、コーディングが難しい場合があるため、注意が必要です。Enzymeの利点と注意点は以下の通りです。
- 複雑なクエリの効率的な処理
- コーディングの難しさに注意
DLTサーバーレスでストリーミングクエリの実行を効率化
DLTサーバーレスは、ストリーミングクエリの実行を2.6倍効率的にする技術を実装していることが紹介されました。これにより、リアルタイムでのデータ処理が容易になります。DLTサーバーレスの利点は以下の通りです。
- ストリーミングクエリの実行効率の向上
- リアルタイムデータ処理の容易さ
データパイプライン管理の自動化と開発プロセスの改善
DLTによるパイプライン管理の自動化
DLTは、以下のような機能を提供して、データパイプラインの管理を自動化します。
- テーブルの作成・更新・削除の自動管理
- 依存関係の処理
- 開発と本番の分離
これにより、データエンジニアはパイプラインの管理にかかる手間を大幅に削減し、より効率的な開発が可能になります。
効果的なDLTパイプライン開発のためのベストプラクティス
DLTパイプラインの効果的な開発に役立つベストプラクティスとして、以下のようなポイントが挙げられました。
- コードのモジュール化: パイプラインの各処理を独立したモジュールとして実装し、再利用性と可読性を向上させる
- ビューの作成: データの一部を抽出・加工した結果をビューとして定義し、複数のパイプラインで共有する
- 期待値を用いた条件のアサート: データの品質を保証するために、期待値を用いて条件をアサートする
これらのベストプラクティスを適用することで、DLTパイプラインの開発がより効率的かつ安全に行えるようになります。
Python APIを活用したDLTの利用
DLTはPython APIを提供しており、簡単に利用することができます。ただし、パイプライン内で1つのバージョンのPythonライブラリしか使用できないことに注意が必要です。これにより、ライブラリのバージョン管理が重要になります。
Databricks Automation for Infrastructure (DAB)によるバージョン管理
DABを使用することで、コード、ジョブ、ノートブック、クラスタ、パイプラインをバージョン管理することができます。これにより、開発プロセスがより効率的かつ安全に行えるようになります。
開発プロセスの高速化のためのテストデータの作成
DLTパイプラインの適切な構造化や、開発とテストを高速化するためのテストデータの作成が、効果的な開発プロセスに貢献します。テストデータを用意することで、開発中のパイプラインの動作確認が容易になり、開発速度の向上が期待できます。
まとめ
今回は、データ変換の効率化やデータパイプラインのベストプラクティス、DLTを活用したデータパイプライン管理の自動化と開発プロセスの改善について解説しました。これらの知識を活用して、データ処理の効率化と信頼性の向上を図りましょう。
おわりに
現地でのDAISに参加しているメンバーからの報告をもとに、セッションの内容を解説しました。 DAIS期間中では、セッションに関する記事を以下の特設サイトに順次上げていきますので、見ていただけると幸いです。
https://www.ap-com.co.jp/data_ai_summit-2023/
引き続きどうぞよろしくお願いします!