E-MapReduce(EMR)Serverless StarRocks は、Alibaba Cloud 上のオープンソース StarRocks のフルマネージドサービスです。 Serverless StarRocks インスタンスを作成し、EMR コンソールでインスタンスとデータを柔軟に管理できます。 このトピックでは、オープンソース StarRocks のコア機能と、オープンソース StarRocks に基づいて Serverless StarRocks によって提供される拡張機能について説明します。
オープンソース StarRocks の概要
StarRocks は、MySQL プロトコルをサポートする分析データベースです。 StarRocks は、超並列処理(MPP)フレームワークを採用し、ベクトル化実行エンジン、コストベースオプティマイザ(CBO)、インテリジェントなマテリアライズドビュー、およびリアルタイムで更新可能なカラムナーストレージエンジンを提供します。 これにより、高速でリアルタイムの効率的な多次元データ分析を実現できます。 リアルタイムまたはオフラインのデータソースを StarRocks にインポートしてデータ分析を行うか、データレイクのさまざまな形式のデータを直接分析できます。 StarRocks は MySQL プロトコルと互換性があります。 したがって、MySQL クライアントと一般的な BI ツールを使用して StarRocks に接続できます。 StarRocks は、水平スケーリング機能を提供し、高可用性、高信頼性、および容易な O&M を特長としています。 StarRocks は、リアルタイムデータウェアハウスのデータ分析、オンライン分析処理(OLAP)レポート、データレイクなど、さまざまな分析シナリオで使用できます。
オープンソース StarRocks の機能
MPP フレームワーク
StarRocks は MPP フレームワークを採用しています。 クエリ要求は、複数のマシンで並列に実行できる複数の物理コンピューティングユニットに分割されます。 各マシンには、専用の CPU とメモリリソースが搭載されています。 MPP フレームワークを使用すると、単一の要求で、すべてのマシンのリソースを完全に使用できます。 このようにして、クラスターがスケールアウトされると、単一クエリの パフォーマンス を継続的に向上させることができます。
完全ベクトル化実行エンジン
StarRocks は、コンピューティング層でベクトル化技術を採用して、すべての演算子、関数、スキャンおよびフィルタリングモジュール、およびインポートおよびエクスポートモジュールを体系的に最適化します。 ベクトル化実行エンジンは、CPU の処理能力を最大化します。 ベクトル化実行エンジンを使用して、列に格納されているデータを編成および処理できます。 これにより、作業効率が大幅に向上します。 StarRocks はデータを格納し、メモリ内でデータを編成し、列に基づいて SQL 演算子を計算します。 これにより、CPU キャッシュが最大限に活用され、仮想関数呼び出しと分岐判断が削減されます。 その結果、CPU 命令はスムーズかつ効率的に実行されます。
ベクトル化実行エンジンは、CPU によって提供される単一命令複数データ(SIMD)命令を少なく使用して、より多くのデータ操作を実行できます。 標準データセットのテストでは、演算子の全体的な パフォーマンス が 3 ~ 10 倍向上することが示されています。
演算子の完全なベクトル化に加えて、StarRocks の実行エンジンは、エンコードデータの操作などの他の最適化技術を提供します。 この技術により、StarRocks は、データをデコードする必要なく、結合、集計、式演算子などのさまざまな演算子をエンコードされた文字列で実行できます。 これにより、SQL ステートメントの実行中の計算の複雑さが大幅に軽減され、クエリ速度が 2 倍以上向上します。
コンピューティングストレージの分離
StarRocks 3.0 は、コンピューティングストレージ分離アーキテクチャをサポートしています。 このアーキテクチャは、コンピューティングリソースをストレージリソースから分離します。 これにより、StarRocks の柔軟性、 パフォーマンス 、信頼性が向上し、コストが削減されます。
コンピューティングストレージ分離アーキテクチャでは、ストレージリソースとコンピューティングリソースを個別に増減できます。 これにより、コンピューティングストレージ統合アーキテクチャにおけるコンピューティングリソースとストレージリソースの比例スケーリングによって発生するリソースの無駄を防ぎます。 また、コンピューティングノードは数秒以内に動的にスケーリングできるため、リソース使用率が大幅に向上します。
StarRocks のストレージ層は、ほぼ無制限の容量とオブジェクトストレージの高可用性を提供します。 StarRocks はさまざまなオブジェクトストレージサービスをサポートし、HDFS と互換性があります。 これにより、大規模データのストレージと永続性が保証されます。
コンピューティングストレージ分離アーキテクチャは、コンピューティングストレージ統合アーキテクチャによって提供される機能を保持します。 データ書き込みとホットデータクエリの パフォーマンス は、2 つのアーキテクチャでほぼ同じです。 コンピューティングストレージ分離アーキテクチャを使用して、コンピューティングストレージ統合アーキテクチャを使用して実行するのと同じ操作(データ更新、データレイク分析、マテリアライズドビューベースの高速化など)を実行できます。
CBO オプティマイザ
複数テーブル結合クエリでは、高 パフォーマンス を提供する実行エンジンでは、最適な実行 パフォーマンス を確保できない場合があります。 これは、さまざまな実行プランの効率が大きく異なるためです。 結合テーブルの数が増加すると、有効な実行プランの数は指数関数的に増加するため、最適な実行プランを見つけることは NP 困難になります。 この場合、複数テーブル結合クエリで最適な パフォーマンス を実現するには、最適なクエリプランを正確に見つけることができるクエリ オプティマイザ が必要です。
StarRocks は新しい CBO を提供します。 CBO はカスケードのようなアーキテクチャを採用し、StarRocks のベクトル化実行エンジン用にカスタマイズされており、さまざまな革新的で最適化された手段を提供します。 CBO は、共通の式を再利用し、関連するサブクエリを書き直すのに役立ちます。 また、CBO は、Lateral Join、Join Reorder、分散結合実行のポリシー選択をサポートし、低カーディナリティ辞書エンコーディングなどの主要機能の パフォーマンス を最適化します。 CBO は、合計 99 の TPC-DS SQL ステートメントをサポートしています。
StarRocks は、複数テーブル結合クエリ、特に複雑な複数テーブル結合クエリで競合他社を凌駕しています。 これにより、ベクトル化実行エンジンの潜在的な パフォーマンス が大幅に向上します。
リアルタイムで更新可能なカラムナーストレージエンジン
StarRocks は高度なカラムナーストレージエンジンを採用して、同じタイプのデータを列に継続的に格納します。 カラムナーストレージを使用すると、データをより効率的にエンコードできます。 これにより、データ圧縮率が向上し、ストレージコストが削減され、クエリプロセス中のディスク I/O が削減されます。 その結果、クエリ速度が大幅に向上します。 典型的な OLAP シナリオでは、特定の列のデータのみがクエリされます。 カラムナーストレージを使用すると、必要な列のデータのみを読み取ることができるため、ディスクの I/O 負荷が大幅に軽減されます。
StarRocks を使用すると、数秒以内にデータをロードでき、ほぼリアルタイムのデータ処理機能が提供されます。 StarRocks のストレージエンジンは、データインポート中の原子性、一貫性、分離性、耐久性(ACID)を保証します。 バッチでデータをインポートする場合、インポートトランザクションは成功するか失敗します。 ストレージエンジンでは、複数のトランザクションを並列に実行でき、トランザクションのスナップショット分離機能が提供されます。
また、ストレージエンジンは、部分更新や upsert などの操作もサポートしています。 ストレージエンジンの削除と挿入モードを使用すると、主キーインデックスを使用してデータをすばやくフィルタリングできます。 これにより、データ読み取りプロセス中にソートおよびマージ操作が実行されなくなります。 また、ストレージエンジンはセカンダリインデックスを使用して、大規模データ更新シナリオでのクエリ要求にすばやく応答することもできます。
インテリジェントなマテリアライズドビュー
自動データ同期とリアルタイム更新: StarRocks では、マテリアライズドビューを使用してクエリを高速化し、データウェアハウスのレイヤリングを実行できます。 StarRocks のマテリアライズドビューは、元のテーブルからデータを自動的に同期できます。 元のテーブルのデータが変更されると、対応するマテリアライズドビューはデータをリアルタイムで検出して同期できます。 これにより、データの一貫性が保証されます。 StarRocks は、マテリアライズドビューを自動的に選択できます。 クエリ計画フェーズで、StarRocks はマテリアライズドビューがクエリ効率を向上させることができると検出すると、クエリを自動的に書き直して、最適なマテリアライズドビューがクエリに使用されるようにします。
マテリアライズドビューの柔軟な作成と管理: StarRocks では、マテリアライズドビューを柔軟に作成および削除できます。 作成または削除をトリガーすると、システムは手動介入なしでバックグラウンドで操作を完了します。
抽出、変換、ロード(ETL)プロセスとデータ処理の簡素化: StarRocks のマテリアライズドビューは、従来の ETL モデリングプロセスを置き換えることができます。 マテリアライズドビューを使用すると、アップストリームアプリケーションでデータを変換する必要なく、データを変換および処理できます。 これにより、データ処理プロセスが簡素化されます。
データレイク分析
StarRocks を使用すると、オンプレミスデータとデータレイクに格納されているデータを効率的に分析できます。 StarRocks によって提供される外部カタログを使用して、データを移行することなく、Apache Hive、Apache Iceberg、Apache Hudi、Delta Lake などのデータレイクに格納されているデータをクエリできます。 StarRocks は、Parquet、ORC、CSV などのファイル形式をサポートしています。 StarRocks を使用すると、HDFS、Amazon Simple Storage Service(S3)、Object Storage Service(OSS)などのサービスを使用してデータを格納できます。
データレイク分析シナリオでは、StarRocks はデータの計算と分析に使用され、データレイクはデータの格納、編成、保守に使用されます。 データレイクを使用すると、さまざまな形式でデータを格納し、スキーマを柔軟に定義できます。 データレイクは、BI、AI、アドホッククエリ、データレポートなど、さまざまなビジネスシナリオに単一の情報源(SSOT)を提供し、データの一貫性と正確性を確保します。 StarRocks は、ベクトル化実行エンジンと CBO の利点を最大限に活用して、データレイク分析の パフォーマンス を向上させます。
Serverless StarRocks の拡張機能
Serverless StarRocks は、エンタープライズレベルの機能を以下の点で最適化します。
容易な O&M: Serverless StarRocks は、フルマネージドの O&M 不要のサービスです。 これにより、StarRocks の複雑さと O&M コストが大幅に削減されます。
StarRocks インスタンスの視覚化された管理: StarRocks インスタンスを管理し、インスタンスで O&M を簡単に実行できます。
視覚化された監視と O&M 機能。
StarRocks のメジャーバージョンとマイナーバージョンの自動アップグレード: StarRocks のバージョンを簡単に管理できます。
EMR StarRocks Manager のサポート: Serverless StarRocks は、エンタープライズレベルの管理機能を提供します。
セキュリティ機能: ユーザーと 権限 を管理できます。
診断分析: Serverless StarRocks は、視覚化された低速 SQL クエリと SQL クエリおよび分析機能をサポートしています。
データ管理: データベース、テーブル、パーティション、シャード、タスクをクエリできます。 これにより、O&M 効率が向上します。