web-dev-qa-db-ja.com

Apacheドリルvs Spark

Apache SparkとSpark-SQLを使用した経験があります。最近、Apache Drillプロジェクトを見つけました。それらの最も重要な利点/違いは何ですか?すでに読んでいます。 Fast Hadoop Analytics(Cloudera Impala vs Spark/Shark vs Apache Drill) しかし、このトピックはまだ私にはわかりません。

14
Matzz

これが私が出くわしたSQLテクノロジーのいくつかについて論じている記事です: http://www.zdnet.com/article/sql-and-hadoop-its-complicated/

ドリルは、ユーザーエクスペリエンスとアーキテクチャの両方で根本的に異なります。例えば:

  • ドリルはスキーマフリーのクエリエンジンです。たとえば、JSONまたはParquetログファイルのディレクトリ(ローカルボックス、NFS共有、S3、HDFS、MapR-FSなど)をポイントして、クエリを実行できます。データをロードしたり、スキーマを作成および管理したり、データを前処理したりする必要はありません。
  • ドリルは内部でJSONドキュメントモデルを使用するため、任意の構造のデータをクエリできます。最新のデータの多くは複雑です。つまり、レコードにはネストされた構造体と配列を含めることができ、フィールド名は実際にはタイムスタンプやWebページのURLなどの値をエンコードする場合があります。ドリルを使用すると、通常のBIツールで、データを事前にフラット化することなく、このようなデータをシームレスに操作できます。
  • ドリルは、Hadoop、NoSQLデータベース(MongoDB、HBase)、クラウドストレージなど、さまざまな非リレーショナルデータストアで機能します。追加のデータストアが追加されます。

ドリル1.0がリリースされました(2015年5月19日)。ラップトップに簡単にダウンロードして、インフラストラクチャ(Hadoop、NoSQLなど)なしで遊ぶことができます。

21
Tomer Shiran

ドリルは、ANSISQLを使用してさまざまな種類のデータセットをクエリする機能を提供します。これにより、アドホックデータの探索や、ODBCを介したBIツールのデータセットへの接続に最適です。さまざまな種類のデータセットにDrillto SQLJOINを使用することもできます。たとえば、MySQLテーブルのレコードをJSONファイル、CSVファイル、OpenTSDB、またはMapR-DBの行と結合できます...リストは続きます。ドリルは、さまざまな種類のデータに接続できます。

Sparkを使用することを考えるとき、私は通常、RDD(復元力のある分散データセット)に使用したいと考えています。 RDDを使用すると、大量のデータを簡単にすばやく処理できます。 Sparkには、MLとストリーミング用のライブラリも多数あります。Drillはデータをまったく処理しません。データにアクセスするだけです。Drillを使用してデータをSparkにプルするか、 Tensorflow、PySpark、Tableauなど。

1
Ian Downard

Apache Spark-SQL:

  • データにアクセスして処理するには、コード(Scala、JavaまたはPython))を作成する必要があります。
  • SQLクエリはデータフレームに対して実行できます。
  • 実行は分散方式(クラスター)で実行できます。
  • ほとんどすべてのデータストレージにはSparkドライバーまたはコネクターがあります。
  • 大規模な並列コンピューティング/データ分析に使用されます。
  • ストリーム処理をサポートします。
  • より大きなサポートコミュニティがあります。

Apacheドリル:

  • コードを記述する必要はありません。Drillはデータソースを探索し、独自のデータカタログを作成します。
  • SQLだけで使いやすい。
  • 実行は分散方式(クラスター)で実行できます。
  • MongoDB、Parquetファイル、MySQL、JDBCデータベースなどの多くのデータソースからデータを読み取るために使用できます。
  • アドホックデータ探索に使用されます。
  • ストリーム処理はサポートしていません。
  • 小規模なサポートコミュニティがあります。
0