技術共有

スパークSQL

2024-07-11

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

ここに画像の説明を挿入します
ここに画像の説明を挿入します

スパークSQL

1.Spark SQL アーキテクチャ

  • 既存の Hive データに直接アクセスする機能

  • データ処理に Spark を使用するためのサードパーティ ツール用の JDBC/ODBC インターフェイスを提供します

  • データ処理を容易にする上位レベルのインターフェースを提供する

  • 複数の操作方法をサポート: SQL、APIプログラミング

    • API プログラミング: Spark SQL は、SQL に基づいて SQL ステートメントの演算子のセットを開発しました。名前は標準の SQL ステートメントに似ています。
  • Parquet、CSV、JSON、RDBMS、Hive、HBase などの複数の外部データ ソースをサポートします。 (さまざまなデータの読み取り方法をマスターする)
    ここに画像の説明を挿入します

  • Spark SQL コア: はいRDDスキーマ(オペレーターテーブル構造)、操作を容易にするために、RDDスキーマに発行されましたデータフレーム

  • データ バックフィード: 処理およびクリーンアップされたデータを後続の分析および使用のために Hive に書き戻すために使用されます。

  • BI ツール: 主にデータのプレゼンテーションに使用されます。

  • Spark アプリケーション: 開発者は Spark アプリケーションを使用して、データ処理および分析ロジックを作成します。これらのアプリケーションは、Python、Scala、Java などのさまざまなプログラミング言語で作成できます。

2. Spark SQL の動作原理

ここに画像の説明を挿入します

  • Catalyst オプティマイザーの実行プロセス:
  1. フロントエンド
    • 入力: ユーザーは、SQL クエリまたは DataFrame API を通じてデータ処理ロジックを入力できます。
    • 未解決の論理計画 (未解決の論理計画): 入力 SQL クエリまたはデータフレーム変換操作は、まず解析されていない論理プランに変換されます。このプランにはユーザーが要求したすべての操作が含まれていますが、テーブル名と列名はまだ解析されていない可能性があります。
  2. カタリストオプティマイザー (カタリストオプティマイザー) Catalyst オプティマイザーは、Spark SQL のコア コンポーネントであり、論理プランを物理的な実行プランに変換し、最適化する役割を果たします。 Catalyst オプティマイザーは次のステージで構成されます。
    • 分析 : 未解決の論理プラン内のテーブル名と列名を特定のメタデータに解析します。この手順はカタログ (メタデータ ストレージ) に依存します。出力は解析された論理プランです。
    • 論理的な最適化 : 解析された論理プランに対して、投影シャーリング、フィルター プッシュダウンなどのさまざまな最適化を実行します。最適化された論理プランはより効率的です。
    • 物理計画 : 最適化された論理プランを 1 つ以上の物理実行プランに変換します。それぞれの物理計画は、実行可能な方法を表します。
    • コストモデル: さまざまな物理プランの実行コストを評価し、最もコストの低い物理プランを最終的な物理プランとして選択します。
  3. バックエンド
    • コード生成 : 選択した物理プランを Spark で実行できる RDD 操作に変換します。このステップにより、実際の実行コードが生成されます。
    • RDD: 最後に生成された RDD 操作が実行され、ユーザーが要求したデータ処理タスクが完了します。
  • Spark SQL での SQL クエリの最適化プロセス
SELECT name FROM(
  SELECT id, name FROM people
) p
WHERE p.id = 1