OceanBaseのパラレル実行エンジンと分散トランザクション処理メカニズムにより、複雑なSQLクエリに直面した際、データ量が多く複雑になるほど、従来のデータベースよりも実行効率が速くなります。 このチュートリアルでは、インポートされたTPC-Hのサンプルデータに対して単一テーブルクエリと複数テーブルクエリを実行し、パラレル実行を追加した後のデータを比較します。その他のTPC-Hテストもご自身で体験いただけます。詳細については、Operational OLAPを体験するに関するドキュメントをご参照ください。
説明
このチュートリアルは、OB Cloudコンソールでもインタラクティブチュートリアルとして公開されています。チュートリアルに沿って実際のOB Cloud環境でインタラクティブに体験することもできます。OB Cloudコンソールにログインし、左側のナビゲーションバーの実践チュートリアルをクリックすると、公開されているすべてのインタラクティブチュートリアルを見ることができます。
概念紹介
パラレル実行
OceanBaseデータベースのパラレル実行とは、分散アーキテクチャ下で行われる並行処理を指します。OceanBaseデータベースは分散アーキテクチャを採用し、データをシャーディングして異なるノードに保存します。データシャーディングとタスクシャーディングにより、データと計算のパラレル処理を実現しています。OceanBaseでは、各ノードが独立してタスクを実行でき、高速なネットワークを通じて相互に通信し、データのやり取りと同期を実現します。
前提条件
現在のインスタンスに対するインスタンス管理者、データ読み取り、およびデータサービス管理者権限を保有していること。権限がない場合は、組織管理者に連絡して追加してもらってください。
利用可能なトランザクション型クラスタインスタンスをお持ちであること。テナントの作成については、テナントの作成を参照してから、以下の手順を実行してください。
環境に使用可能なMySQL互換モードのテナント、MySQLデータベース、およびアカウントが既に存在し、データベースアカウントに対して読み書き権限が付与されていること。作成が必要な場合は、詳細についてはアカウントの作成およびデータベースの作成(MySQL専用)に関するドキュメントをご参照ください。
シナリオ1:単一テーブルクエリ
インスタンス一覧ページで、対象のインスタンスとテナントを選択し、**概要**ページに移動します。
**SQLコンソール**を開き、データベースアカウントでSQLコンソールにログインし、データベース
tutorialdbを選択します。SQLウィンドウに以下のSQLを入力します。
select l_returnflag, l_linestatus, sum(l_quantity) as sum_qty, sum(l_extendedprice) as sum_base_price, sum(l_extendedprice * (1 - l_discount)) as sum_disc_price, sum(l_extendedprice * (1 - l_discount) * (1 + l_tax)) as sum_charge, avg(l_quantity) as avg_qty, avg(l_extendedprice) as avg_price, avg(l_discount) as avg_disc, count(*) as count_order from lineitem where l_shipdate <= date '1998-12-01' - interval '90' day group by l_returnflag, l_linestatus order by l_returnflag, l_linestatus;SQLを実行し、テーブル
lineitemのデータをクエリして実行時間を記録します。
SQL実行能力の分析
実行時間は約315.73msで、同仕様のMySQLインスタンスの3~5倍の速度です。OceanBaseは分散アーキテクチャに基づき、高性能なトランザクション処理を保証しつつ、リアルタイム分析やバッチ処理などの分析シナリオを実行できます。OLTP性能に影響を与えることなく、データ冗長性を最大限に低減し、企業の総コストを大幅に削減することができます。
説明
上記のデータは参考用です。実際の値は、実際の実験結果に基づいてください。
シナリオ2:複数テーブルのクエリ
part、supplier、partsupp、nation、regionの各テーブルに対して集計クエリを実行します。
select
s_acctbal,
s_name,
n_name,
p_partkey,
p_mfgr,
s_address,
s_phone,
s_comment
from
part,
supplier,
partsupp,
nation,
region
where
p_partkey = ps_partkey
and s_suppkey = ps_suppkey
and p_size = 15
and p_type like '%BRASS'
and s_nationkey = n_nationkey
and n_regionkey = r_regionkey
and r_name = 'EUROPE'
and ps_supplycost = (
select
min(ps_supplycost)
from
partsupp,
supplier,
nation,
region
where
p_partkey = ps_partkey
and s_suppkey = ps_suppkey
and s_nationkey = n_nationkey
and n_regionkey = r_regionkey
and r_name = 'EUROPE'
)
order by
s_acctbal desc,
n_name,
s_name,
p_partkey;
以下のコマンドを実行し、8つのパラレル実行を有効にして計算を高速化し、計算時間を記録します。
select /*+ parallel(8) */
s_acctbal,
s_name,
n_name,
p_partkey,
p_mfgr,
s_address,
s_phone,
s_comment
from
part,
supplier,
partsupp,
nation,
region
where
p_partkey = ps_partkey
and s_suppkey = ps_suppkey
and p_size = 15
and p_type like '%BRASS'
and s_nationkey = n_nationkey
and n_regionkey = r_regionkey
and r_name = 'EUROPE'
and ps_supplycost = (
select
min(ps_supplycost)
from
partsupp,
supplier,
nation,
region
where
p_partkey = ps_partkey
and s_suppkey = ps_suppkey
and s_nationkey = n_nationkey
and n_regionkey = r_regionkey
and r_name = 'EUROPE'
)
order by
s_acctbal desc,
n_name,
s_name,
p_partkey;
SQLを実行し、テーブルlineitemのデータをクエリして実行時間を記録します。
SQL実行能力の分析
パラレル実行を有効にしない場合、実行時間は約1.44秒です。8つのパラレル実行を有効にすると、実行時間は397.7ミリ秒となり、より短縮されます。OceanBaseは分散アーキテクチャに基づいており、高性能なトランザクション処理を保証しつつ、リアルタイム分析やバッチ処理などの分析シナリオを実行できます。これにより、OLTP性能に影響を与えることなく、データ冗長性を最大限に削減し、企業の総コストを大幅に削減することができます。
説明
上記のデータは参考用です。実際の値は、実際の実験結果に基づいてください。
次のステップ
OB Cloudのさらなる機能を体験したい場合は、パブリックアドレスを使用してデータベースに接続して体験できます。詳細については、パブリックアドレスを使用してデータベースに接続するに関するドキュメントをご参照ください。