今日のデータ主導の世界では、企業はかつてない規模のデータを効率的に取り込み、処理するという課題に直面している。 常に生成されるビジネスクリティカルなデータの量と多様性により、アーキテクチャの可能性は無限に近い。 良いニュースは? これはまた、スループット、レイテンシー、コスト、運用効率など、データアーキテクチャをさらに最適化できる可能性が常にあることを意味する。
多くのデータ専門家は、"データストリーミング" や"ストリーミングアーキテクチャ" といった用語を、ほとんどのワークロードにとって複雑でコストがかかり、実用的でないように見える超低レイテンシのデータパイプラインと関連付けている。 しかし、Databricks Lakehouse Platform上でストリーミングデータアーキテクチャを採用したチームは、 ほとんどの場合、スループットの向上、運用オーバーヘッドの削減、コストの大幅削減というメリットを得ることができます。 これらのユーザーの中には、サブ秒単位のレイテンシーでリアルタイムにジョブを実行する者もいれば、1日に1回程度の頻度でジョブを実行する者もいる。 独自のSpark Structured Streamingパイプラインを構築するチームもあれば、Spark Structured Streaming上に構築された宣言的アプローチであるDLTパイプラインを使用するチームもあり、インフラや運用のオーバーヘッドはすべて自動的に管理される(多くのチームは両方を組み合わせて使用している)。
あなたのチームの要件やSLAがどのようなものであれ、集中型データ処理、データウェアハウス、AIのためのレイクハウス・ストリーミング・アーキテクチャが、他のアプローチよりも高い価値を提供することは間違いない。 このブログでは、一般的なアーキテクチャ上の課題、Spark Structured Streamingがそれらに対処するために特別に設計された方法、そしてDatabricks Lakehouse Platformが、今日のデータチームの時間とコストを節約するストリーミングアーキテクチャの運用に最適なコンテキストを提供する理由について説明します。
従来、データ処理はバッチで行われ、予定された間隔でデータが収集され、処理されていた。 しかし、データ量、速度、種類が指数関数的に増え続けるビッグデータの時代には、このアプローチはもはや適切ではない。 過去2年間だけで、世界のデータの90%が生成されたため、従来のバッチ処理フレームワークでは追いつくのに苦労している。
そこで活躍するのがデータストリーミングだ。 ストリーミング・アーキテクチャーによって、データ・チームはデータが到着するたびに段階的にデータを処理できるようになり、大量のデータが蓄積されるのを待つ必要がなくなる。 テラバイトやペタバイトの規模で運用する場合、データを蓄積させることは現実的でなく、コストもかかる。 ストリーミングは何年にもわたってビジョンと約束を提供してきたが、今日ようやくそれを実現できるようになった。
世界はますますリアルタイムのデータへの依存度を高めており、データの鮮度は大きな競争優位性となり得る。 しかし、データの鮮度が高ければ高いほど、一般的に高価になる。 "パイプラインを可能な限りリアルタイムで" 。しかし、具体的なユースケースを掘り下げてみると、パイプラインの稼働時間を6時間から15分以下に短縮できれば十分満足だということがわかる。 他の顧客は、秒単位やミリ秒単位でしか測定できないレイテンシーを本当に必要としている。
ユースケースをバッチかストリーミングかに分類するのではなく、ストリーミング・アーキテクチャのレンズを通してあらゆるワークロードを見る時が来た。 スライダーは1つで、片方ではパフォーマンスを、もう片方ではコスト効率を最適化するように調整できると考えてほしい。 要するに、ストリーミングでは、超低遅延から数分、あるいは数時間まで、各作業負荷に最適な位置にスライダーを設定できる。
我らがディロン・ボストウィックが、私よりもうまく言ってくれた:"私たちは、ストリーミングを複雑な"リアルタイム" ユースケースのために予約するという考え方から抜け出さなければならない。その代わりに、"Right-time処理に使うべきだ。"
Spark Structured Streamingは、このスライダーを調整できる統合フレームワークを提供し、企業やデータエンジニアに大きな競争上の優位性をもたらす。 データの鮮度は、インフラを大幅に変更することなく、ビジネス要件に対応することができる。
多くの一般的な定義に反して、データストリーミングは必ずしも連続的なデータ処理を意味しない。 ストリーミングは基本的にインクリメンタリゼーションだ。 インクリメンタル処理を許可するタイミングは、常にオンか、特定の間隔でトリガーするかを選択できる。 ストリーミングは超新鮮なデータには理にかなっているが、従来バッチと考えられてきたデータにも適用できる。
データアーキテクチャの将来性を考慮する。 ストリーミング・アーキテクチャは、レイテンシー、コスト、スループットの要件を進化に合わせて調整できる柔軟性を備えている。 ここでは、完全なストリーミングアーキテクチャの利点と、Databricks Lakehouse Platform上のSpark Structured Streamingがそのために設計されている理由を説明する:
"Databricksは、Comcastが毎日何十億ものトランザクションと何テラバイトもの[ストリーミング]データを処理する規模に拡大するのに役立っている。" - ヤン・ノイマン、コムキャスト、機械学習担当副社長
"Delta Live Tablesのおかげで、数兆レコード規模のデータ管理にかかる時間と労力を節約し、AIエンジニアリング能力を継続的に向上させることができました。" - シェル、データサイエンスGM、ダン・ジーボンズ
"DLTをスケールさせるために何もする必要はなかった。 システムに多くのデータを与えれば、それに対応する。 箱から出せば、どんな状況にも対応できるという自信を与えてくれた。" - ハネウェル、グローバル・ソリューション・アーキテクト、クリス・インクペン博士
"Databricks Lakehouse Platformでは、実際のストリーミングの仕組みが抽象化されている。これにより、ストリーミングの増強が非常にシンプルになった。" - パブロ・ベルトラン、Statsigソフトウェア・エンジニア
"デルタ・ライブテーブルを気に入っているのは、オートローダーの機能を超えて、ファイルの読み込みをさらに簡単にしてくれるからです。 45分でストリーミング・パイプラインをセットアップできたときには、顎が外れました。データのバケツにソリューションを向けるだけで、すぐに稼働できたのです。" - ラベルボックス、シニア・データ・エンジニア、カーヴェ・サラムート
"DLTは、消費データセットを作成する最も簡単な方法である。 私たちは少人数のチームなので、DLTはとても時間を節約してくれる。" - イヴォ・ヴァン・デ・グリフト、エトス(Ahold-Delhaizeブランド)データチーム技術リーダー
"私たちのビジネス要件では、データの鮮度を高めることが求められており、ストリーミング・アーキテクチャでなければ実現できませんでした。" - パルヴィーン・ジンダル、ヴィジオ、ソフトウェア・エンジニアリング・ディレクター
"私たちはDatabricksを高速で動くデータのために使用しています。 店舗でもオンラインでも、患者さんのニーズに応えるスピードを変えるのに本当に役立っています。" - ウォルグリーンズ、プロダクト・エンジニアリング・ディレクター、サシ・ヴェンカテサン氏
"分析に利用できるデータのスピードが大幅に向上した。 以前は6時間かかっていた仕事が、今ではわずか6秒で済むようになった。" - アレッシオ・バッソ、HSBCチーフアーキテクト
"より多くのリアルタイムかつ大容量のデータフィードが[Databricks上で]利用できるようになるにつれて、ETL/ELTコストは、レガシーなマルチクラウドデータウェアハウスのETL/ELTコストと比較して、比例して直線的に増加しました。" - ジェットブルー、データサイエンス担当シニアマネージャー、サイ・ラブル& アナリティクス
"何より素晴らしいのは、これらすべてをよりコスト効率よく行えることだ。 以前のマルチクラウド・データウェアハウスと同じコストで、より速く、より協力的に、より柔軟に、より多くのデータソースで、より大規模に作業することができます。" - アレクサンダー・ブース(テキサス・レンジャーズ、R&D部門アシスタント・ディレクター
"Databricksによって、価格とパフォーマンスを最適化することができました。インフラコストは以前より34%削減され、ETLパイプラインの実行コストも24%削減されました。 さらに重要なのは、実験率が飛躍的に向上したことだ。" - モヒト・サクセナ、インモビ共同創業者兼グループCTO
"ETLやエンジニアリングからアナリティクスやMLまで、すべてを同じ傘下で行うことで、障壁が取り除かれ、誰もがデータと互いに取り組みやすくなる。" - セルゲイ・ブランケット、Grammarlyビジネスインテリジェンス部長
"Unityカタログをサポートする前は、S3ストレージにデータをストリーミングするために別のプロセスとパイプラインを使用し、そこからデータテーブルを作成するために別のプロセスを使用する必要がありました。 Unityカタログの統合により、DLTパイプラインから直接テーブルを合理化、作成、管理できる。" - ユエ・チャン、ブロック・スタッフ・ソフトウェア・エンジニア
"Databricksのおかげで、コロンビアのEIMチームはETLとデータ準備を加速させることができ、ETLパイプラインの作成時間を70%削減するとともに、ETLワークロードの処理時間を4時間からわずか5分に短縮することができました......より多くのビジネス部門が、以前は不可能だったセルフサービス方式で企業全体で利用しています。 Databricksがコロンビアに与えたポジティブな影響については、言葉では言い尽くせません。" - コロンビア・スポーツウェア、シニア・エンタープライズ・データ・マネージャー、ララ・マイナー氏
ストリーミング・アーキテクチャは、データ生成が加速し続ける中、進化するニーズに対応するデータ・インフラストラクチャを準備する。 リアルタイムのデータ処理に今から備えることで、増大するデータ量と進化するビジネス・ニーズに対応できるようになる。 言い換えれば、レイテンシSLAが進化しても、再設計する必要はなく、スライダーを簡単に調整することができる。
2,000社以上のお客様がDatabricks Lakehouse Platform上で毎週1,000万以上のストリーミングジョブを実行しているのには、いくつかの理由がある。 ストリーミング・アーキテクチャの構築においてDatabricksが信頼されている理由は以下の通りである:
ここでは、Databricksでストリーミングアーキテクチャの探求を始める方法をいくつか紹介する:
ストリーミング・アーキテクチャには、従来のバッチ処理と比較していくつかの利点があり、その必要性はますます高まっている。 Spark Structured Streamingでは、将来性のあるストリーミングアーキテクチャを今すぐ実装し、コスト対効果のチューニングを簡単に行うことができます。 レイテンシー。 DatabricksはSparkワークロードを実行するのに最適な場所だ。
もしあなたのビジネスが24時間365日のストリームとリアルタイムの分析、ML、または運用アプリケーションを必要とするなら、Structured Streamingの連続モードでクラスタを24時間365日稼働させましょう。 そうでない場合は、Trigger = AvailableNowでStructured Streamingのインクリメンタルバッチ処理を使う。 (特に、常時オンとトリガーストリーミングのバランスをとることによるコストの最適化については、当社のドキュメントを参照してください)。 いずれにせよ、DLTパイプラインは運用のオーバーヘッドの大部分を自動化するものだと考えてほしい。
要するに、大量のデータを処理するのであれば、ストリーミング・アーキテクチャを実装する必要があるということだ。 1日1回から1秒に1回以下まで、Databricksは簡単でコストを削減します。