テストデータとして、CLADRデータ(〜23万3千レコード)を、IgniteとOracleへの2つの接続が構成されているDBeaverクエリ実行環境として使用します。 最初に行うことは、データをテーブルにインポートすることです。KLADRデータをDBFからCSVに変換し、DBeaverを使用してテーブルにインポートします。
Igniteは、永続ストレージにデータを保存するようにも構成されています。
config \ default-config.xml
<!-- Enabling Apache Ignite Persistent Store. --> <property name="dataStorageConfiguration"> <bean class="org.apache.ignite.configuration.DataStorageConfiguration"> <property name="defaultDataRegionConfiguration"> <bean class="org.apache.ignite.configuration.DataRegionConfiguration"> <property name="persistenceEnabled" value="true"/> </bean> </property> </bean> </property>
クラドルテーブル構造
CREATE TABLE Kladr ( NAME VARCHAR, CODE VARCHAR, SOCR varchar, INDEX VARCHAR, PRIMARY KEY (CODE)) WITH "affinityKey=CODE";
affinityKey = CODE-Igniteのデータがパーティション全体に分散され、さらに2つのノードに分散されることを意味します。 Igniteの2つのインスタンスを起動すると、2つのノードが提供されます。
別の大きくないSOCRBASEテーブルには、略語ディレクトリがあり、分散ネットワークでは異なるストレージルールがあります。
CREATE TABLE Socrbase ( LEVEL LONG, SCNAME VARCHAR, SOCRNAME VARCHAR, KOD_T_ST LONG, PRIMARY KEY (KOD_T_ST)) WITH "template=replicated";
WITH "template = replicated"-テーブルは各ノードでいっぱいになります。 その後、各ノードは、結合要求を受信すると、異なるストレージモデルを使用してこのディレクトリにデータを接続できます。パーティションテーブルの一貫性を確保する必要があります。
ここに2つの実行中のノードがあります
最初:
2番目:
Orcaleの場合、構造はパーティションを除いて同じです。
永続-ディスク上のIgniteストレージは、パーティション(ファイル)による分散のように見えます。各ノードには合計1024があります。 ノードのすべてのデータは1024ブロックで分散され、その一部は最初のノードにあり、その他は2番目のノードにあります。
単一ノードの例
クエリの実行中に、Igniteはノードに分散リクエストを行い、ノードが持っているデータを収集します。その後、データは統合され、最終サンプルで送信されます。
そのため、最初の1つは、CSVのDBeaverツールを使用したデータのインポート、223千レコードです。 これが最初の結果です。
インポートデータ223千レコード(KLADR) | |
点火12分 | Oracle 5秒 |
次に、比較のためにデータを検索するためにいくつかの簡単なクエリを実行します。結果として2番目の実行を続けます(2つのデータベースの場合は常に少なくなります)。
100個のCODEに対して100個のKLADRレコードを取得します。CODEにはインデックスがあります
| |
30 msに点火 | Oracle 6ミリ秒。 |
100のNAMEに対して100のKLADRレコードを取得します。NAMEのインデックスはありません
| |
80 msに点火 | Oracle 6ミリ秒。 |
地域の被験者の数を数える
| |
30 msに点火 | Oracle 6ミリ秒。 |
領域内のエンティティの数は1000を超えています
| |
150 msに点火します。 | Oracle 60ミリ秒。 |
参加リクエスト。 最初のレベルの科目を100個取得する
| |
280ミリ秒に点火 | Oracle 2ミリ秒。 |
参加リクエスト。 レベルの被験者数
| |
点火13秒 | Oracle 140ミリ秒。 |
はい、後者の場合、正確に13秒です。 Igniteは、結合のあるものは良くないという要求を示しましたが、データを制限する条件を導入すると、この時間が短縮されます。
おそらく、これらの比較で十分です。まだ結論を出しません。Igniteの勉強を続けます...
材料:
点火する
はじめに
SQLの開始