クラウド時代が到来、新世代のデータ分析プラットフォームはどのように実現されるのか?

Stackoverflow が開始した 2023 年の年次開発者調査データによると、2023 年 5 月に、PostgreSQL が MySQL を上回り第 1 位にランクされ、開発者の第一の選択肢となりました。中国では PostgreSQL の人気が高まっています。6 月 17 日、PostgreSQL データベース テクノロジー サミットが成都で成功裡に開催されました。「新たな機会、新たなトレンド、新たな展開」をテーマとしたこのカンファレンスには、多くの業界リーダーが参加するよう招待されました。PieCloudDB のプロダクト ディレクターである Chen Jinbao 氏も、カンファレンス「クラウド ネイティブ仮想データ ウェアハウスである PieCloudDB のアーキテクチャと主要モジュールの実装」で講演するために招待されました。 

クラウド コンピューティング時代の到来により、クラウド プラットフォームはほぼ無制限で豊富なコンピューティング リソースを提供すると同時に、コンピューティング コストを大幅に削減し、データ コンピューティングがインテリジェンスを生成する機会を増やしています。Gartner は 2019 年の時点で、データベース市場の将来はクラウド上にあるという予測を立てていました。クラウド コンピューティング テクノロジーの発展に伴い、企業もこの傾向に近づき、ビジネス データをクラウドに移行する企業が増えています。私たちは、データベースの未来はクラウド上にあると信じています。そのため、クラウドネイティブのデータ ウェアハウスである PieCloudDB を構築しました。

PieCloudDB は 2022 年 10 月に正式にリリースされる予定です。これは、完全な SQL 言語サポート、効率的な分散コンピューティング機能、完全なトランザクション サポートを提供するクラウドネイティブの分散データ ウェアハウスです。同時に、単一のデータセットのマルチクラスタリング、第 2 レベルの弾力性、必要なコンピューティングとストレージに対してのみ支払う機能を実現します。 

1. なぜ PieCloudDB が必要なのでしょうか?

1.1 NoSQL とデータレイクはユーザーの分析ニーズに応えられなくなった

過去の長い間、NoSQL + データ レイク ソリューションがデータ分析分野の主流市場を占めており、Hadoop や HDFS などの NoSQL データベースも主要なデータ分析プラットフォームです。しかし、ClouderaがCDHテクノロジーのサポートを終了すると発表したことで、HadoopなどのNoSQLプラットフォームに対する疑念も高まっている。

この現象は、NoSQL + データ レイク システムには、複雑なクエリのサポート、高い同時実行性の分離、一貫性などの重要なデータ分析機能に明らかな欠陥があるためであり、既存の標準的な SQL ベースの BI ツールを統合するのは困難であり、NoSQL 自体も機能していません。高度な分析に適している(グラフ分析、地理情報分析など)サポートが弱い。その結果、NoSQL は「時代遅れ」というレッテルを貼られ始め、データ分析において主要な市場シェアを保持できなくなりました。 

さらに、NoSQL およびデータ レイク ベースのインフラストラクチャに必要な分析ツールは、統合して展開するのが簡単ではありません。データ分析にデータ レイクを使用するには、複数のコンポーネントの統合とデプロイが必要となり、多大な開発労力が必要になります。ANSI SQL はサポートされていないため、ユーザーは通常、専門的な技術スキルを必要とし、高い技術要件とコスト要件を負担する必要があります。さらに、プラットフォームに必要な特殊なエンジン/ツール (グラフ データベースなど) は、記録システムとの統合が難しいことが多く、データ分析の操作性と革新性が低下します。

これらの制約と課題により、より強力で、統合が容易で、使いやすいデータ分析プラットフォームの必要性が高まっています。企業や組織は、標準 SQL ベースの分析プラットフォームを採用する傾向が高まっており、これらのプラットフォームは、幅広い分析機能、簡単な統合と導入によりユーザーのニーズを満たすことができ、既存のデータ ストレージおよび処理テクノロジとの互換性があり、要件が低くなります。

1.2 リレーショナルデータベースをベースとしたデータウェアハウスはクラウド環境に適応することが難しい

Teradata や Greenplum など、主流の従来のデータ ウェアハウスの多くは、リレーショナル モデルを使用してデータを整理するリレーショナル データベースです。これらのデータ ウェアハウスには、優れた SQL 互換性、複雑なクエリの効率的な実行、トランザクション ACID プロパティのサポートなど、多くの利点があります。ただし、これらの従来の MPP データベースには、弾力性の低いパフォーマンス、不十分な高可用性、データの孤立など、いくつかの欠陥もあります。

これらの問題により、従来のデータ ウェアハウスはクラウド環境でパブリック クラウドの利点を最大限に活用できなくなります。パブリック クラウドにはプライベート環境に比べて多くの利点がありますが、最も注目すべき点は次の 2 つです。

  • ほぼ無制限の柔軟なコンピューティング リソース:パブリック クラウドは柔軟なコンピューティング リソースを提供し、ユーザーは実際のニーズに応じてオンデマンドでリソースを割り当て、必要に応じて柔軟な拡張と縮小を実行できます。ユーザーは、独自のハードウェアインフラストラクチャを保守および管理することなく、ビジネスニーズに応じて必要なコンピューティングリソースを申請できます。
  • 安価で容量無制限のオブジェクト ストレージ:パブリック クラウドは、実質的に容量が無制限の安価なオブジェクト ストレージを提供します。オブジェクト ストレージの価格は比較的低いため、ユーザーは大規模なストレージ容量を利用でき、コストを削減し、効率を向上させることができます。 

クラウド環境によりよく適応し、パブリック クラウドの利点を最大限に活用するために、新世代のデータ ウェアハウスが徐々に登場しています。新世代のクラウド ネイティブ データ ウェアハウスはクラウド ネイティブ アーキテクチャ設計を採用しており、パブリック クラウドのエラスティック コンピューティング機能とオブジェクト ストレージ機能をより効果的に活用できます。これらはパブリック クラウドに迅速に導入および拡張でき、最新のデータ分析のニーズを満たす高性能のデータ処理および分析機能を提供します。 

1.3 リレーショナルデータウェアハウスとパブリッククラウドの利点を考慮した製品

ユーザーは、クラウド時代の到来に適応するために、リレーショナル データ ウェアハウスとパブリック クラウドの利点を考慮できる製品を必要としています。コンピューティング エンジンに関しては、リレーショナル データ ウェアハウスの多くの利点を備え、完全な SQL 言語をサポートでき、効率的な分散コンピューティング機能を備え、完全なトランザクション ACID 特性を備えている必要があります。パブリッククラウドの特徴としては、ストレージとコンピューティングの分離を実現し、柔軟なコンピューティングクラスターを提供し、必要なコンピューティングに対してのみ料金を支払うことができ、パブリッククラウドがもたらす利点を最大限に活用することができます。これが PieCloudDB の設計目標です。

2. PieCloudDB はユーザーに何をもたらすことができますか?

新世代のクラウド ネイティブ データ ウェアハウスとして、PieCloudDB は、従来のリレーショナル データ ウェアハウスの多くの利点とパブリック クラウドによってもたらされる多くの利点を考慮して、データ ウェアハウス コンピューティングとクラウド上のストレージの分離を実現します。

2.1 SQL の完全なサポート

PieCloudDB は PostgreSQL に大幅な改良を加え、分散コンピューティングの機能とストレージとコンピューティングの分離を実現しました。さらに、ロック、トランザクション、ログ、システム テーブルのストレージ、ユーザー テーブルなどのモジュールが完全に書き直され、破壊的な変更がもたらされました。同時に、PieCloudDB は、集計 (Agg)、サブプラン (Subplan)、サブリンク (Sublink)、外部結合クエリ (Outer Join)、ウィンドウ集計関数 (Window agg) などの複雑なクエリを含む SQL 標準に対する PostgreSQL の完全なサポートも維持します。そしてマテリアライズド・ビュー(マテリアライズド・ビュー)などです。これらの改善により、PieCloudDB は SQL 標準との互換性を維持しながら、より効率的で強力なクエリ機能を提供できるようになります。

2.2 効率的なクエリの最適化と実行者のマッチング

PieCloudDB は、複雑なクエリ用に設計されたオプティマイザーと、それに対応する効率的なエグゼキューターを実装しています。

  • 複雑なクエリ向けに設計されたオプティマイザー

PieCloudDB のオプティマイザーは、述語のプッシュダウン、サブクエリのサブ結合のプロモーション、外部結合の削除など、一連の包括的な論理最適化機能を提供します。さらに、オプティマイザーは純粋なコスト モデルに基づいて詳細な最適化を実行し、多段階の集約プロセスで各ノードのコストを推定し、動的プログラミングなどのアルゴリズムを使用して複数のパスを生成し、最終的にパスを選択します。クエリの実行コストが最も低くなります。これらの機能は、クエリのパフォーマンスと効率を向上させ、それによって PieCloudDB のクエリ実行プロセスを最適化するように設計されています。

PieCloudDB は分散データベースとして、複数のデータの再分散 (再シャッフル) や分散集約操作 (agg) など、多くの分散操作を実装する必要があります。テーブル間のクエリ中に効率的な分散テーブル結合を実行できるようにするために、PieCloudDB のオプティマイザーは、分散コスト推定のためのデータ分散特性を完全に記述する必要があります。

データ分散特性の包括的な説明を通じて、PieCloudDB のオプティマイザーはさまざまなノード上のデータの分散を考慮に入れることができるため、テーブル間のクエリのコストをより正確に見積もることができます。これにより、オプティマイザは効率的なクエリ プランを生成し、不必要なデータ再分散操作を回避し、クエリのパフォーマンスと効率を向上させることができます。

  • 分散環境向けの効率的なアクチュエータ

複雑なクエリ用に設計されたオプティマイザと連携するために、PieCloudDB は分散環境でクエリ操作を実行する効率的なエグゼキュータを実装しています。マルチグループおよびマルチステージの実行モデルを採用し、大量のデータ交換を実行することにより、PieCloudDB のエグゼキュータは分散環境でクエリ操作を効率的に実行できます。この実行モデルは、分散システムのコンピューティング リソースを最大限に活用し、クエリの並列性と全体的なパフォーマンスを向上させることができます。同時に、PieCloudDB はオプティマイザーとの緊密な連携により、オプティマイザーによって生成されたクエリ プランの特性に従ってエグゼキューターの実行戦略を最適化し、クエリのパフォーマンスと効率をさらに向上させることができます。

2.3 トランザクションの完全なサポート (ACID)

PieCloudDB は、トランザクションの ACID 特性 (アトミック性、一貫性、分離性、耐久性) を含むトランザクションの完全なサポートを提供します。

  • アトミック性: PieCloudDB は、トランザクション内のすべての操作が正常に完了するか、失敗してロールバックされることを保証します。トランザクション内の操作が失敗した場合、トランザクション内のすべての操作がロールバックされ、データベースの状態はトランザクション開始前の状態に戻り、データの整合性が維持されます。
  • 一貫性:トランザクションがコミットされる前に、PieCloudDB はトランザクションの操作が事前定義された制約とルールに準拠しているかどうかをチェックして、データベースの一貫性を確保します。トランザクションが完了した後もデータベースの一貫性が保たれていれば、トランザクションは成功したとみなされます。
  • 分離: PieCloudDB は、一般的に使用される 2 つの分離レベル、Read Committed (読み取りコミット) とRepeatable Read (反復読み取り) をサポートしています。Read Committed レベルでは、トランザクションは他のトランザクションがコミットした変更のみを確認できますが、Repeatable Read レベルでは、トランザクションは他の同時トランザクションの影響を受けることなく、トランザクション全体で一貫したスナップショットを確認できます。
  • 耐久性: PieCloudDB は、トランザクションが正常にコミットされると、システム障害やクラッシュが発生した場合でも、データベースへの変更が永続的に保存されることを保証します。これは、トランザクション ログを安定したストレージ メディアに記録し、リカバリ中に再生できるようにすることで実現されます。

PieCloudDB は、トランザクションの ACID プロパティを完全にサポートすることで、信頼性と一貫性のあるデータ管理メカニズムを提供します。同時環境であっても、障害が発生した場合でも、PieCloudDB はデータの整合性と信頼性を保証します。

2.4 エクストリーム コンピューティング クラスターの弾力性

PieCloudDB は究極のコンピューティング クラスターの拡張と縮小機能を備えており、コンピューティング クラスターの迅速な拡張と縮小を実現できます。PieCloudDB の Executor ノードは永続的なデータを保持せず、拡張および縮小操作にはデータの移動が伴いません。さらに、Executor ノードはシステム テーブル、トランザクション、ロックに直接アクセスしません。コンピューティング クラスターを拡張する場合、PieCloudDB は新しい仮想マシン ノードにバイナリをデプロイし、メタデータ サービスに登録するだけで済みます。この設計により、スケーリング操作の効率が保証されます。

PieCloudDB は、迅速なスケーリングをサポートするために準備された独立したコンピューティング プールをユーザーに提供します。このコンピューティング プールでは、PieCloudDB は特定の範囲内で第 2 レベルの拡張および縮小操作を実現できます。これは、ユーザーがコンピューティング リソースを増やす必要がある場合、PieCloudDB が新しいコンピューティング ノードを迅速に追加できるため、クラスター全体でより多くの同時リクエストを処理できることを意味します。逆に、ユーザーがコンピューティング リソースを削減する必要がある場合、PieCloudDB はコストとリソースを節約するためにコンピューティング ノードを迅速に縮小することもできます。

2.5 マルチクラスターと高可用性

PieCloudDB は複数のクラスターをサポートします。ユーザーは同じデータセット上で複数のクラスターを開始できます。実稼働環境では、部門ごとにクラスター サイズの要件が異なることがよくあります。この場合、クラスタが 1 つしかない場合、クラスタの最大需要に応じてクラスタを作成する必要があり、リソースの無駄が発生します。マルチクラスター シナリオでは、さまざまな部門がそれぞれのニーズに応じてさまざまなサイズのクラスターを作成でき、タスクの終了時にクラスターをシャットダウンできます。複数のクラスターが同じデータ セットにアクセスし、同じ ACID 機能を共有できます。

PieCloudDB Executor はステートレスであるため、Executor が失敗すると、Coordinator が次のクエリを実行し、残りの Executor がタスクを実行します。このプロセス中、ユーザーは何も認識せず、サービスに影響を与えることはありません。

これらの機能により、PieCloudDB を使用すると、ユーザーは OLAP シナリオで PostgreSQL と同様に PieCloudDB を使用できるようになります。ユーザーは、すでに発生した計算とストレージに対してのみ料金を支払います。ユーザーは、異なるサイズの複数のクラスターをオンデマンドで開始および停止して、さまざまなタイプのタスクに適応できるため、パフォーマンスと開発効率のバランスが取れます。

3. PieCloudDB クラウドネイティブ アーキテクチャの実装

クラウド環境に適応するために、PieCloudDB は、弾力的にスケーラブルなクラスターとマルチクラスターという 2 つの主要なクラウドネイティブ機能を実装し、完全にステートレスな Executor ノード、独立したシステム テーブル、および分散ロックを作成します。

3.1 仮想データウェアハウス

PieCloudDB は、拡張および縮小のプロセス中にデータを移動する必要がないことを実現するために、ユーザー データをオブジェクト ストレージに分離します。さらに、Executor ノードはシステム テーブル、トランザクション、ロック情報を保存せず、コーディネーターに依存してこれらの問題を解決するため、Executor ノードはステートレス ノードとなり、第 2 レベルのスケーリングを実現します。

マルチマスター アーキテクチャを実装し、ステートフル コーディネーター ノードを実装するために、PieCloudDB はメタデータ サービスを使用してこれらの機能を実行します。システムテーブルはKVデータベースFoundationDBにKey-Valueの形式で格納され、FoundationDBの短期・少量トランザクション特性により分散ロックと分散トランザクションを実現します。このようにして、PieCloudDB はコーディネーター ノード上で分散ロックとトランザクションを処理し、システムの一貫性と信頼性を確保できます。

この一連の設計と運用により、PieCloudDBは完全にステートレスな仮想データウェアハウスを実現しました。ユーザーは、拡張および縮小のプロセス中にデータを移動することなく、必要に応じて仮想データ ウェアハウスを作成および閉じることができ、ノードを迅速に拡張および縮小できます。これにより、PieCloudDB はさまざまな規模や負荷のニーズに効率的に適応し、柔軟なデータ ストレージとコンピューティング リソース管理を提供できるようになります。

  • システムテーブル: mStore

PieCloudDB は、タプルを Key-Value の形式で FoundationDB に保存し、FoundationDB キーの自然な並べ替えを利用してインデックス付けを実装します。PieCloudDB では、各タプルは Key-Value ペアとしてエンコードされます。ここで、Key はタプルのインデックス情報を表し、Value にはタプルのデータ コンテンツが含まれます。FoundationDB キーの自然な順序を活用することで、範囲クエリとインデックス検索を効率的に実行でき、高速なデータの取得とアクセスが可能になります。

マルチバージョンの同時実行制御を実現するために、PieCloudDB は Xmin、Xmax、cid などのメカニズムを使用します。Xmin と Xmax は、トランザクションの可視性情報をタプルに記録します。Xmin は最も古い可視トランザクションを表し、Xmax は最新の可視トランザクションを表します。cid(コミットID)はトランザクションのコミットIDを示します。これらのメカニズムを通じて、PieCloudDB は同時トランザクションの分離と一貫性を実現し、複数バージョンのクエリとロールバック操作をサポートします。

タプルを Key-Value ペアとして保存し、FoundationDB の自然な並べ替えを使用し、MVCC メカニズムを採用することにより、PieCloudDB はデータ ストレージ、インデックス作成、同時アクセスを効率的に処理できるため、高性能で信頼性の高いデータベース サービスを提供できます。

  • データシート: oStore

PieCloudDB は oStore を使用して、データをオブジェクト ストレージ (S3 など) に分離することで、オブジェクト ストレージ上にユーザー テーブルを構築します。オブジェクト ストレージ自体は挿入 (insert) と削除 (delete) 操作のみをサポートするため、更新 (update) と追加 (append) 操作はサポートしません。PieCloudDB は、MVCC (マルチバージョン同時実行制御) 機能を実装するために mStore に補助テーブルを作成します。

mStoreの補助テーブルでは、各タプルがoStoreのブロックに対応しており、ユーザーデータの一部がoStoreのブロックに格納されます。このように、補助テーブルの各タプルの可視性と、対応するブロックの可視性とが関連付けられ、MVCCの特徴が実現される。更新 (update) または削除 (delete) 操作が実行されると、PieCloudDB は新しいブロックを生成し、変更されていないタプルを新しいブロックに配置し、更新されたユーザー データを新しいブロックに配置します (たとえば、更新操作の実行後)。ブロック 4 で新しいブロック 5 を生成し、更新されたユーザー データを新しいブロックに入れます 5)。最後に、補助テーブルは更新 (更新) 操作を完了します。 

この設計と運用を通じて、PieCloudDB はオブジェクト ストレージに MVCC 機能を実装し、補助テーブルを通じてデータのバージョンと可視性を管理できます。これにより、PieCloudDB は、データの一貫性と同時実行制御の正確さを維持しながら、更新および削除操作をサポートできるようになります。

  • 分散ロックとトランザクション

PieCloudDBは、FoundationDBのトランザクションコミット競合メカニズムを利用して、ロックの共有領域への正しいアクセスを実現し、分散ロックを実現します。

PieCloudDB では、複数のトランザクションが共有領域にアクセスする必要がある場合、それらは FoundationDB のトランザクション メカニズムを通じて競合し、調整されます。各トランザクションは、ロックを取得し、共有リソースに対して操作を実行しようとします。複数のトランザクションが同時に同じ共有ロックを要求した場合、FoundationDB のトランザクション コミット競合メカニズムにより、1 つのトランザクションのみがロックを正常に取得して動作できることが保証され、他のトランザクションはブロックまたはロールバックされます。

FoundationDB のトランザクション コミット競合メカニズムを利用することで、PieCloudDB は分散ロック管理を実装し、共有領域への正しいアクセスとリソースの相互排他を保証できます。このメカニズムにより、複数のトランザクション間の分離と一貫性が確保され、データの競合や競合が回避され、信頼性の高い分散ロック機能が提供されます。

さらに、PieCloudDB は FoundationDB 上に分散トランザクションも実装し、mStore、oStore、分散ロックおよびトランザクションの実装を通じてクラウドネイティブの分散アーキテクチャを構築します。このようなアーキテクチャは、高信頼性、高性能のデータベース サービスを提供し、分散データの運用と管理をサポートできます。

優れたアーキテクチャ設計はデータベース製品の成功への第一歩です。OpenPie 研究開発チームは引き続き PieCloudDB 製品の開発を繰り返し、集計プッシュダウン、事前計算、パフォーマンス向上のためのブロック スキップなどの機能を導入し、まもなく Time Travel を開始する予定です、ブランチ、データ共有などのシリーズはユーザー エクスペリエンスを向上させます。PieCloudDB は今後も前進を続け、eMPP 分散特許技術、サーバーレスおよび透過的データ暗号化 (TDE) などの複数のコア技術のサポートにより、高セキュリティ、高信頼性、高可用性の「ハードウェア」を構築します。 Panshi のクラウドネイティブ仮想データ ウェアハウスは、企業がデータ価値を最大化するのに役立ちます。 

 

 


 

 

 

 

{{名前}}
{{名前}}

おすすめ

転載: my.oschina.net/u/5944765/blog/10085813