Azure Synapse SQL でサポートされる Transact-SQL 機能Transact-SQL features supported in Azure Synapse SQL

Azure Synapse SQL は、T-SQL 言語を使用してデータのクエリと分析を実行できるビッグ データ分析サービスです。Azure Synapse SQL is a big data analytic service that enables you to query and analyze your data using the T-SQL language. SQL Server と Azure SQL Database で使用される SQL 言語の標準の ANSI 準拠言語をデータ分析に使用できます。You can use standard ANSI-compliant dialect of SQL language used on SQL Server and Azure SQL Database for data analysis.

Transact-SQL 言語は Synapse SQL サーバーレスで使用されます。専用モデルは別のオブジェクトを参照でき、サポートされている機能のセットが少し異なります。Transact-SQL language is used in Synapse SQL serverless and dedicated model can reference different objects and has some differences in the set of supported features. このページでは、Synapse SQL の消費モデル間での Transact-SQL 言語の大まかな違いについて確認できます。In this page, you can find high-level Transact-SQL language differences between consumption models of Synapse SQL.

データベース オブジェクトDatabase objects

Synapse SQL の消費モデルでは、さまざまなデータベース オブジェクトを使用できます。Consumption models in Synapse SQL enables you to use different database objects. サポートされているオブジェクトの種類を比較した表を次に示します。The comparison of supported object types is shown in the following table:

専用Dedicated サーバーレスServerless
テーブルTables はいYes いいえ。サーバーレス モデルでは、Azure Storage に配置された外部データに対してのみクエリを実行できますNo, serverless model can query only external data placed on Azure Storage
ビューViews はいYes. ビューでは、専用モデルで使用可能なクエリ言語要素を使用できます。Views can use query language elements that are available in dedicated model. はいYes. ビューでは、サーバーレス モデルで使用可能なクエリ言語要素を使用できます。Views can use query language elements that are available in serverless model.
スキーマSchemas はいYes はいYes
一時テーブルTemporary tables はいYes いいえNo
手順Procedures はいYes はいYes
関数Functions はいYes はい。インライン テーブル値関数のみです。Yes, only inline table-valued functions.
トリガーTriggers いいえNo いいえNo
外部テーブルExternal tables はいYes. サポートされるデータ形式をご確認ください。See supported data formats. はいYes. サポートされるデータ形式をご確認ください。See supported data formats.
クエリのキャッシュCaching queries はい。複数の形式 (SSD ベースのキャッシュ、インメモリ、結果セットのキャッシュ)。Yes, multiple forms (SSD-based caching, in-memory, resultset caching). さらに、具体化されたビューがサポートされますIn addition, Materialized View are supported いいえNo
テーブル変数Table variables いいえ。一時テーブルを使用しますNo, use temporary tables いいえNo
テーブルの分散Table distribution はいYes いいえNo
テーブルのインデックスTable indexes はいYes いいえNo
テーブルのパーティションTable partitions はいYes いいえNo
統計Statistics はいYes はいYes
ワークロード管理、リソース クラス、コンカレンシー制御Workload management, resource classes, and concurrency control はいYes いいえNo
ワークロード管理、リソース クラス、コンカレンシー制御Workload management, resource classes, and concurrency control はい。スケールアップおよびスケールダウン アクションを使用。Yes, using scale-up and scale-down actions. はい。Azure portal または T-SQL プロシージャを使用。Yes, using the Azure portal or T-SQL procedure.

クエリ言語Query language

Synapse SQL で使用されるクエリ言語では、従量課金モデルに応じてサポートされる機能が異なります。Query languages used in Synapse SQL can have different supported features depending on consumption model. 次の表では、Transact-SQL 言語において最も重要なクエリ言語の違いについて説明します。The following table outlines the most important query language differences in Transact-SQL dialects:

専用Dedicated サーバーレスServerless
SELECT ステートメントSELECT statement はい。Yes. Transact-SQL クエリ句 FOR XML/FOR JSON および MATCH はサポートされていません。Transact-SQL query clauses FOR XML/FOR JSON, and MATCH are not supported. はい。Yes. Transact-SQL クエリ句 FOR XMLMATCHPREDICT、クエリ ヒントはサポートされていません。Transact-SQL query clauses FOR XML, MATCH, PREDICT, and query hints are not supported. OFFSET、FETCHPIVOT、UNPIVOT は、システム オブジェクトのクエリにのみ使用できます (外部データには使用できません)。OFFSET/FETCH and PIVOT/UNPIVOT can be used to query system objects (not external data).
INSERT ステートメントINSERT statement はいYes いいえNo
UPDATE ステートメントUPDATE statement はいYes いいえNo
DELETE ステートメントDELETE statement はいYes いいえNo
MERGE ステートメントMERGE statement いいえNo いいえNo
トランザクションTransactions はいYes いいえNo
ラベルLabels はいYes いいえNo
データ読み込みData load はい。Yes. 推奨されるユーティリティは COPY ステートメントです。ただし、データ読み込みでは一括読み込み (BCP) と CETAS の両方がサポートされます。Preferred utility is COPY statement, but the system supports both BULK load (BCP) and CETAS for data loading. いいえNo
データ エクスポートData export はい。Yes. CETAS を使用。Using CETAS. はい。Yes. CETAS を使用。Using CETAS.
Types はい。cursorhierarchyidntext、text、imagerowversion空間型sql_variantxml を除くすべての Transact-SQL 型Yes, all Transact-SQL types except cursor, hierarchyid, ntext, text, and image, rowversion, Spatial Types, sql_variant, and xml はい。cursorhierarchyidntext、text、imagerowversion空間型sql_variantxml、テーブル型を除くすべての Transact-SQL 型Yes, all Transact-SQL types except cursor, hierarchyid, ntext, text, and image, rowversion, Spatial Types, sql_variant, xml, and Table type
複数データベース間のクエリCross-database queries いいえNo はい。USE ステートメントを含む。Yes, including USE statement.
組み込み関数 (分析)Built-in functions (analysis) はい。CHOOSEIIFPARSE を除くすべての Transact-SQL 分析、変換、日付と時刻、論理、および数学関数Yes, all Transact-SQL Analytic, Conversion, Date and Time, Logical, Mathematical functions, except CHOOSE, IIF, and PARSE はい。すべての Transact-SQL 分析、変換、日付と時刻、論理、および数学関数。Yes, all Transact-SQL Analytic, Conversion, Date and Time, Logical, Mathematical functions.
組み込み関数 (テキスト)Built-in functions (text) はい。Yes. STRING_ESCAPETRANSLATE を除くすべての Transact-SQL 文字列JSON、および照合順序関数All Transact-SQL String, JSON, and Collation functions, except STRING_ESCAPE and TRANSLATE はい。Yes. すべての Transact-SQL 文字列JSON、および照合順序関数。All Transact-SQL String, JSON, and Collation functions.
組み込みテーブル値関数Built-in table-value functions はい。OPENXMLOPENDATASOURCEOPENQUERYOPENROWSET を除く Transact-SQL 行セット関数Yes, Transact-SQL Rowset functions, except OPENXML, OPENDATASOURCE, OPENQUERY, and OPENROWSET はい。OPENXMLOPENDATASOURCEOPENQUERY を除く Transact-SQL 行セット関数Yes, Transact-SQL Rowset functions, except OPENXML, OPENDATASOURCE, and OPENQUERY
集計Aggregates CHECKSUM_AGGGROUPING_ID を除く Transact-SQL 組み込み集計Transact-SQL built-in aggregates except, except CHECKSUM_AGG and GROUPING_ID STRING_AGG を除く Transact-SQL 組み込み集計Transact-SQL built-in aggregates except STRING_AGG
オペレーターOperators はい。!>!< を除くすべての Transact-SQL 演算子Yes, all Transact-SQL operators except !> and !< はい。すべての Transact-SQL 演算子Yes, all Transact-SQL operators
フロー制御Control of flow はい。Yes. CONTINUEGOTORETURNUSEWAITFOR を除くすべての Transact-SQL フロー制御ステートメントAll Transact-SQL Control-of-flow statement except CONTINUE, GOTO, RETURN, USE, and WAITFOR はい。Yes. WHILE (...) 条件の RETURN および SELECT クエリを除くすべての Transact-SQL フロー制御ステートメントAll Transact-SQL Control-of-flow statement except RETURN and SELECT query in WHILE (...) condition
DDL ステートメント (CREATE、ALTER、DROP)DDL statements (CREATE, ALTER, DROP) はい。Yes. サポートされているオブジェクトの種類に適用できるすべての Transact-SQL DDL ステートメントAll Transact-SQL DDL statement applicable to the supported object types はい。Yes. サポートされているオブジェクトの種類に適用できるすべての Transact-SQL DDL ステートメントAll Transact-SQL DDL statement applicable to the supported object types

SecuritySecurity

Synapse SQL では、組み込みのセキュリティ機能を使用し、データをセキュリティで保護してアクセスを制御できます。Synapse SQL enable you to use built-in security features to secure your data and control access. 次の表は、Synapse SQL 消費モデル間の大まかな違いを比較したものです。The following table compares high-level differences between Synapse SQL consumption models.

専用Dedicated サーバーレスServerless
ログインLogins なし (データベースでサポートされるのは包含ユーザーのみ)N/A (only contained users are supported in databases) はいYes
ユーザーUsers なし (データベースでサポートされるのは包含ユーザーのみ)N/A (only contained users are supported in databases) はいYes
包含ユーザーContained users はい。Yes. 注: 制限のない管理者になれる Azure AD ユーザーは 1 人だけですNote: only one Azure AD user can be unrestricted admin いいえNo
SQL ユーザー名とパスワードによる認証SQL username/password authentication はいYes はいYes
Azure Active Directory (Azure AD) 認証Azure Active Directory (Azure AD) authentication はい。Azure AD ユーザーYes, Azure AD users はい。Azure AD ログインとユーザーYes, Azure AD logins and users
Storage の Azure Active Directory (Azure AD) パススルー認証Storage Azure Active Directory (Azure AD) passthrough authentication はいYes はいYes
Storage の SAS トークン認証Storage SAS token authentication いいえNo はい。EXTERNAL DATA SOURCE またはインスタンスレベルの CREDENTIALDATABASE SCOPED CREDENTIAL を使用。Yes, using DATABASE SCOPED CREDENTIAL in EXTERNAL DATA SOURCE or instance-level CREDENTIAL.
Storage のアクセス キー認証Storage Access Key authentication はい。EXTERNAL DATA SOURCEDATABASE SCOPED CREDENTIAL を使用Yes, using DATABASE SCOPED CREDENTIAL in EXTERNAL DATA SOURCE いいえNo
Storage の マネージド ID 認証Storage Managed Identity authentication はい。マネージド サービス ID 資格情報を使用Yes, using Managed Service Identity Credential はい。Managed Identity 資格情報を使用。Yes, using Managed Identity credential.
Storage のアプリケーション ID 認証Storage Application identity authentication はいYes いいえNo
アクセス許可 - オブジェクトレベルPermissions - Object-level はい。ユーザーへのアクセス許可の付与、拒否、取り消しを行う機能を含むYes, including ability to GRANT, DENY, and REVOKE permissions to users はい。サポートされているシステム オブジェクトでのユーザーまたはログインへのアクセス許可の付与、拒否、取り消しを行う機能を含むYes, including ability to GRANT, DENY, and REVOKE permissions to users/logins on the system objects that are supported
アクセス許可 - スキーマレベルPermissions - Schema-level はい。スキーマでのユーザーまたはログインへのアクセス許可の付与、拒否、取り消しを行う機能を含むYes, including ability to GRANT, DENY, and REVOKE permissions to users/logins on the schema はい。スキーマでのユーザーまたはログインへのアクセス許可の付与、拒否、取り消しを行う機能を含むYes, including ability to GRANT, DENY, and REVOKE permissions to users/logins on the schema
アクセス許可 - データベースレベルPermissions - Database-level はいYes はいYes
アクセス許可 - サーバーレベルPermissions - Server-level いいえNo はい。sysadmin とその他のサーバーロールがサポートされていますYes, sysadmin and other server-roles are supported
アクセス許可 - 列レベルのセキュリティPermissions - Column-level security はいYes はいYes
ロールまたはグループRoles/groups はい (データベース スコープ)Yes (database scoped) はい (サーバーとデータベースの両方のスコープ)Yes (both server and database scoped)
セキュリティと ID の関数Security & identity functions 一部の Transact-SQL セキュリティ関数および演算子: CURRENT_USERHAS_DBACCESSIS_MEMBERIS_ROLEMEMBERSESSION_USERSUSER_NAMESUSER_SNAMESYSTEM_USERUSERUSER_NAMEEXECUTE ASOPEN/CLOSE MASTER KEYSome Transact-SQL security functions and operators: CURRENT_USER, HAS_DBACCESS, IS_MEMBER, IS_ROLEMEMBER, SESSION_USER, SUSER_NAME, SUSER_SNAME, SYSTEM_USER, USER, USER_NAME, EXECUTE AS, OPEN/CLOSE MASTER KEY 一部の Transact-SQL セキュリティ関数および演算子: CURRENT_USERHAS_DBACCESSHAS_PERMS_BY_NAMEIS_MEMBER', 'IS_ROLEMEMBERIS_SRVROLEMEMBERSESSION_USERSESSION_CONTEXTSUSER_NAMESUSER_SNAMESYSTEM_USERUSERUSER_NAMEEXECUTE ASREVERTSome Transact-SQL security functions and operators: CURRENT_USER, HAS_DBACCESS, HAS_PERMS_BY_NAME, IS_MEMBER', 'IS_ROLEMEMBER, IS_SRVROLEMEMBER, SESSION_USER, SESSION_CONTEXT, SUSER_NAME, SUSER_SNAME, SYSTEM_USER, USER, USER_NAME, EXECUTE AS, and REVERT. セキュリティ関数は、外部データのクエリを実行するために使用できません (クエリで使用できる変数に結果を格納します)。Security functions cannot be used to query external data (store the result in variable that can be used in the query).
DATABASE SCOPED CREDENTIALDATABASE SCOPED CREDENTIAL はいYes はいYes
サーバー スコープの資格情報SERVER SCOPED CREDENTIAL いいえNo はいYes
行レベルのセキュリティRow-level security はいYes いいえNo
透過的なデータ暗号化 (TDE)Transparent Data Encryption (TDE) はいYes いいえNo
データの検出と分類Data Discovery & Classification はいYes いいえNo
脆弱性評価Vulnerability Assessment はいYes いいえNo
Advanced Threat ProtectionAdvanced Threat Protection はいYes
監査Auditing はいYes いいえNo
ファイアウォール規則Firewall rules はいYes はいYes
プライベート エンドポイントPrivate endpoint はいYes はいYes

専用 SQL プールとサーバーレス SQL プールでは、標準の Transact-SQL 言語を使用してデータのクエリを実行します。Dedicated SQL pool and serverless SQL pool use standard Transact-SQL language to query data. 詳細な相違点については、Transact-SQL 言語のリファレンスを参照してください。For detailed differences, look at the Transact-SQL language reference.

ツールTools

さまざまなツールを使用して Synapse SQL に接続し、データのクエリを実行できます。You can use various tools to connect to Synapse SQL to query data.

専用Dedicated サーバーレスServerless
Synapse StudioSynapse Studio はい。SQL スクリプトYes, SQL scripts はい。SQL スクリプトYes, SQL scripts
Power BIPower BI はいYes はいYes
Azure Analysis ServiceAzure Analysis Service はいYes はいYes
Azure Data StudioAzure Data Studio はいYes はい。バージョン 1.18.0 以上。Yes, version 1.18.0 or higher. SQL スクリプトと SQL ノートブックがサポートされています。SQL scripts and SQL Notebooks are supported.
SQL Server Management StudioSQL Server Management Studio はいYes はい。バージョン 18.5 以上。Yes, version 18.5 or higher

注意

SSMS を使用してサーバーレス SQL プール (プレビュー) に接続し、クエリを実行できます。You can use SSMS to connect to serverless SQL pool (preview) and query. これはバージョン 18.5 以降、部分的にサポートされています。接続してクエリを実行する場合にのみ使用できます。It is partially supported starting from version 18.5, you can use it to connect and query only.

標準の Transact-SQL 言語が使用されるほとんどのアプリケーションでは、専用とサーバーレス両方の Synapse SQL 消費モデルのクエリを実行できます。Most of the applications use standard Transact-SQL language can query both dedicated and serverless consumption models of Synapse SQL.

ストレージ オプションStorage options

分析されるデータは、さまざまな種類のストレージで保存できます。Data that is analyzed can be stored on various storage types. 次の表は、すべての使用可能なストレージ オプションの一覧です。The following table lists all available storage options:

専用Dedicated サーバーレスServerless
内部ストレージInternal storage はいYes いいえNo
Azure Data Lake v2Azure Data Lake v2 はいYes はいYes
Azure Blob StorageAzure Blob Storage はいYes はいYes
Azure SQL (リモート)Azure SQL (remote) いいえNo いいえNo
Azure CosmosDB トランザクション ストレージAzure CosmosDB transactional storage いいえNo いいえNo
Azure CosmosDB 分析ストレージAzure CosmosDB analytical storage いいえNo はい。Synapse Link (プレビュー) を使用 (限定的なプレビュー)Yes, using Synapse Link(preview) (under gated preview)
Apache Spark テーブル (ワークスペース内)Apache Spark tables (in workspace) いいえNo メタデータ同期を使用した PARQUET テーブルのみPARQUET tables only using metadata synchronization
Apache Spark テーブル (リモート)Apache Spark tables (remote) いいえNo いいえNo
Databricks テーブル (リモート)Databricks tables (remote) いいえNo いいえNo

データ形式Data formats

分析されるデータは、さまざまな形式のストレージで保存できます。Data that is analyzed can be stored in various storage formats. 次の表は、分析できるすべての使用可能なデータ形式の一覧です。The following table lists all available data formats that can be analyzed:

専用Dedicated サーバーレスServerless
区切り記号Delimited はいYes はいYes
CSVCSV はい (複数の文字による区切り記号はサポートされません)Yes (multi-character delimiters not supported) はいYes
ParquetParquet はいYes はい入れ子にされた型があるファイルを含むYes, including files with nested types
Hive ORCHive ORC はいYes いいえNo
Hive RCHive RC はいYes いいえNo
JSONJSON はいYes はいYes
AvroAvro いいえNo いいえNo
Delta-lakeDelta-lake いいえNo いいえNo
CDMCDM いいえNo いいえNo

次のステップNext steps

専用 SQL プールとサーバーレス SQL プールのベスト プラクティスに関する追加情報については、次の記事を参照してください。Additional information on best practices for dedicated SQL pool and serverless SQL pool can be found in the following articles: