TDSQL-C for MySQLはパラレルクエリ機能をサポートし、大規模テーブルや計算量が大きいクエリの処理効率向上に貢献します。本稿ではパラレルクエリ機能の背景について説明します。
機能の背景
TDSQL-C for MySQLは「ログ即ストレージ」のアーキテクチャを採用し、コンピュートとストレージを分離。各コンピュートノードが分散ファイルシステムを通じて基盤ストレージを共有することで、ユーザーコストを削減すると同時にステートレスなコンピュートノードを実現します。これにより、コンピュートリソースは秒単位の時間で弾力的な拡張と障害回復を可能にします。
TDSQL-C for MySQLは、従来のMySQLベースのリレーショナルデータベースが抱えるコンピュート性能、ストレージ能力、災害対策能力、スケーリング能力における課題を解決し、突破を実現しています。しかしながら、依然として以下の課題が存在します:
クラウドネイティブデータベースのストレージ能力と規模の向上が進む中、TDSQL-C for MySQLはPB級のデータ量をサポートするようになりました。大規模データを扱うテーブルが増加しており、一部ユーザーのテーブルはTB級に達しています。大規模テーブルのクエリにおいて、既存の技術的制約によりSQL文の応答が遅延し、業務プロセスに影響を及ぼすケースが生じています。
現在の市場環境では、業務上でAPクエリ(レポート統計やその他の分析クエリなど)が増加しています。これらのクエリは頻度こそ少ないものの、通常は大規模データを処理し、高いクエリ時間性能が求められます。一定のデータ分析能力や異種データ処理能力が標準的な要件となっています。
上記の2つの課題が発生する主な原因は、MySQLエコシステムにおいて、各オープンソースディストリビューションが従来のシングルスレッドクエリ処理モードのみをサポートしている点にあります。つまり、単一のSQL処理に関わる解析、最適化、実行の各段階が、すべて1つのスレッド(ユーザースレッドと呼ばれる)で完了されます。この技術実装モードでは、現代的なマルチコアCPUと大容量メモリといったハードウェアリソースを十分に活用できず、一定のリソースの無駄が生じています。
したがって、複雑な分析の利用簡素化と分析性能の向上が求められており、同一データセットを基にマルチコアを動員して大規模クエリ(クエリ内並列処理)に対応することは、クエリ加速とコスト削減・効率化における重要な施策です。これがパラレルクエリ(Parallel Query、PQ)であり、HTAP製品形態を構築する技術手段の一つです。
機能メリット
コストゼロでの性能向上:カーネル能力のアップグレードにより、追加費用なしでインスタンスのCPU計算能力を最大限に活用し、ステートメントの応答速度を高速化、コンピューティング性能が大幅に向上します。
透過的プロセス監視:複数の監視項目によりパラレルクエリプロセスを監視し、あらゆる異常状態をリアルタイムに把握可能。これによりクラスタの安定稼働を保護します。
一般的なSQL文の包括的サポート:ほとんどの一般的なSQL文に対応し、多様な業務シナリオを支え、業務のスムーズな加速を確保します。
柔軟なパラメータ設定:複数のパラメータを提供し、パラレルクエリの起動・停止条件を制御可能。これによりクエリをよりインテリジェントにし、様々な業務シナリオに柔軟に対応できます。導入不要で本機能を活用いただけます。