Spark-sql-introduction

提供:Dev Guides
移動先:案内検索

Spark SQL-はじめに

Sparkは、Spark SQLと呼ばれる構造化データ処理用のプログラミングモジュールを導入しています。 DataFrameと呼ばれるプログラミングの抽象化を提供し、分散SQLクエリエンジンとして機能できます。

Spark SQLの機能

以下は、Spark SQLの機能です-

  • 統合-SQLクエリとSparkプログラムをシームレスに組み合わせます。 Spark SQLでは、Sparkの分散データセット(RDD)として、Python、Scala、およびJavaの統合APIを使用して、構造化データを照会できます。 この緊密な統合により、複雑な分析アルゴリズムとともにSQLクエリを簡単に実行できます。
  • Unified Data Access -さまざまなソースからデータをロードおよびクエリします。 Schema-RDDは、Apache Hiveテーブル、寄木細工ファイル、JSONファイルなどの構造化データを効率的に操作するための単一のインターフェイスを提供します。
  • * Hiveの互換性*-既存のウェアハウスで変更されていないHiveクエリを実行します。 Spark SQLはHiveフロントエンドとMetaStoreを再利用し、既存のHiveデータ、クエリ、UDFとの完全な互換性を提供します。 Hiveと一緒にインストールするだけです。
  • 標準接続-JDBCまたはODBC経由で接続します。 Spark SQLには、業界標準のJDBCおよびODBC接続を備えたサーバーモードが含まれています。
  • スケーラビリティ-対話型クエリと長いクエリの両方に同じエンジンを使用します。 Spark SQLはRDDモデルを利用してクエリ中のフォールトトレランスをサポートし、大規模なジョブにも対応できるようにします。 履歴データに別のエンジンを使用する心配はありません。

Spark SQLアーキテクチャ

次の図は、Spark SQLのアーキテクチャを説明しています-

Spark SQLアーキテクチャ

このアーキテクチャには、言語API、スキーマRDD、データソースの3つのレイヤーが含まれています。

  • Language API -Sparkはさまざまな言語およびSpark SQLと互換性があります。 また、これらの言語API(python、scala、java、HiveQL)によってサポートされています。
  • *スキーマRDD *-SparkコアはRDDと呼ばれる特別なデータ構造で設計されています。 一般に、Spark SQLはスキーマ、テーブル、およびレコードで機能します。 したがって、スキーマRDDを一時テーブルとして使用できます。 このスキーマRDDをデータフレームと呼ぶことができます。
  • データソース-通常、spark-coreのデータソースはテキストファイル、Avroファイルなどです。 ただし、Spark SQLのデータソースは異なります。 それらは、Parquetファイル、JSONドキュメント、HIVEテーブル、およびCassandraデータベースです。

これらの詳細については、後続の章で説明します。