はじめに
株式会社NTTデータグループ 技術革新統括本部技術開発本部IOWN推進室OSSチームの 北波(nttd-kitabah) です。
普段は、HadoopやSparkなどの並列分散処理に関連するOSSを用いたシステム基盤の開発支援やサポートデスクの業務を担当しています。
Databricksのエバンジェリスト資格 Databricks Champion の認定も受けています。
サンフランシスコで開催されたData + AI Summit 2024に参加いたしました。
Data + AI Summitは、Databricks社が毎年開催する最大規模のカンファレンスです。今年のテーマは 「DATA INTELLIGENCE FOR ALL」 であり、6月10日から6月13日までの4日間にわたって行われました。今年は過去最高の60,000人以上が視聴、16,000人以上が現地から参加しており、600以上のセッションと130以上のスポンサーブース展示がありました。
今回は6月13日のKeynote Day2の後半の内容になります!
Keynote (Day2)
前半に引き続き Matei Zaharia氏(Apache Spark/Mlflowのオリジナルクリエーター) から 「ガバナンス&データシェアリング」 の最後の3つ目の発表が続きました。
Sharing and cross-org collaboration (データ共有と会社横断コラボレーション)
会社横断のデータ共有化は開発の高速化には重要と考えられていますが、データ共有の際にはプラットフォームの制限があるなど課題感があります。
Databricksではこの課題を解決するために、オープンなコラボレーションのためのエコシステムを提言しました。
Delta Lakeを使ってセキュアな形でクラウド上でのテーブル共有を実現する 「Delta Sharing」「Databricks Marketplace」「Databricks Clean Rooms」 という3つの機能を紹介します。
Delta Sharing
Delta Sharingは、Delta Lakeをベースにしたデータ共有機能で、受信者(データコンシューマー)のプラットフォームを選ばないオープンな点が特徴です。
データ共有者(データプロバイダー)がDelta Lakeにデータを共有すると、Delta Sharingサーバ内のオープンプロトコルを介して、受信者に様々な形式で他のシステムにテーブルを連携できます。受信者側のプラットフォームは何でもよく、ParquetやSpark、Pandas、Tableauなど様々な形式でデータを受け取れます。
Delta Sharingは非常に人気の機能であり年々利用するユーザやデータ数が増えています。Delta Sharingでデータを受信する4割がDatabricks以外のプラットフォームであることもあり、Databricksに限らず様々なプラットフォーム上でのデータ連携が始まっています。
特に今回は 「Sharing for Lakehouse Federation」 として、PostgreSQLやMySQL、Snowflake、Amazon Redshiftなど他のデータソースへのデータ連携の延長機能を発表しました。
データのフィルタリングやデリバリーなどDelta Sharingを使用することでシームレスにデータ連携が可能になるようです。この機能により、どのデータウェアハウスからでもデータを連携できる状況になります。
Databricks Marketplace
Databricks Marketplace は、オープンソースの Delta Sharing 規格を利用した、あらゆるデータ、分析、AI のためのオープンなマーケットプレイス です。
2年前に公開され、現在2000以上のノートブックが公開されています。(どこよりも大規模!継続的に成長し続けています!)
Databricksを扱っていないお客様に対してもマーケットプレイスの情報は共有できます。
業界のリーダーで多くのデータドメインを扱ってきたACXIOM社、Amperity社など12の新しいパートナーが参画し、マーケットプレイスでは幅広い分野を扱えるようになります。
Databricks Clean Rooms
今年の夏後半にClean Roomsがパブリックプレビューになります。
Clean Roomsとは、他の組織とプライベートな処理を実施する際に、テーブル、コード、非構造化データ、AIモデルなど、データベースにあるあらゆる種類のデータを簡単に共有することができる機能です。 例として、他社間の顧客データを統合して、共通の顧客数を発見することや、機械学習モデルを使用して予測を両企業間で行うこともできます。
そのほかのデータ連携サービスとの違いについては以下です。
- 機械学習やSQL、どのような処理も実施可能であること
- Delta Sharing機能によりクロスプラットフォームでのデータ連携が容易であること(DatabricksでなくともClean Roomsに接続が可能)
MasterCard社はいち早くDatabricks Clean Roomsを使おうと検討しています。
他の機能と同じく、デモ形式でClean Roomsがセキュアな環境で問題をどのように使用するか実演もありました。
Darshana Sivalumar氏(Databricks プロダクトリード)から、小売業界の会社が他の会社と協力して広告キャンペーンを実施して売り上げを伸ばすため、両方の会社の顧客データを使用する例が紹介されました。
複数会社間でデータを共有するには「個人情報などの機密情報は会社間で連携できない」「使っている地域やプラットフォームやクラウドが違う」「SQL処理だけではなくPython上で機械学習モデルを使用したい」など課題感があります。
Clean Roomsでは、Azureなど好きなプラットフォーム、リージョンにあるデータやSnowflakeウェアハウスなどDatabricks上にないデータも直接連携することが可能で、また非構造なデータやAIのモデルもコラボレーション可能と紹介していました。
会社間のデータ連携は、Clean Roomsへ連携されたデータのメタデータは他の会社のアカウントから確認できますが、実際にはデータ共有されないため機密情報は保持されています。
データをClean Roomsへ連携後、機械学習モデルを適用し他の会社と協力してデータを分析することが可能であり、デモでは最終的に120万世帯へキャンペーンを打つことができると視覚的に予測もできました。
Clean Roomsの特徴をおさらいすると、
① 直接データを連携せずにプライバシーが守られた環境にデータを取り込み処理できる
② 異なるクラウド、リージョン、プラットフォームでも問題ない
③ テーブル、非構造のデータ、機械学習のモデルなど取り込みSQL以外の方法でもデータ分析ができる
Clean Roomsにより ETLパイプラインを作成せずにデータを統合することが可能で、クロスプラットフォームでの連携が容易になります。 また、Clean Roomsを使うことでデータとAIのリアルタイムでの安全なコラボレーションができ、オープンシステムによる企業のデータガバナンスとシェアリングが支援できます。
スポーツとデータ分析
スピーカー:Alexander Booth氏(Texas Rangers Baseball Clubの技術担当者)
MLBではデータとAIを活用して、ゲームプレイを最適化しています。
選手の動きやボールの動きに関する予測モデルを構築し、これにより選手のパフォーマンスを向上させるための医療面でのアドバイスを選手へ実施したりしています。全ての試合の選手の位置や動きを高速で追跡し、選手の守備の傾向やボールへの反応時間を分析して、守備配置を最適化しています。
近年、データチームの成長に伴いデータが増えたことによりサイロ化されてしまったり、マイナーリーグやスカウティングのガバナンスと権限管理が難しくなっていました。またデータのサイロ化によりレポートの遅延が発生し、選手やコーチに必要な情報がすぐに提供できませんでした。
これらの課題を解決するために、データとAIのスタックをLakehouseに統一し、Unity Catalogを使用してデータを一元化しました。医療記録など個人情報が確認できる組織を規制したり、米国の法に準拠できるUnity Catalogによって、クラスターやETLパイプラインの管理を容易にし、データのガバナンスを強化しています。
このDatabricksのData Intelligence Platformにより、AIによるデータの要約とコメントが可能になり、データの透明性が向上しました。MLとAIモデルのレジストリは、Unity Catalogによって管理され、データチームが自分のプロジェクトに適したモデルや特徴を簡単に利用できるようになります。
データのリネージにより、データがどこから読み込まれたかなど透明性を高め信頼性の高いデータが作られたり、他のデータベンダーとのコラボレーションが可能になりました。これにより4倍のデータ量になりましたが、データのインサイトが10倍速くなり、選手にとって必要な情報を迅速に入手できるようになり、パフォーマンス向上につながりました。
結果としてTEXAS RANGERSのリーグの最下位からワールドシリーズ制覇へ貢献できました。
デモでは、ジャイアンツ(サンフランシスコ)の選手でトレードするべき選手を調べる実演がされました。
野球のオープンデータを使用して、Genieアプリケーションに学習させていました。
トレード価値のある選手を特定する分析では、期待されるパフォーマンスと実際のパフォーマンスの差を確認して、過小評価されている選手も探し出すことができました。
アナリスト、SQL開発者、技術的でないスタッフがデータにアクセスし、必要な質問をすることでターゲットを絞った意思決定を効率的に作成できます。
この事例は、データの民主化につながる活動です。
Spark4.0の新機能
スピーカー:Reynold Xin氏(Databricks 共同創業者)
Sparkについて100人のユーザと話したところ、大きな課題として挙がっていたのが
「SparkをPythonで使用するのが難しい」
「依存関係の管理とバージョンアップグレードが困難」
「JVM以外の言語との連結が困難」 でした。
「SparkをPythonで使用するのが難しい」:
SparkはScalaユーザが多いですが、Pythonユーザも多くなっています。
PySparkには様々な機能が追加され、ほとんどScalaを使うのと変わらない状況になっています。
最近ではPySparkは210の国と地域でダウンロードされ、Databricks上だけでもSpark3.3以上では1日あたり50億のクエリを投げているため、PySparkは非常に需要があり、日々使われている言語です。
引き続き、改善を実施していく予定です。
「依存関係の管理とバージョンアップグレードが困難」「JVM以外の言語との連結が困難」:
PythonユーザにとってSparkの標準機能は使いにくく、特にエラーメッセージが難解でデバッグも困難でした。バージョンアップグレードには6か月から3年もかかる場合があります。
なぜこんな課題があるかというと、Sparkはモノリシックなサーバクラスタで実行されているため、Sparkのバージョンをアップグレードする際にはクラスタ上の全てのサーバ上でバージョンを上げる必要があるからです。
そこで、何年か前に発表したSpark Connectというものがあります。
Spark Connectとは、クライアントとサーバを分離したアーキテクチャで、あらゆるアプリケーションからSparkクラスタへのリモート接続を可能にし、どこでも実行できるようにするものです。
これにより、SparkでSQLを実行する場合、言語に左右されないものをユーザへ提供できたり、Sparkのサーバ側を3.5から4へ個々のアプリケーションをアップグレードする必要がなくなるようです。
個々のアプリケーションはそれぞれ実行されるので、サーバへも影響を与えない状況になります。
独自の速度で開発することができるようになります。
また、Sparkで一番人気のあるライブラリSparklyrを開発したPosit社からSpark Connectについてのスピーチがありました。
スピーカー:Tareef Kawaf氏(Posit社 社長)
Positはデータサイエンスの会社として15年前に創立された会社で、オープンソースへ長い間貢献をしており、最近ではPythonのエコシステムへいくつも寄与しています。
特に我々が開発したSparklyrは、RユーザにとってTidyVerseとともに使いやすいライブラリですが、Spark ConnectによってクライアントがJVMに直接アクセスしなくてよくなったため、さらに使いやすいものになります。
Spark Connectを使用するという一文を使うだけで連携が可能です。Posit Workbenchもリリースしまして、これはJupyter NotebookやVSCodeなどと簡単に連携できるようになり、Sparklyrのように開発者が使いやすい言語で使えるようになっています。
Spark4.0の予告
Spark 4.0ではSpark ConnectがGA、SQLが一般化されます。
一番注目したいのは、違うオープンソースのコミュニティが連携できるようになったことです。Sparkはコンピューティングシステム、Delta LakeやIcebergはストレージのシステムですが、お互いコラボレーションができるようになりました。
Spark 4.0がプレビュー状態で正式にリリースされていない段階ですが、すでに多くの新機能が実装されています。例えば、データ型のジョインやパーティショニング、データの追跡やパフォーマンスの向上など、多岐にわたる改良が行われています。
このように、Sparkの進化は止まることなく続いており、Python、Scalaユーザーにとっても、ますます使いやすくなっています。
Spark 4.0のさらなる進化にご期待ください!
Data Intelligence Platform
Bilal Aslam氏(Databricksシニアディレクター、プロダクトマネジメント)
良いデータをどうやって取得するか?には3つのステップがあるが課題感があります。
- Ingest(データを取得する):様々なデータベースからSparkにデータを取り込むが、本当に価値のあるデータは小さい場合がある
- Transform(データを変換する):ビジネスに使うためフィルタリングやクリーンといった操作をする
- Orchestrate(データから価値を出すために本番環境へ持ち出す) パイプラインを作成するためにAirflow、データの監視をするためにAmazon CloudWatchなどを使用する必要がある
以上の流れを構築するのは大変です。
そこで、LakeFlowの紹介がされました。
LakeFlow
LakeFlowは基本的なDatabricksのワークフローの上で構築する新製品です。
シンプルにデータパイプラインを作成することが可能です。
前の良いデータ取得の3ステップになぞらえると以下の機能が提案されています。
LakeFlow Connect / Ingest(データを取得する)
Lakehouseネイティブで全てのデータベースとエンタープライズアプリケーションと連携できます。
新しいデータだけを取得、投入した順序やリカバリもできます。(これには買収したArcion techの技術を使用)
LakeFlow Pipelines / Transform(データを変換する)
SQLを簡単に記載することができ、コスト最適化した形でデータ処理も可能になります。
①UI上で「JOINをしたい」と書くだけでSQLが自動生成される
②インフラのセットアップ不要で出力を確認可能
③マテリアライズドビュー機能によって、スキーマエボリューション、失敗&リトライ、インプリメーションで一番良い戦略も自動で選定
デモでは、Kafkaを使ってデータ変換を実施していました。
optionでkafka.databricks.comをbrokerに設定するSQLを書くだけで、Kafkaとのストリーミングも簡単に実装できること、コードチェンジなしに実施でき、リアルタイムでのデータ取り込みも選択可能ということを発表しています。
LakeFlow Jobs / Orchestrate(データから価値を出すために本番環境へ持ち出す)
Orchestrarationの自動化などが実現されます。
デモでは、Kafkaに入ったデータを、ダッシュボードに表示することも可能で、アシスタントが自動で表示提案もしていました。
LakeFlowによって、データエンジニアにとってデータ取得、変換、活用までのフロー実装が簡単になり、データが入ってきたときのトリガーなどのスケジュールも容易になることが示されました。
Unified Monitoring
LakeFlowにはもちろんモニタリング機能もあります。
Unity Catalogの完全なリネージもができ、サーバレスコンピュートが可能になったことで、3.5倍速い形での取り込み、30%コスト削減につながるようです。
最後にData Intelligenceについて
Data Intelligence自体は既存製品の進化であり、完全な新機能ではないと考えているようです。
Delta Live Tablesなど既存の製品も使い続けることはできます。
LakeFlow Connectはプレビュー状態であるので、気になる方は見てください。LakeFlow PipelineやLakeFlow Jobsもそのうちプレビューできるようになります。
まとめ
Sparkはマイクロバッチアーキテクチャであるためストリームするときに4-5秒かかりますが、LakeFlowによってリアルタイムモードで処理できるようになると10-20m秒で処理でき100倍以上の速さになります。
Keynote Day2の後半は以上です!
今回のKeynoteでは、データの取り込み、データの民主化、ロジックの簡易化に関係するたくさんの機能が紹介されました。
2日目のKeynoteではDataEngineeringとして、Matei氏によってUnity CatalogがOSS化されたり、Delta Lake4.0の発表、Spark4.0のSpark Connect機能、LakeFlowなど紹介されました。
プレビューもあるため、気になるプロダクトは積極的にチェックしてみてください。
関連リンク
Data + AI Summit 2024 - Databricks 現地レポートはこちらにございます!
ぜひご確認ください!
- Data + AI Summit 2024 - Databricks 現地レポート(Keynote Day1)#1
- Data + AI Summit 2024 - Databricks 現地レポート(Keynote Day1)#2
- Data + AI Summit 2024 - Databricks 現地レポート(Keynote Day2)#1
- Data + AI Summit 2024 - Databricks 現地レポート(Keynote Day2)#2 ※本記事
- Data + AI Summit 2024 - Databricks 現地レポート(EXPOブース) ※近日公開
OSSチーム紹介 | NTTデータグループ
株式会社NTTデータグループOSS(オープンソースソフトウェア)チームは、Hadoop/Spark/Kafka/HBaseなどの高難易度なOSSプロダクトのサポートを提供しています。OSSコミュニティ活動やプロジェクト支援を実施するとともに、OSSでは提供しきれない中長期的なサポートも提供しています。チームには、Hadoop/Spark/Bigtopなどのコミッタも在籍しております。OSSを扱う時にお困りの際にはぜひお気軽にお問い合わせください。
- 問い合わせ・HPはこちら:https://oss.nttdata.com/
- 登壇資料などSlideShareはこちら:https://www.slideshare.net/hadoopxnttdata
databricks | NTTデータ
NTTデータは、お客様企業のデジタル変革・DXの成功に向けて、「databricks」のソリューションの提供に加え、情報活用戦略の立案から、AI技術の活用も含めたアナリティクス、分析基盤構築・運用、分析業務のアウトソースまで、ワンストップの支援を提供いたします。