2016-08-09 4 views
0

私は、Apache Drillドライバを使用してmapRデータストアに対して実行するRで書かれたデータベースクエリを実行しました。約700,000行の私のプログラムではパフォーマンス上の限界があるため、私はSQLとは異なるDB状況を使用しています。mapR/Apache Drill SQLクエリはすべてのノードに作業を分散するか、SQL RDBMSと同じ速度ですか?

この質問は、SQLをクエリして作業環境に格納するためにRを使用することについてです。私はこの質問のためにSELECT * FROM ...と言うだけで一般化しました。

3ノードのMapRクラスタを実行していて、Rを使用してデータベースに対してSQLクエリを実行すると、クエリがMapRであるために結果が速くなるか、1つのRDBMSで同じ結果が得られるとしますか?

library(RODBC) 

# initialize the connection 
ch <- odbcConnect("drill64") 

# run the query 
df = sqlQuery(SELECT * FROM state) 

#Code to write output to file 

# close the connection so we don't get a warning at the end 
odbcClose(ch) 

パフォーマンス賢明な、これはodbcConnect("RMySQL")またはいくつかの類似のMySQLライブラリを使用するのと同じですか?

答えて

2

答えは、基礎となるデータの内容によって異なります。ドリルは、大規模なクラスタで実行できる分散クエリエンジンです。大規模なデータセットの場合は、メリットがあります。非常に小さなデータセットは、大規模な分散クエリエンジンを持つのにはあまり役に立ちません。また、ドリルはさまざまなデータソースに対応できるため、ユースケースの保留中にプログラムの柔軟性を高めることができます。

しかし、データがすでにmysqlにあり、Drill JDBCプラグインをmysqlに使用する場合、Drillを実行することは有益ではないでしょう。

関連する問題