メインコンテンツまでスキップ

TPC-DS Benchmark

TPC-DS(Transaction Processing Performance Council Decision Support Benchmark)は、意思決定支援に焦点を当てたベンチマークテストであり、データウェアハウスや分析システムの性能を評価することを目的としています。これは、複雑なクエリや大規模データ分析の処理において、異なるシステムの能力を比較するために、Transaction Processing Performance Council(TPC)組織によって開発されました。

TPC-DSの設計目標は、現実世界の複雑な意思決定支援ワークロードをシミュレートすることです。結合、集計、ソート、フィルタリング、サブクエリなどを含む一連の複雑なクエリやデータ操作を通じて、システムの性能をテストします。これらのクエリパターンは、レポート生成、データマイニング、OLAP(Online Analytical Processing)など、単純なものから複雑なものまで様々なシナリオをカバーしています。

この文書では主に、TPC-DS 1000Gテストセットにおけるの性能を紹介します。

TPC-DS標準テストデータセットの99クエリについて、Compute-Storage Decoupled Modeで動作するApache Doris 3.0.3-rc03と従来の統合ストレージ・コンピューティングモードで動作するApache Doris 2.1.7-rc03との間で比較テストを実施し、2.1.x統合モードを以前の3.x統合モード結果のパフォーマンスベースラインとして使用しました。

TPCDS_1000G

1. ハードウェア環境

ハードウェア設定説明
マシン数4台のAliyun仮想マシン(1FE、3BEs)
CPUIntel Xeon (Ice Lake) Platinum 8369B 32C
メモリ128G
ディスクEnterprise SSD (PL0)

2. ソフトウェア環境

  • Dorisは3BEと1FEをデプロイ
  • カーネルバージョン: Linux version 5.15.0-101-generic
  • OSバージョン: Ubuntu 20.04 LTS (Focal Fossa)
  • Dorisソフトウェアバージョン: Apache Doris 3.0.3-rc03(Compute-Storage Decoupled Mode)、Apache Doris 2.1.7-rc03
  • JDK: openjdk version "17.0.2"

3. テストデータ量

テスト全体のシミュレーションによって生成されたTPC-DS 1000Gデータを、それぞれApache Doris 3.0.3-rc03(Compute-Storage Decoupled Mode)とApache Doris 2.1.7-rc03にインポートしてテストを実施しました。以下は、テーブルの関連説明とデータ量です。

TPC-DSテーブル名行数
customer_demographics1,920,800
reason65
warehouse20
date_dim73,049
catalog_sales1,439,980,416
call_center42
inventory783,000,000
catalog_returns143,996,756
household_demographics7,200
customer_address6,000,000
income_band20
catalog_page30,000
item300,000
web_returns71,997,522
web_site54
promotion1,500
web_sales720,000,376
store1,002
web_page3,000
time_dim86,400
store_returns287,999,764
store_sales2,879,987,999
ship_mode20
customer12,000,000

4. テストSQL

TPC-DS 99テストクエリステートメント : TPC-DS-Query-SQL

5. テスト結果

ここでは、Apache Doris 3.0.3-rc03(Compute-Storage Decoupled Mode)とApache Doris 2.1.7-rc03を使用して比較テストを実施しました。テストでは、Query Time(ms)を主要なパフォーマンス指標として使用しています。 テスト結果は以下の通りです:

クエリApache Doris 3.0.3-rc03 Compute-Storage Decoupled Mode (ms)Apache Doris 2.1.7-rc03 (ms)
query01580630
query0255404930
query03350360
query041079011070
query05710620
query06230220
query07590550
query08350330
query0975206830
query10390370
query1165606960
query12120100
query13780790
query141320013470
query15400510
query16410520
query1713001310
query18650560
query19250200
query20110100
query2111080
query2215702300
query233718038240
query2474708340
query25920780
query26200200
query27550530
query2873005940
query29920940
query30300270
query3120001890
query327060
query33400350
query34760750
query3512901370
query36460530
query378060
query3854507520
query39760560
query40140150
query415050
query42110100
query4311701150
query4421202020
query45280430
query4613901250
query4721602660
query48660630
query49810730
query5015701640
query5160306430
query52120110
query53280250
query5415401280
query55130110
query56300290
query5712401480
query58260240
query59101207760
query60370380
query61560540
query62920740
query63230210
query6416605790
query6548004900
query66400480
query672419027320
query6814001600
query691170380
query7031603480
query71440460
query7240903160
query73660660
query7457205990
query7545604610
query7618001590
query77330300
query781630017970
query7931603040
query80590570
query81540460
query82320270
query83230220
query84130130
query85780520
query86660760
query8762008000
query8856205560
query89400430
query90150150
query91160150
query925040
query9323802440
query94290340
query95410350
query96680660
query9748705020
query98200190
query9919401560
合計251620261320

6. 環境準備

正常に動作するDorisクラスタ(最低1 FE 1 BE、推奨は1 FE 3 BE)を取得するために、公式ドキュメントを参照してDorisのインストールとデプロイを行ってください。

7. データ準備

7.1 TPC-DSデータ生成ツールのダウンロードとインストール

以下のスクリプトを実行して、tpcds-toolsツールをダウンロードおよびコンパイルしてください。

sh bin/build-tpcds-dbgen.sh

7.2 TPC-DSテストセットの生成

以下のスクリプトを実行してTPC-Hデータセットを生成します:

sh bin/gen-tpcds-data.sh -s 1000

Note 1: sh gen-tpcds-data.sh -h でスクリプトのヘルプを確認してください。

Note 2: データは tpcds-data/ ディレクトリ配下に .dat 拡張子で生成されます。総ファイルサイズは約1000GBで、生成には数分から1時間程度かかる場合があります。

Note 3: デフォルトでは100Gの標準テストデータセットが生成されます。

7.3 テーブル作成

7.3.1 doris-cluster.conf ファイルの準備

スクリプトをインポートする前に、doris-cluster.conf ファイルにFEのIPポートおよびその他の情報を記述する必要があります。

このファイルは ${DORIS_HOME}/tools/tpcds-tools/conf/ にあります。

ファイルの内容には、FEのIP、HTTPポート、ユーザー名、パスワード、およびインポート対象データのDB名が含まれます:

# Any of FE host
export FE_HOST='127.0.0.1'
# http_port in fe.conf
export FE_HTTP_PORT=8030
# query_port in fe.conf
export FE_QUERY_PORT=9030
# Doris username
export USER='root'
# Doris password
export PASSWORD=''
# The database where TPC-H tables located
export DB='tpcds'

TPC-Hテーブルを生成・作成するために以下のスクリプトを実行する

sh bin/create-tpcds-tables.sh -s 1000

または、create-tpcds-tablesのテーブル作成文をコピーしてDorisで実行してください。

7.4 データのインポート

以下のコマンドでデータインポートを実行してください:

sh bin/load-tpcds-data.sh

7.5 クエリテスト

7.5.1 クエリスクリプトの実行

上記のテストSQLを実行するか、以下のコマンドを実行してください

sh bin/run-tpcds-queries.sh -s 1000

7.5.2 単一SQL実行

コードリポジトリから最新のSQLを取得することもできます。TPC-DSの最新テストクエリステートメントのアドレスです。