E-MapReduce (EMR) Serverless StarRocks は、Alibaba Cloud 上で提供されるフルマネージドな StarRocks サービスです。EMR コンソールから StarRocks インスタンスの作成およびインスタンス・データの管理が可能であり、クラスターの構成、運用、スケーリングを一切行う必要はありません。
StarRocks とは
StarRocks は、高速・リアルタイム・効率的な多次元データ分析に特化して設計された分析用データベースです。Massively Parallel Processing (MPP) アーキテクチャ、ベクトル化実行エンジン、コストベースオプティマイザ (CBO)、インテリジェントなマテリアライズドビュー、およびリアルタイム更新可能なカラムナーストレージエンジンを採用しています。MySQL プロトコルと互換があるため、任意の MySQL クライアントや一般的な BI ツールから直接接続できます。水平スケーリングに対応しており、高可用性および高信頼性を実現するよう設計されています。
StarRocks は、以下の分析シナリオに適しています。
-
リアルタイムデータウェアハウス — トランザクションデータベースからの変更を数秒単位で同期し、最新のデータをクエリ可能
-
オンライン分析処理 (OLAP) — 多次元レポート、セルフサービスダッシュボード、アドホッククエリの実行
-
データレイク分析 — Apache Hive、Apache Iceberg、Apache Hudi、Delta Lake に格納されたデータを移行せずに直接クエリ可能
主な機能
MPP フレームワーク
StarRocks は、すべてのクエリを物理的な計算ユニットに分割し、各マシン上で並列実行します。各ユニットには専用の CPU およびメモリが割り当てられます。クラスターをスケールアウトすると、単一クエリのパフォーマンスも比例して向上します。
ベクトル化実行エンジン
ベクトル化実行エンジンは、すべての演算子、関数、スキャンおよびフィルタリングモジュール、インポートおよびエクスポートモジュールを CPU レベルで最適化します。単一命令複数データ (SIMD) 命令を活用することで、1 クロックサイクルあたりより多くのデータを処理可能であり、標準データセットにおけるベンチマークでは、全体的な演算子パフォーマンスが 3~10 倍向上します。
また、このエンジンには「エンコード済みデータに対する操作 (Operation on Encoded Data)」機能が含まれており、文字列をデコードせずに、結合 (join)、集約 (aggregation)、式評価などの演算子を直接実行できます。これにより、SQL 実行の複雑さが低減され、クエリ速度が 2 倍以上向上します。
コンピュート・ストレージ分離
StarRocks 3.0 で導入されたコンピュート・ストレージ分離アーキテクチャでは、コンピュートとストレージが独立してスケーリング可能になります。コンピュートノードのスケールアウトは数秒で完了し、従来のようにコンピュートとストレージを同時に拡張する必要による過剰プロビジョニングを回避できます。
ストレージ層は、ほぼ無制限の容量を持つさまざまなオブジェクトストレージサービスを活用し、Hadoop 分散ファイルシステム (HDFS) とも互換があります。コンピュート・ストレージ分離アーキテクチャは、コンピュート・ストレージ統合アーキテクチャと同等の全機能を維持しており、データ更新、データレイク分析、マテリアライズドビューによる高速化など、すべての機能が同様に動作します。データ書き込みおよびホットデータクエリのパフォーマンスは、両アーキテクチャ間でほぼ同等です。
コストベースオプティマイザ
複雑な複数テーブル結合クエリでは、有効な実行計画の数がテーブル数に伴って指数関数的に増加するため、最適な実行計画の選択は NP 困難問題となります。StarRocks のコストベースオプティマイザ (CBO) は、ベクトル化実行エンジンに最適化されたカスケード型アーキテクチャを採用しています。以下をサポートします。
-
共通部分式の再利用およびサブクエリの書き換え
-
Lateral Join および結合順序の最適化 (Join Reorder)
-
分散結合実行ポリシーの選択
-
低カーディナリティ辞書エンコーディングの最適化
CBO は、TPC-DS の全 99 個の SQL ステートメントをサポートします。
リアルタイムカラムナーストレージエンジン
StarRocks はデータをカラム形式で格納するため、圧縮率の向上、ディスク I/O の削減、および一部のカラムのみを読み取るクエリ(OLAP ワークロードにおける共通パターン)の高速化が可能です。StarRocks では、データを数秒以内にロードでき、ニアリアルタイムのデータ処理能力を提供します。
ストレージエンジンは、データインポートに対して ACID 特性(原子性、一貫性、独立性、永続性)を保証します。バッチインポートは、成功または失敗のいずれかを原子的に行い、同時実行トランザクションはスナップショット隔離の恩恵を受けます。また、部分更新およびアップサート操作をサポートし、主キーインデックスと「削除+挿入 (Delete-and-Insert)」モードを用いることで、読み取り時のソートおよびマージのオーバーヘッドを回避します。セカンダリインデックスは、高スループットなデータ更新シナリオに対応します。
インテリジェントなマテリアライズドビュー
StarRocks のマテリアライズドビューは自動的に動作します。
-
自動同期 — ソーステーブルのデータが変更されると、対応するマテリアライズドビューがリアルタイムで変更を検出し適用し、データの一貫性を維持
-
透過的なクエリ書き換え — クエリプランニング時に、マテリアライズドビューがクエリの高速化に寄与できる場合、自動的にクエリを書き換えます。アプリケーション側の変更は不要です。
-
バックグラウンドでのライフサイクル管理 — マテリアライズドビューの作成および削除を手動介入なしで実行可能。システムがバックグラウンドで処理します。
-
ETL の代替 — マテリアライズドビューを活用して、データをその場で変換・処理し、従来の抽出・変換・書き出し (ETL) パイプラインおよび上流の前処理を置き換えます。
データレイク分析
外部カタログを使用して、データレイクを直接クエリできます。データ移行は不要です。StarRocks は以下の機能をサポートします。
-
テーブルフォーマット:Apache Hive、Apache Iceberg、Apache Hudi、Delta Lake
-
ファイルフォーマット:Parquet、ORC、CSV
-
ストレージサービス:HDFS、Amazon Simple Storage Service (S3)、Object Storage Service (OSS)
このモデルでは、データレイクが BI、AI、アドホッククエリ、およびレポートワークロードにおける唯一の真実の源 (SSOT) として機能し、StarRocks がベクトル化エンジンおよび CBO を活用して計算および分析を担当します。
Serverless StarRocks の追加機能
StarRocks を自社で運用する場合、クラスターのプロビジョニング、バージョンアップグレードの計画、セキュリティ設定、システム監視など、多数の運用作業が必要となります。EMR Serverless StarRocks では、これらの運用オーバーヘッドが完全に解消されます。
-
クラスター管理不要 — サービスはフルマネージドであり、運用・保守 (O&M) が不要です。クラスターサイジング、セットアップ、継続的なチューニングを省略できます。
-
可視化されたインスタンス管理 — EMR コンソールからインスタンスの管理および O&M タスクの実行が可能
-
可視化されたモニタリング — 組み込みのモニタリングおよび O&M ダッシュボードを提供
-
自動バージョンアップグレード — StarRocks のメジャーバージョンおよびマイナーバージョンが自動的にアップグレードされます。
-
EMR StarRocks Manager によるエンタープライズ級管理:
-
*セキュリティ*:ユーザーおよび権限の管理
-
*診断分析*:遅延 SQL クエリの特定およびビジュアルツールを用いた SQL 実行分析
-
*データ管理*:データベース、テーブル、パーティション、シャード、タスクの閲覧により、O&M を効率化
-