What is Databricks SQL? | Databricks on AWS [2023/2/3時点]の翻訳です。
本書は抄訳であり内容の正確性を保証するものではありません。正確な内容に関しては原文を参照ください。
Databricks SQLは、Databricksレイクハウスプラットフォームにビルトインされているエンタープライズデータウェアハウスです。Databricks SQLのコアの提供機能はSQLウェアハウスと呼ばれる最適化計算リソースです。
Databricksは、SQLクエリー、ビジュアライゼーション、ダッシュボードを構成、実行するためにSQLペルソナとして知られるUIツールのコレクションを提供します。
SQLウェアハウスは、サードパーティのBI、可視化ツールを含む様々な環境で実行されるSQLクエリーに対する一般的な計算資源を提供します。また、Databricks SQLは堅牢なAPIを提供しています。
Databricks SQLの最新機能に関しては、Databricks SQL release notesをご覧ください。
Spark SQL vs Databricks SQL
Databricks SQLは最適化された計算環境ですが、Spark SQLはApache Spark APIのコレクションを表現しています。DatabricksではSQL開発者がETLや分析のような作業を行い、ダッシュボードを作成するための様々なツールやテクノロジーを提供しています。エンタープライズデータウェアハウスに関しては、Databricks SQLをお勧めします。
Spark SQLとは?
Spark SQLという用語は、技術的にはSparkデータフレームを使用するすべてのオペレーションすべてに適用されます。Spark SQLはSQLクエリーのサポートとPython、Scala、R、Java用のDataFrame APIを導入したSpark 2.xにおけるSpark RDD APIを置き換えました。
DatabricksのドキュメントではSQLのクエリーや機能を説明する際には、多くの場合Spark SQLを使用しています。Databricksランタイムの計算資源に対して実行されたSQLクエリーは、Delta Lakeに対するビルトインの拡張プロトコルと、プロプライエタリのDatabricksの機能と、オープンソースのApache Sparkの機能に密接にマッピングされます。SQL referenceで、利用可能なすべての機能と実行コンテキスト間での違いを学ぶことができます。
DatabricksにおけるSQLはオープンソースApache Sparkとどう違うのか?
実行環境に関わらず、DatabricksにおけるSQLは他の場所で実行されるApache Spark SQLと大きな違いはありません。3つの異なる計算資源に対して、一般的なクエリーやステートメントを実行するために、DatabricksでSQLを使用することができます。これらの環境のすべては、オープンソースApache Sparkで利用できない数多くのコマンドを追加しており、Delta Lakeに関連するすべてのSQLクエリーを実行できるように事前設定されています。
Unity Catalogが有効化されたワークスペースでは、数多くの追加キーワードやコマンドを利用できます。ビルトインのHiveメタストアではなく、Unity Catalogに対して実行する際、いくつかのSQLコマンドは異なる挙動をすることに注意してください。
これらの計算資源の選択肢のそれぞれでは、若干異なるセマンティックスと文法を持っています。一般的にいうと:
- DatabricksランタイムコンピュートにおけるSQLは、オープンソースApache Sparkの処理と最も近いものになっています。
- Delta Live Tablesで実行されるSQLは、一般的にDatabricksランタイムの文法とセマンティクスを継承していますが、Delta Live Tables固有のキーワードや関数が追加されています。
- SQLウェアハウスで実行されるSQLは最もANSI標準に近いものとなっています。HiveQL、変数宣言、変数参照、DButilsウィジェットを含むDatabricksランタイムコンピュートに対してDatabricksノートブックで実行されるSQLでサポートされている多くの機能は、SQLウェアハウスでは動作しません。
Databricks SQLにおける管理者のタスク
Databricks SQLの有効化、ユーザーとデータアクセスの管理、そのほかの管理タスクに関する情報を探しているのでしたら、Databricks SQL administrationをご覧ください。