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のアーキテクチャを説明しています-
このアーキテクチャには、言語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データベースです。
これらの詳細については、後続の章で説明します。