私が公開するテストの場合、 TPC-Hベンチマークが選択され、必要に応じて、読者はテストを繰り返すことができます。
Exasol DBMSに関する簡単な情報
Exasolは、次の主要機能を備えたリレーショナル分析インメモリデータベースです。
- インメモリ データベースの主な目的は、RAMにデータを保存および処理することです。 この場合、データはディスク上に複製され、データベース全体がメモリに収まる必要はありません。 クエリを実行すると、メモリにないデータがディスクから読み取られます。
- MPP(大規模並列処理)。 データは、高性能な並列処理のためにクラスターノードに分散されます( シェアードナッシングアーキテクチャに従って実装されます)。
- 列単位のデータストレージ。 テーブルの情報は圧縮された形式で列に格納されるため、分析クエリが大幅に高速化されます。
- ANSI SQL 2008標準をサポートしています 。
- ほとんどのBIツールとうまく統合できます 。
- データベース内分析。 LUA、Python、R、Javaの言語でのユーザー関数のサポート。
- HadoopのHDFSへのJavaベースのインターフェース。
Exasolの機能の詳細については、Habréの優れた記事をご覧ください。 私たちの地域での人気が低いにもかかわらず、これは2012年以降、データウェアハウスのGartner Magic QuadrantおよびAnalyticsのData Management Solutionsに存在している成熟した製品です。
TPC-Hベンチマーク
パフォーマンステストでは、分析システムとデータウェアハウスのパフォーマンスを比較するために使用されるtpc-hベンチマークを使用しました。 このベンチマークは、DBMSとサーバーハードウェアの多くのメーカーで使用されています。 tpc-hページには多くの結果があります。公開するには、136ページのすべての仕様要件を満たす必要があります。 私は自分のテストを公式に公開するつもりはなかったので、すべての規則を厳密には守っていませんでした。 TPC-H評価-トップ10のパフォーマンス結果 Exasolはパフォーマンスのリーダー(100 GB〜100 TBのボリューム)であり、これがこのDBMSに興味を持つ理由です。
TPC-Hでは、指定されたスケールファクターパラメーターを使用して8つのテーブルのデータを生成できます。これにより、ギガバイト単位のデータのおおよその量が決まります。 このボリュームでOracle In-Memoryをテストしたため、2 GBに制限しました。
ベンチマークには、さまざまな複雑さの22のSQLクエリが含まれます。 qgenユーティリティによって生成されたクエリは、特定のDBMSの特定の機能に調整する必要があることに注意してください。ただし、 Exasolの場合、変更は最小限でした。 テストでは、2種類の負荷が生成されました。
- 8人の仮想ユーザーが1周に3回並行して22リクエストすべてを実行
- 2人の仮想ユーザーがサークル内で同時に12回、22のリクエストすべてを実行します
その結果、どちらの場合も、528個のSQLクエリの実行時間が推定されました。 テーブルとSQLクエリのDDLスクリプトに興味がある人は、コメントに書いてください。
データベースまたは分析機器(ビッグデータを含む)を比較する目的で、別のより最近のベンチマークであるTPC-DSに注意することもお勧めします。 より多くのテーブルと大幅に多くのクエリがあります-99。
テストサイト
次の機能を備えたラップトップ:
Intel Core i5-4210 CPU 1.70GHz-4仮想 プロセッサー; DDR3 16 Gb; SSDディスク。
OS:
MS Windows 8.1 x64
VMware Workstation 12 Player
仮想OS:CentOS 6.8(メモリ:8 Gb、プロセッサ:4)
DBMS:
EXASOL V6 Free Small Business Edition rc1( シングルノード )
Exasolデータベースへのデータのロード
EXAplusユーティリティを使用してテキストファイルからデータをダウンロードしました。 ダウンロードスクリプト:
IMPORT INTO TPH.LINEITEM FROM LOCAL CSV FILE 'D:\lineitem.dsv' ENCODING = 'UTF-8' ROW SEPARATOR = 'CRLF' COLUMN SEPARATOR = '|' SKIP = 1 REJECT LIMIT 0;
すべてのファイルのダウンロード時間は3分でした。 37秒 また、多くの例のあるドキュメントは非常に良い印象を残したことにも注意してください。 そのため、さまざまなDBMSから直接、ETLツールなどを使用して、データをロードするさまざまな代替方法について説明します。
次の表に、ExasolおよびOracle In-Memoryでのデータの編成方法に関する情報を示します。
エクサソル | Oracle IM | |||||||
---|---|---|---|---|---|---|---|---|
テーブル | 行数 | 生データの量(Mb) | メモリ内のテーブルの量(Mb) | コック。 圧縮 | インデックスの数 | メモリ内のインデックスの量(Mb) | メモリ内のテーブルの量(Mb) | コック。 圧縮 |
LINEITEM | 11,996,782 | 1,562.89 | 432.5 | 3.61 | 4 | 109.32 | 474.63 | 3.29 |
ご注文 | 3,000,000 | 307.25 | 97.98 | 3.14 | 2 | 20.15 | 264.38 | 1.16 |
パルツップ | 1,600,000 | 118.06 | 40.46 | 2.92 | 2 | 5.24 | 72.75 | 1.62 |
カスタママー | 300,000 | 39.57 | 20.99 | 1.89 | 2 | 1.42 | 32.5 | 1.22 |
パート | 400,000 | 51.72 | 10.06 | 5.14 | 1 | 1.48 | 20.5 | 2.52 |
サプライヤー | 20,000 | 2.55 | 2.37 | 1.08 | 4.5 | 0.57 | ||
国家 | 25 | 0 | 0.01 | 0.00 | 1.13 | 0.00 | ||
地域 | 5 | 0 | 0.01 | 0.00 | 1.13 | 0.00 | ||
合計 | 17,316,812 | 2,082.04 | 604.38 | 3.44 | 11 | 137.61 | 871.52 | 2.39 |
この情報は、 SYS.EXA_ALL_OBJECT_SIZESおよびSYS.EXA_ALL_INDICESシステム表のExasolで確認できます。
試験結果
Oracle IM | エクサソル | |
---|---|---|
8セッション(最初の起動)、秒 | 386 | 165 |
8セッション(2回目の起動)、秒 | 〜386 | 30 |
2セッション(最初の起動)、秒 | 787 | 87 |
2セッション(2回目の起動)、秒 | 〜787 | 29日 |
したがって、このExasolテストは、最初の起動ではOracle IMよりも速く、2回目の起動でははるかに高速であることがわかります。 Exasolは、インデックスを自動的に作成することにより、SQLクエリの繰り返し実行を高速化します。 11個のインデックスは、テーブル自体のサイズに関連してRAMで約23%を占めました。これは、私の意見では、このような加速に値します。 Exasolにはインデックスを管理する機能はありません。 最適化のトピックに関するドキュメントのフレーズの翻訳は次のとおりです。
EXASolutionは、たとえば、さまざまなタイプのインデックスの作成、テーブルの統計の計算など、クライアントの複雑なパフォーマンスチューニングメカニズムを意図的に隠します。 EXASolutionのクエリはオプティマイザーを使用して分析され、最適化に必要なアクションは完全自動モードで実行されます。
結果は、私の場合、Oracleはクエリをよりよく並列化したことを示しています(2と比較して8セッション)。 私はまだこの理由を詳細に扱っていません。
クラウド内のExasol
仮想OSをインストールしてデータをダウンロードすることなく、Exasolのパフォーマンスを独立して評価したい人のために、クラウドデモにExasolがあります。 登録後、5台のサーバーのクラスターへの2週間のアクセスが許可されました。 スケールファクター= 50(50 Gb、約4億3,300万レコード)のTPCHスキームが利用できます。 このデータで2つのセッションを使用した2回目のテストでは、約2分かかりました。
結論として
私自身にとって、Exasol DBMSはデータウェアハウスとその上に分析システムを構築するための優れたオプションであると結論付けました。 ユニバーサルOracle DBとは異なり、Exasolは分析用に設計されています。 車との類推ができます。釣り旅行にはSUVを、街中をコンパクトな乗用車に乗せて旅行するのは良いことです。
前の記事のように、特定のケースでテストを行った後にのみ、真剣な結論を出すよう全員にお願いします。
これですべてです。次のステップはHPE Verticaのテストです。
PS: Tinkoff Bank(@Kapustor)のメンバーが最終選択についての情報を共有し、Badoo(@wildraid)がプロジェクトのニュースを共有してくれたらとても感謝しています 。