Azure Synapse Analytics のサーバーレス SQL プール
すべての Azure Synapse Analytics ワークスペースには、Azure Data Lake (Parquet、Delta Lake、区切りテキスト形式)、Azure Cosmos DB、または Dataverse 内のデータのクエリに使用できるサーバーレス SQL プール エンドポイントが用意されています。
サーバーレス SQL プールは、データ レイク内のデータに対するクエリ サービスです。 これを使用すると、次の機能を通じてデータにアクセスできます。
- 専用のストアにデータをコピーしたり読み込んだりすることなく、インプレースでデータのクエリを実行できる、使い慣れた T-SQL 構文。 詳細については、「T-SQL のサポート」セクションを参照してください。
- さまざまなビジネス インテリジェンスおよびアドホック クエリ実行ツール (最も人気のあるドライバーなど) を提供する、T-SQL インターフェイスを介した統合接続。 詳細については、「クライアント ツール」セクションを参照してください。 詳細については、Synapse サーバーレス SQL プールの概要に関するビデオを参照してください。
サーバーレス SQL プールは、大規模なデータとコンピューティング機能を対象として構築された分散データ処理システムです。 サーバーレス SQL プールでは、ワークロードに応じて数秒から数分でビッグ データを分析することができます。 クエリ実行のフォールトトレランスが組み込まれているため、大規模なデータ セットを対象とする実行時間の長いクエリの場合でも、高い信頼性と成功率が実現します。
サーバーレス SQL プールはサーバーレスであるため、設定するインフラストラクチャも管理するクラスターもありません。 このサービスの既定のエンドポイントはすべての Azure Synapse ワークスペース内で提供されるため、ワークスペースが作成されるとすぐにデータのクエリ実行を開始できます。
予約済みリソースに対しては課金されません。 実行したクエリで処理されたデータに対してのみ課金されるため、このモデルは本当の意味で従量課金制モデルです。
データ パイプラインで Apache Spark for Azure Synapse を使用する場合は、データの準備、クレンジング、またはエンリッチメントのために、プロセスで作成した Spark 外部テーブルに対してクエリをサーバーレス SQL プールから直接実行できます。 Private Link を使用して、サーバーレス SQL プール エンドポイントをマネージド ワークスペース仮想ネットワークに組み込みます。
サーバーレス SQL プールのベネフィット
データ レイク内のデータを探索したり、そこから分析情報を得たり、既存のデータ変換パイプラインを最適化したりする必要がある場合は、サーバーレス SQL プールを活用することができます。 これは、次のシナリオに適しています。
- 基本の検出と探索 - データ レイク内のさまざまな形式 (Parquet、CSV、JSON) のデータをすばやく把握できるため、そこから分析情報を抽出する方法を計画することができます。
- 論理データ ウェアハウス - データの再配置や変換を行うことなく、生または異種のデータに基づいてリレーショナル抽象化を実現します。これにより、常に最新のデータを表示できます。 詳細については、論理データ ウェアハウスの作成に関する記事を参照してください。
- データ変換 - T-SQL を使用して、効率性が高くシンプルかつスケーラブルな方法でレイク内のデータを変換できるので、それを BI ツールなどにフィードしたり、リレーショナル データ ストア (Synapse SQL データベース、Azure SQL Database など) に読み込んだりできます。
サーバーレス SQL プールは、さまざまな職務の役に立ちます。
- データ エンジニアは、このサービスを使用してレイクの探索、データの変換、準備を行えるほか、データ変換パイプラインを簡素化できます。 詳細については、こちらのチュートリアルをご覧ください。
- データ サイエンティストは、OPENROWSET や自動スキーマ推論などの機能を利用して、レイク内のデータの内容と構造を迅速に把握することができます。
- データ アナリストは、使い慣れた T-SQL 言語や、サーバーレス SQL プールに接続できるお気に入りのツールを使用して、データ サイエンティストまたはデータ エンジニアによって作成されたデータと Spark 外部テーブルを探索できます。
- BI プロフェッショナルは、レイク内のデータおよび Spark テーブルに基づいて Power BI レポートをすばやく作成できます。
サーバーレス SQL プールを使い始める方法
サーバーレス SQL プール エンドポイントは、すべての Azure Synapse ワークスペース内で提供されます。 ワークスペースを作成し、使い慣れたツールを使用してすぐにデータのクエリ実行を開始できます。
最適なパフォーマンスを実現するには、必ずベスト プラクティスを適用してください。
クライアント ツール
サーバーレス SQL プールでは、既存の SQL アドホック クエリ実行およびビジネス インテリジェンス ツールをデータ レイクに利用できます。 使い慣れた T-SQL 構文を使えるため、SQL 製品との TDS 接続を確立できるツールであれば、Synapse SQL に接続してクエリを実行できます。 Azure Data Studio に接続してアドホック クエリを実行したり、Power BI に接続して数分で分析情報を得たりできます。
T-SQL のサポート
サーバーレス SQL プールでは T-SQL クエリの実行領域を提供します。これは、半構造化データと非構造化データのクエリ実行に関する機能に対応できるよう、いくつかの点でわずかに強化、拡張されています。 さらに、サーバーレス SQL プールの設計上の理由から、T-SQL 言語の一部の要素はサポートされていません。たとえば、DML 機能は現在サポートされていません。
- なじみのある概念を使用してワークロードを整理できます。
- データベース - サーバーレス SQL プール エンドポイントには複数のデータベースを設定できます。
- スキーマ - データベース内には、スキーマと呼ばれるオブジェクト所有者グループが 1 つまたは複数存在します。
- ビュー、ストアド プロシージャ、インライン テーブル値関数
- 外部リソース - データ ソース、ファイル形式、テーブル
以下を使用してセキュリティを適用できます。
- ログインとユーザー
- ストレージ アカウントへのアクセスを制御するための資格情報
- オブジェクト レベル単位での権限の許可、拒否、取り消し
- Microsoft Entra の統合
サポートされている T-SQL:
- SQL 関数の大部分を含む、完全な SELECT 領域がサポートされます
- CETAS - CREATE EXTERNAL TABLE AS SELECT
- ビューとセキュリティのみに関連する DDL ステートメント
サーバーレス SQL プールにはローカル ストレージがなく、メタデータ オブジェクトのみがデータベースに格納されます。 したがって、次の概念に関連する T-SQL はサポートされていません。
- テーブル
- トリガー
- 具体化されたビュー
- ビューとセキュリティに関連しない DDL ステートメント
- DML ステートメント
注意
サーバーレス SQL プール クエリにはタイムアウトがあります。 ワークロードに影響する可能性があるクエリ タイムアウトの詳細については、サーバーレス SQL プールのシステム制約を参照してください。 現時点では、タイムアウトを変更できません。
拡張機能
サーバーレス SQL プールでは、データ レイク内のファイルに格納されているデータに対するインプレース クエリをスムーズに実行できるように、次の機能を追加して既存の OPENROWSET 関数を拡張します。
さまざまな区切りテキスト形式 (カスタム フィールド ターミネータ、行ターミネータ、エスケープ文字の使用)
Security
サーバーレス SQL プールには、データへのアクセスをセキュリティで保護するためのメカニズムが用意されています。
Microsoft Entra の統合と多要素認証
サーバーレス SQL プールでは、Microsoft Entra との統合によって、データベース ユーザーの ID とその他の Microsoft サービスを一元的に管理できます。 この機能は、アクセス許可の管理を簡略化し、セキュリティを強化します。 Microsoft Entra ID は多要素認証 (MFA) をサポートしてデータとアプリケーションのセキュリティを強化しているだけでなく、シングル サインオン プロセスもサポートしています。
認証
サーバーレス SQL プールの認証とは、エンドポイントへの接続時にユーザーが自分の ID を証明する方法のことです。 2 種類の認証がサポートされています。
SQL 認証
この認証方法では、ユーザー名とパスワードを使用します。
Microsoft Entra 認証:
この認証方法では、Microsoft Entra ID によって管理されている ID を使用します。 Microsoft Entra ユーザーの場合、多要素認証を有効にできます。 可能であれば、Active Directory 認証 (統合セキュリティ) を使用します。
承認
承認とは、サーバーレス SQL プール データベース内でユーザーにどのような操作が許可されるかを示すものであり、ユーザー アカウントのデータベース ロールのメンバーシップとオブジェクトレベルのアクセス許可によって制御されます。
SQL 認証が使用される場合、SQL ユーザーはサーバーレス SQL プール内にのみ存在し、アクセス許可のスコープはサーバーレス SQL プール内のオブジェクトに設定されます。 他のサービス (Azure Storage など) のセキュリティ保護可能なオブジェクトへのアクセスは、SQL ユーザーに対して直接許可することができません。これは、そのユーザーがサーバーレス SQL プールのスコープでのみ存在するためです。 SQL ユーザーは、サポートされている承認の種類のいずれかを使用して、ファイルにアクセスする必要があります。
Microsoft Entra 認証が使用される場合、ユーザーはサーバーレス SQL プールやその他のサービス (Azure Storage など) にサインインして、Microsoft Entra ユーザーにアクセス許可を付与できます。
ストレージ アカウントへのアクセス
サーバーレス SQL プール サービスにログインしたユーザーは、Azure Storage 内のファイルにアクセスしてクエリを実行する権限を持っている必要があります。 サーバーレス SQL プールでは、次の種類の承認がサポートされます。
Shared Access Signature (SAS) を使用すると、ストレージ アカウント内のリソースへの委任アクセスが可能になります。 SAS では、アカウント キーを共有することなく、ストレージ アカウントのリソースへのアクセス権をクライアントに付与できます。 SAS を使用すると、有効期間、付与されるアクセス許可、許容される IP アドレス範囲、許容されるプロトコル (https または http) など、SAS を使用しているクライアントに付与するアクセス権の種類をきめ細かく制御できます。
ユーザー ID ("パススルー" とも呼ばれる) は、サーバーレス SQL プールにログインしている Microsoft Entra ユーザーの ID がデータへのアクセスの承認に使用される承認の種類です。 データにアクセスするには、Azure Storage 管理者が、データにアクセスするためのアクセス許可を Microsoft Entra ユーザーに付与する必要があります。 この種類の承認では、サーバーレス SQL プールにログインした Microsoft Entra ユーザーを使用するため、ユーザーの種類が SQL の場合はサポートされません。
ワークスペース ID は、データへのアクセスを承認するために、Synapse ワークスペースの ID が使用される認証の種類です。 データにアクセスする前に、Azure Storage の管理者が、データにアクセスするためのアクセス許可をワークスペース ID に付与する必要があります。
Azure Cosmos DB にアクセスする
Azure Cosmos DB 分析ストアにアクセスするには、Azure Cosmos DB アカウントの読み取り専用キーでサーバーレベルまたはデータベーススコープの資格情報を作成する必要があります。
次のステップ
エンドポイント接続とファイルに対するクエリ実行に関する追加情報については、次の記事をご覧ください。