First principles: OCI上のMySQL HeatWave Lakehouseの内部 (2023/07/27)

First principles:  OCI上のMySQL HeatWave Lakehouseの内部 (2023/07/27)

https://blogs.oracle.com/cloud-infrastructure/post/first-principles-mysql-heatwave-lakehouse

投稿者: Nipun Agarwal | Senior Vice President, MySQL & HeatWave Development

Pradeep Vincent | Senior Vice President and Chief Technical Architect, OCI


今日の世界では、情報がビジネスの成功の鍵となっているため、データは処理能力よりも速く生成されます。このギャップは、生データ量の増加に伴って拡大し続けます。量とは別に、データの分析にかかる時間と費用がかかるという問題は、分析ツールでは通常、データベースへの転送が必要になるためです。データを分析したソリューションがObject Storage(最も一般的なデータ・ホーム)から存在する場合、その記録時間はどうなりますか。


Oracle Cloud Infrastructure(OCI)上のMySQL HeatWave Lakehouseは、業界をリードするパフォーマンスと大規模な価格性能を提供し、顧客にとってこの課題を簡素化します。この投稿では、大規模なパーティション化されたアーキテクチャから新しい下位レベルの最適化まで、MySQL HeatWave Lakehouseを強化するいくつかのエンジニアリング・イノベーションを詳しく説明します。





MySQL HeatWave 概要


図1: MySQL HeatWaveの概要


MySQL HeatWaveは、単一のMySQL Databaseサービスオンラインのトランザクション処理(OLTP)データベース、リアルタイムのインメモリー・データ・ウェアハウス、およびデータベース内自動機械学習機能を提供する唯一のクラウド・データベース製品です。


MySQL HeatWaveのコアは、MySQL OLTPトランザクション・エンジンと並行して実行するように設計されたインメモリー問合せアクセラレータです。MySQL Autopilotと呼ばれる様々な機械学習(ML)ベースの技術を使用して、分析クエリーのパフォーマンスを向上させるように設計されています。MySQL HeatWaveには、データを必要としないMLワークロード用のデータ処理パイプラインや、データベースを離れるMLモデルも含まれており、安全で効率的です。



パーティション化されたアーキテクチャ


図2: ハイパーティション化されたアーキテクチャ


MySQL HeatWaveは、データを細かいチャンクに分割します。図2は、パラレル・データ・ロードおよびデータ処理を可能にするデータのパーティション化を示しています。データ・パーティションでは、問合せ条件に基づくパーティション・キーを使用して、データを効率的にロードします。HeatWaveは、問合せパターンに基づいてパーティション分割戦略を動的にチューニングし、パーティション・サイズがCPU上のレベル3 (L3)キャッシュと一致するように選択され、メモリー帯域幅の使用率を最大化します。HeatWaveクラスタは、最大512ノードまでスケール・アップして、パラレル処理を最大化できます。高スケールと最適化されたパーティショニング戦略を組み合せることで、業界最高のコスト・パフォーマンスを実現できます。



MySQL HeatWave: リアルタイム分析


MySQL HeatWaveの主な差別化要因の1つは、リアルタイム分析機能です。これにより、顧客は最新のデータに基づいてビジネス上の意思決定を行うことができます。MySQL HeatWaveでは、MySQL Databaseに書き込まれたOLTPデータは、どこにでもデータをコピーすることなく、すぐに分析できます。リアルタイム分析を有効にするには、MySQL HeatWaveのインメモリー・データで、データベースの最新のコミット済データが使用されることを保証する必要があります。MySQL Databaseにデータが入ると、データはすぐに保持されます。


MySQL Databaseで変更が続くと、MySQL HeatWaveのインメモリー・データ表現に即時に伝播され、その結果、HeatWave問合せ処理では最新に保持されているインメモリー・データが使用されます。データ伝播には、少量の時間(通常は数ミリ秒)がかかり、問合せでデータ更新がまだ伝播されていない更新された表が参照される場合、問合せが実行される前に、変更がインメモリー表現に伝播されます。


このプロセスでは、HeatWave問合せの最新データの使用が保証されます。HeatWave問合せがMySQL書込みが発生する前に実行中の場合、HeatWave問合せは中断せずに完了を経由します。HeatWave問合せ処理エンジンは、MySQL Databaseのトランザクション処理には影響しません。



MySQL HeatWave Lakehouseの概要


MySQL HeatWave Lakehouseは、MySQL Databaseのデータを使用して、OCI Object Storageで効率的なデータ・クエリ処理を可能にします。MySQL HeatWaveの同じスケールアウト・クエリー処理エンジンを使用することで、ユーザーがデータベースにデータをインポートしなくても、CSVやParquetなど、様々なファイル形式でObject Storageから数百テラバイトのデータをパラレルに問い合せることができます。


図3: MySQL HeatWave Lakehouseの概要


MySQL HeatWave Lakehouseでは、オブジェクト・ストア・データレイクから数百テラバイトのデータと、MySQL Databaseに格納されているトランザクション・データを結合する単一のSQLベースの問合せを使用できます。何百テラバイトものロードは困難で時間がかかりますが、MySQL HeatWave Lakehouseでは、適応性の高いMySQL Autopilot主導の技術が使用されています。この技術により、データ・ロードとネットワークの最適化の量を最小限に抑え、オブジェクト・ストアのデータ・ロードのための総ネットワーク帯域幅を増やし、業界をリードするデータ・ロード・パフォーマンスを実現します。


MySQL HeatWaveの高度にパーティション化されたアーキテクチャに対して行われるこれらのメソッドとさらなる拡張は、MySQL HeatWave Lakehouseの高スケール・クエリー・パフォーマンスを実現する上で重要な役割を果たします。



MySQL HeatWave Lakehouseデータ・ロード


このレイクハウスは、MySQL HeatWaveの高度にパーティション化されたアーキテクチャを利用して、Object Storageからデータをすばやくロードします。データをロードするには、ユーザーはMySQL Autopilotアドバイザを実行する必要があります。このアドバイザは、システム設定に関する有用な推奨事項を提供します。



MySQL Autopilotアドバイザ


MySQL HeatWave Lakehouseにデータをロードするには、まず、MySQL Autopilotアドバイザによって実行される推論を使用して表スキーマを定義します。heatwave_loadコマンドを実行して、Autopilot機能をトリガーし、多くのメタデータ属性を識別します。MySQL Autopilotでは、正しい MySQL構文を持つファイル内のカラムに適切なデータ型と精度を持つcreate tableコマンドを推奨しています。図4に、MySQL Autopilotによるcreate tableコマンドの例を示します。さらに、MySQL Autopilotでは、データに基づいて適切なサイズのクラスタが推奨されるため、すべてのファイル内のすべての列のデータ型やその他のパラメータを識別するための時間のかかる手動ステップが不要になります。MySQL Autopilotは、後で説明するアダプティブ・データ・サンプリングを使用して、この分析を半ペタバイトのデータに対して2分未満で実行します。


図4: Autopilot Advisorによるスキーマ推論



データ・ロード


MySQL Autopilotアドバイザの推奨事項を使用して表を作成し、HeatWaveクラスタを初期化すると、ユーザーはalter tableコマンドを起動して、Object StorageからHeatWaveクラスタにデータを直接ロードします。MySQLユーザーは、このコマンドを使用してデータベースからMySQL HeatWaveにデータをロードします。データをすばやくロードするために、HeatWaveは、最大512個のノードを持つクラスタのスケールを使用して、データをパラレルにロードします。データ・ロードが完了すると、問合せを実行する準備が整います。このデータ・ロード・プロセスはアダプティブ・データ・フローによって強化され、後の項で説明します。データはHeatWaveインメモリー・ストアにロードされ、MySQL Databaseにレプリケートされません。



アダブティブ・データ・サンプリング


アダプティブ・データ・サンプリングは、MySQL Autopilotがデータの一部のみをロードしながら、関連するメタデータおよび統計をObject Storageデータのペタバイト単位で予測するために使用する、MLベースの新しいアプローチです。


表1: アダプティブ・データ・サンプリング


アダプティブ・データ・サンプリング・アルゴリズムは、ロードする必要があるデータを最小限に抑えながら、最適なレベルのサンプリングを動的に決定し、可能なかぎり高い精度を実現します。列の最小値を推定する例を見てみましょう。100行ごとに読み取るデフォルトのサンプリング・レートから開始するとします。MySQL Autopilotは、新しい行で収集される統計が偏らないことを観察するため、おそらく1000行ごとにサンプリングレートが少なくなります。一方、MySQL Autopilotがサンプリングされたデータに十分な差異を観察した場合、サンプリングの頻度を50行ごとなどに適応させます。許容可能なしきい値内の予測値の範囲の差異まで、より多くのサンプリングを繰り返し実行し、収集されたサンプルからML手法を使用して集計統計を予測します。この方法で、MySQL Autopilotは推論プロセスを迅速かつ効率的に完了します。


MySQL Autopilotは、Object Storageのデータを適応的にサンプリングして、スキーマ推論およびノード・プロビジョニングに役立つ必要なパラメータについて学習します。これらのパラメータには、列数や行数、データのロードに必要なメモリー、予想されるクラスタ・サイズなどの推定統計が含まれます。アダブティブ・サンプリングでは、単一のノードを使用して、半ペタバイトのデータに関連するパラメータを2分未満で推測できます。



アダプティブ・データ・フロー


MySQL HeatWave Lakehouseでは、アダブティブ・データ・フローと呼ばれる独自のアプローチを使用して、Object Storageから高度に分散された方法でデータがロードされます。HeatWaveクラスタのすべてのノードまたは仮想マシン(VM)間でデータ・ロードが同時に実行される場合、目標は、データ・ロード時間を最小限に抑えるためにObject Storageへのリクエスト率とネットワーク帯域幅を最大化することです。


OCI Object Storageは、クラウド規模のマルチテナント型サービスであり、様々な顧客やクライアントにまたがって動的なサービス品質とスロットルを実装し、公平性を維持し、サービス拒否(DOS)シナリオを軽減します。MySQL Autopilotのアダブティブ・データ・フローは、Object Storageに依存してHeatWaveを抑制するのではなく、動的制限を検出し、アプリケーション・レイヤーでリクエストをスロットルして、スループットを最大化し、ロード時間を最小限に抑えます。各HeatWaveノードは、同期の必要なく、これを独立して使用します。



Lakehouse問合せパフォーマンス


MySQL HeatWave Lakehouseは、MySQLデータベースとObject Storageに対して同じ問合せパフォーマンスを実現します。表2は、MySQLおよびObject Storageの問合せパフォーマンスに対するTPC-Hパフォーマンス・ベンチマークの比較を示しています。


表2: MySQLとObject Storageの問合せパフォーマンス


MySQL HeatWave Lakehouseでは、Object Storageのデータ問合せパフォーマンスを最適化し、MySQL DatabaseとObject Storageのデータを問い合せるときと同じパフォーマンスを実現するために、統合された問合せエンジン、最適化されたデータ形式など、複数の最適化が使用されます。MySQL AutoPilotでは、オブジェクト・ストアからのデータに必要なメタデータ、ハイパーグラフ・オプティマイザ、計算およびネットワーク通信サイクルのインテリジェントなスケジューリングが計算されます。



データベースと同等な統計


データベースでの問合せ処理は、データの様々なメタデータ属性(キー列のデータ値の分布に関する統計やヒストグラムなど)に依存します。この情報は、問合せ計画のコストを評価し、最適な問合せ計画を特定するのに役立ちます。構造化データベースにはこれらの統計がありますが、Object Storageファイルには統計がありません。かわりに、アダブティブ・データ・サンプリングを使用して関連するメタデータを取得するMySQL Autopilotの推論機能により、統合問合せエンジンがMySQL DatabaseおよびObject Storageからのデータを操作できるようにします。


MySQL Autopilotは、以前の問合せ結果から学習することで、メタデータおよび統計を継続的に絞り込みます。列がstateである住所表について考えてみます。この目標は、個別値(NDV)の統計数と、最小値や最大値などのその他のメトリックを効率的に決定することです。一般的なデータベースでは、Object Storageデータの分散を決定するヒストグラムが生成されます。これらのヒストグラムは、アダブティブ・データ・サンプリングを使用して効率的に事前計算されます。ユーザーが「状態」列を分析する問合せを実行すると、問合せの結果がNDV、最小および最大メタデータをさらに検出するために使用されます。ユーザーがより多くの問合せを実行すると、システムが学習し、メタデータが絞り込まれます。



問合せ計画の最適化における外れ値


1つの不良問合せ計画がシステムのランタイムより優位になる可能性があるため、問合せ処理用のシステムのパフォーマンスを評価する際は、外れ値を考慮することが重要です。MySQL HeatWaveには、これらの外れ値の問合せの可能性を最小限に抑える新しいハイパーグラフ問合せオプティマイザがあります。新しいHypergraphオプティマイザは、問合せでの最適な結合順序の決定を対象としており、通常はコストがかかります。ハイパーグラフ・オプティマイザには多次元コスト・モデルがあり、ブッシュ・ツリーを走査します。このツリーでは、可能なすべての実行パスが調査されるため、最適な問合せが実行されます。さらに、オプティマイザは、HeatWaveとMySQLの両方の処理コストを評価します。結合問合せは一般的にコストが高く、実行時間よりも優れているため、ハイパーグラフ・オプティマイザは外れ値の回避に役立ちます。このような理由から、HeatWaveのパフォーマンスは、ジオメトリ平均と合計実行時間を考慮すると非常に優れています。



計算および通信の重複


ソース・データ読取りは、圧縮されて最適化された内部形式に変換されます。この形式は、インメモリーおよび永続性で使用され、ユーザーのコストが削減されます。リクエスト当たりのデータ読取りおよび書込みのサイズは、データ転送ネットワーク操作とCPU集中型の操作との重複を最大限にするように慎重にチューニングされます。図5は、使用可能なコンピュートおよびネットワーク・リソースの使用率を最大化するために、VMがどのようにCPUおよびネットワーク集中型のタスクを割り当てるかを示しています。


図5: 計算と通信の重複


問合せ処理中は、データ処理に時間がかかり、データのフェッチに時間がかかる場合があります。図5の問合せプロセス・ツリーには、詳細なタスクが表示されます。インテリジェント・タスク・スケジューリング手法を使用して、以前に連続したタスクを並行して実行できるようになりました。このパラレル実行ではオーバーラップが最大化されるため、データ・フェッチの進行中は、データを待機せずにCPU集中型のタスクの実行を継続できます。



まとめ


MySQL HeatWaveは、アーキテクチャの次の主要な特性とシステム全体に適用される新しい技術により、業界をリードする高いパフォーマンスを実現します。


  • MySQL HeatWaveの大規模なパーティション化アーキテクチャは、高パフォーマンスと拡張性を強化します。
  • MySQL Autopilotは、MLベースの手法を利用して様々なデータ処理の最適化を推進し、開発者やデータベース管理者の負担を軽減します。
  • MySQL HeatWaveは、トランザクション・データの上にリアルタイム分析を提供します。


MySQL HeatWave Lakehouseは、OCI Object Storageまたはデータ・ウェアハウスとObject Storage全体でデータを問い合せようとしている組織が時間とコストを節約し、そのすべてが最適なパフォーマンスで実現します。これにより、様々なデータ形式にまたがる複雑なビジネス上の問題に対する知りたいと答えを得るまでの時間が大幅に短縮されます。


HeatWaveの革新的なMLを活用した手法をMySQL Autopilotシステムの一部として使用することで、次のパフォーマンス・ブレークスルーと注目に値する最適化を実現します。


  • アダブティブ・データ・サンプリングは、Object Storage統計を収集して問合せ計画を生成および改善し、最適なスキーマ・マッピングを決定するなど、効率的な方法を提供します。
  • アダプティブ・データ・フローでは、非常にパーティション化されたアーキテクチャと革新的なアルゴリズムを使用して、帯域幅の近くにObject Storageからデータをロードします。
  • Hypergraphオプティマイザを使用すると、MySQL HeatWave Lakehouseは、外れ値を排除しながら、Object StorageおよびMySQLデータベースからのデータを処理するための最高ノッチな問合せパフォーマンスを実現できます。


Oracle Cloud Infrastructure(OCI)エンジニアリングは、オラクルのクラウド・プラットフォームの設計について、これまでとは異なる考え方をしてきた、エンタープライズ顧客にとって最も要求の厳しいワークロードを処理します。OracleのPradeep Vincentおよびその他の経験豊富なエンジニアが主催するこのFirst Principlesシリーズの一部として、これらのエンジニアリングに関する深いダイブがさらに多くあります。


詳細は、次のリソースを参照してください。

コメント

このブログの人気の投稿

Oracle RACによるメンテナンスのためのドレインとアプリケーション・コンティニュイティの仕組み (2023/11/01)

Oracle Cloud Infrastructure Secure Desktopsを発表: デスクトップ仮想化のためのOracleのクラウドネイティブ・サービス (2023/06/28)

Oracle Cloudのデータベースをオブジェクト・ストレージにバックアップする3つの方法 (2021/12/13)