Azure Synapse SQL은 T-SQL 언어를 사용하여 데이터를 쿼리하고 분석할 수 있는 빅 데이터 분석 서비스입니다. SQL Server 및 Azure SQL Database에서 사용되는 표준 ANSI 호환 SQL 언어를 데이터 분석에 사용할 수 있습니다.
Transact-SQL 언어는 서버리스 SQL 풀에서 사용되며, 전용 모델은 다른 개체를 참조할 수 있고 지원되는 기능 세트에 약간의 차이가 있습니다. 이 페이지에서는 Synapse SQL의 소비 모델 간의 상위 수준 Transact-SQL 언어 차이점을 확인할 수 있습니다.
데이터베이스 개체
Synapse SQL의 소비 모델을 사용하면 다른 데이터베이스 개체를 사용할 수 있습니다. 다음 표에서는 지원되는 개체 유형을 비교하여 보여줍니다.
| Object | 전용 | 서버를 사용하지 않음 |
|---|---|---|
| 테이블 | 예 | 아니요, 데이터베이스 내 테이블은 지원되지 않습니다. 서버리스 SQL 풀은 Azure Data 레이크 스토리지 또는 Dataverse에 저장된 데이터를 참조하는 외부 테이블만 쿼리할 수 있습니다. |
| 뷰 | 예. 뷰는 전용 모델에서 사용할 수 있는 쿼리 언어 요소를 사용할 수 있습니다. | 예, 외부 테이블, OPENROWSET 함수를 사용한 쿼리 및 기타 뷰를 만들 수 있습니다. 보기는 서버리스 모델에서 사용 가능한 쿼리 언어 요소를 사용할 수 있습니다. |
| 스키마 | 예 | 예, 스키마가 지원됩니다. 스키마를 사용하여 서로 다른 테넌트를 격리하고 스키마별로 테이블을 배치합니다. |
| 임시 테이블 | 예 | 임시 테이블은 시스템 뷰, 리터럴 또는 기타 임시 테이블의 일부 정보를 저장하는 데 사용할 수 있습니다. 임시 테이블에 대한 UPDATE/DELETE도 지원됩니다. 시스템 뷰를 사용하여 임시 테이블을 조인할 수 있습니다. 외부 테이블에서 데이터를 선택하여 임시 테이블에 삽입하거나 임시 테이블을 외부 테이블과 조인할 수 없습니다. 이러한 작업은 외부 데이터와 임시 테이블을 동일한 쿼리에서 혼합할 수 없기 때문에 실패합니다. |
| 사용자 정의 프로시저 | 예 | 예, 저장 프로시저는 모든 사용자 데이터베이스(master 데이터베이스 아님)에 배치할 수 있습니다. 프로시저는 외부 데이터를 읽고 서버리스 풀에서 사용할 수 있는 쿼리 언어 요소를 사용할 수 있습니다. |
| 사용자 정의 함수 | 예 | 예, 인라인 테이블 반환 함수만 지원됩니다. 스칼라 사용자 정의 함수는 지원되지 않습니다. |
| 트리거 | 아니요 | 아니요, 서버리스 SQL 풀은 데이터 변경을 허용하지 않으므로 트리거는 데이터 변경에 반응할 수 없습니다. |
| 외부 테이블 | 예. 지원되는 데이터 형식을 참조하세요. | 예, 외부 테이블을 사용할 수 있으며 Azure Data Lake 스토리지 또는 Dataverse에서 데이터를 읽는 데 사용할 수 있습니다. 지원되는 데이터 서식을 참조하세요. |
| 쿼리 캐싱 | 예, 여러 양식(SSD 기반 캐싱, 메모리 내, 결과 집합 캐싱). 또한 구체화된 뷰가 지원됩니다. | 아니요, 파일 통계만 캐시됩니다. |
| 결과 집합 캐싱 | 예 | 아니요, 쿼리 결과는 캐시되지 않습니다. 파일 통계만 캐시됩니다. |
| 구체화된 뷰 | 예 | 아니요, 구체화된 보기는 서버리스 SQL 풀에서 지원되지 않습니다. |
| 테이블 변수 | 아니요, 임시 테이블을 사용하세요 | 아니요, 테이블 변수는 지원되지 않습니다. |
| 테이블 배포 | 예 | 아니요, 테이블 배포는 지원되지 않습니다. |
| 테이블 인덱스 | 예 | 아니요, 인덱스는 지원되지 않습니다. |
| 테이블 분할 | 예. | 외부 테이블은 분할을 지원하지 않습니다. Hive 파티션 폴더 구조를 사용하여 파일을 파티션하고 Spark에서 파티션된 테이블을 만들 수 있습니다. Spark 분할은 서버리스 풀과 동기화됩니다. Spark를 사용하지 않는 경우 폴더 구조에서 파일을 분할하고 폴더 파티션 구조에서 분할된 보기를 만들 수 있지만 외부 테이블은 분할된 폴더에 만들 수 없습니다. |
| 통계 | 예 | 예, 통계는 외부 파일에서 만들어집니다. |
| 워크로드 관리, 리소스 클래스 및 동시성 제어 | 예, 워크로드 관리, 리소스 클래스 및 동시성 제어를 참조하세요. | 아니요, 쿼리에 할당된 리소스를 관리할 수 없습니다. 서버리스 SQL 풀은 리소스를 자동으로 관리합니다. |
| 비용 제어 | 예, 확장 및 축소 작업을 사용합니다. | 예, Azure Portal 또는 T-SQL 프로시저를 사용하여 서버리스 풀의 매일, 매주 또는 월별 사용량을 제한할 수 있습니다. |
쿼리 언어
Synapse SQL에 사용되는 쿼리 언어는 소비 모델에 따라 지원되는 기능이 다를 수 있습니다. 다음 표는 Transact-SQL 방언에서 가장 중요한 쿼리 언어 차이점을 간략히 보여줍니다:
| 문 | 전용 | 서버를 사용하지 않음 |
|---|---|---|
| SELECT 문 | 네.
SELECT 문은 지원되지만 FOR XML/FOR JSON, MATCH, OFFSET/FETCH와 같은 일부 Transact-SQL 쿼리 절은 지원되지 않습니다. |
예, SELECT 문이 지원되지만 FOR XML, MATCH, PREDICT, GROUPNG SETS 및 쿼리 힌트와 같은 일부 Transact-SQL 쿼리 절은 지원되지 않습니다. |
| INSERT 문 | 예 | 아니요. Spark 또는 기타 도구를 사용하여 새 데이터를 Data Lake에 업로드합니다. 트랜잭션이 많은 워크로드를 위한 분석 스토리지와 함께 Azure Cosmos DB를 사용합니다. CETAS를 사용하여 외부 테이블을 만들고 데이터를 삽입할 수 있습니다. |
| UPDATE 문 | 예 | 아니요, Spark를 사용하여 Parquet/CSV 데이터를 업데이트하면 서버리스 풀에서 변경 내용을 자동으로 사용할 수 있습니다. 트랜잭션이 많은 워크로드를 위한 분석 스토리지와 함께 Azure Cosmos DB를 사용합니다. |
| DELETE 문 | 예 | 아니요, Spark를 사용하여 Parquet/CSV 데이터를 삭제하면 서버리스 풀에서 변경 내용을 자동으로 사용할 수 있습니다. 트랜잭션이 많은 워크로드를 위한 분석 스토리지와 함께 Azure Cosmos DB를 사용합니다. |
| MERGE 문 | 예 (프리뷰) | 아니요, Spark를 사용하여 Parquet/CSV 데이터를 병합하면 서버리스 풀에서 변경 내용을 자동으로 사용할 수 있습니다. |
| CTAS 문 | 예 | 아니요, CREATE TABLE AS SELECT 문은 서버리스 SQL 풀에서 지원되지 않습니다. |
| CETAS 문 | 예, CETAS를 사용하여 외부 테이블에 초기 로드를 수행할 수 있습니다. | 예, CETAS를 사용하여 외부 테이블에 초기 로드를 수행할 수 있습니다. CETAS는 Parquet 및 CSV 출력 형식을 지원합니다. |
| 트랜잭션 | 예 | 예, 트랜잭션은 메타데이터 개체에만 적용할 수 있습니다. |
| 레이블 | 예 | 아니요, 레이블은 서버리스 SQL 풀에서 지원되지 않습니다. |
| 데이터 로드 | 네. 선호되는 유틸리티는 COPY 문이지만 시스템은 데이터 로드에 대량 로드(BCP) 및 CETAS를 모두 지원합니다. | 아니요, 데이터가 외부 스토리지에 저장되기 때문에 서버리스 SQL 풀에 데이터를 로드할 수 없습니다. CETAS 문을 사용하여 초기에 외부 테이블에 데이터를 로드할 수 있습니다. |
| 데이터 내보내기 | 네. CETAS 사용. | 네. CETAS를 사용하여 외부 스토리지(Azure Data Lake, Dataverse, Azure Cosmos DB)에서 Azure Data Lake로 데이터를 내보낼 수 있습니다. |
| 유형 | 예, cursor, hierarchyid, ntext, text, 및 image, rowversion, 공간 형식, sql_variant 및 xml을 제외한 모든 Transact-SQL 형식 | 예, cursor, hierarchyid, ntext, text, 및 image, rowversion, Spatial Types, sql_variant, xml 및 테이블 유형을 제외한 모든 Transact-SQL 유형이 지원됩니다. 여기에서 Parquet 열 유형을 SQL 유형에 매핑하는 방법을 참조하세요. |
| 데이터베이스 간 쿼리 | 아니요 | 예, 데이터베이스 간 쿼리 및 3부로 구성된 이름 참조는 USE 문을 포함하여 지원됩니다. 쿼리는 서버리스 SQL Database 또는 동일한 작업 영역의 레이크 데이터베이스를 참조할 수 있습니다. 작업 영역 간 쿼리는 지원되지 않습니다. |
| 기본 제공/시스템 함수(분석) | 예, CHOOSE 및 PARSE를 제외한 모든 Transact-SQL 분석, 변환, 날짜 및 시간, 논리, 수학 함수 | 예, 모든 Transact-SQL 분석, 변환, 날짜 및 시간, 논리 및 수학 함수가 지원됩니다. |
| 기본 제공/시스템 함수(문자열) | 네. STRING_ESCAPE 및 TRANSLATE를 제외한 모든 Transact-SQL 문자열 , JSON 및 데이터 정렬 함수 | 네. 모든 Transact-SQL String, JSON 및 데이터 정렬 함수가 지원됩니다. |
| 기본 제공/시스템 함수(암호화) | 약간 |
HASHBYTES은(는) 서버리스 SQL 풀에서 지원되는 유일한 암호화 함수입니다. |
| 기본 제공/시스템 테이블 값 함수 | 예, OPENXML, OPENDATASOURCE, OPENQUERY 및 OPENROWSET을 제외한 Transact-SQL 행 집합 함수 | 예, OPENXML, OPENDATASOURCE 및 OPENQUERY를 제외한 모든 Transact-SQL 행 집합 함수가 지원됩니다. |
| 기본 제공/시스템 집계 | CHECKSUM_AGG 및 GROUPING_ID를 제외한 Transact-SQL 기본 제공 집계 | 예, 모든 Transact-SQL 기본 제공 집계가 지원됩니다. |
| 연산자 | 예, !> 및 !<를 제외한 모든 Transact-SQL 연산자 | 예, 모든 Transact-SQL 연산자가 지원됩니다. |
| 흐름 제어 | 네. CONTINUE, GOTO, RETURN, USE 및 WAITFOR를 제외한 모든 Transact-SQL 흐름 제어 문 | 네. 모든 Transact-SQL 흐름 제어 문이 지원됩니다.
WHILE (...) 조건의 SELECT 쿼리는 지원되지 않습니다. |
| DDL 문(CREATE, ALTER, DROP) | 네. 지원되는 개체 유형에 적용 가능한 모든 Transact-SQL DDL 문 | 예, 지원되는 개체 유형에 적용할 수 있는 모든 Transact-SQL DDL 문이 지원됩니다. |
Security
Synapse SQL 풀을 사용하면 기본 제공 보안 기능을 사용하여 데이터를 보호하고 액세스를 제어할 수 있습니다. 다음 표는 Synapse SQL 소비 모델 간의 상위 수준 차이점을 비교합니다.
| 기능 | 전용 | 서버를 사용하지 않음 |
|---|---|---|
| 로그인 | 해당 없음(포함된 사용자만 데이터베이스에서 지원됨) | 예, 서버 수준 Microsoft Entra ID 및 SQL 로그인이 지원됩니다. |
| 사용자 | 해당 없음(포함된 사용자만 데이터베이스에서 지원됨) | 예, 데이터베이스 사용자가 지원됩니다. |
| 포함된 사용자 | 네. 참고: 제한 없는 관리자 권한을 가질 수 있는 Microsoft Entra 사용자는 한 명뿐입니다 | 아니요, 포함된 사용자는 지원되지 않습니다. |
| SQL 사용자 이름/암호 인증 | 예 | 예, 사용자는 사용자 이름과 암호를 사용하여 서버리스 SQL 풀에 액세스할 수 있습니다. |
| Microsoft Entra 인증 | 예, Microsoft Entra 사용자입니다 | 예, Microsoft Entra 로그인과 사용자는 Microsoft Entra ID를 사용하여 서버리스 SQL 풀에 액세스할 수 있습니다. |
| 스토리지 Microsoft Entra 통과 인증 | 예 | 예, Microsoft Entra 통과 인증은 Microsoft Entra 로그인에 적용됩니다. 자격 증명이 지정되지 않으면 Microsoft Entra 사용자의 ID가 스토리지로 전달됩니다. SQL 사용자에는 Microsoft Entra 통과 인증을 사용할 수 없습니다. |
| 스토리지 공유 액세스 서명(SAS) 토큰 인증 | 아니요 | 예, EXTERNAL DATA SOURCE에 공유 액세스 서명 토큰이 있는 DATABASE SCOPED CREDENTIAL 또는 공유 액세스 서명이 있는 인스턴스 수준 CREDENTIAL을 사용합니다. |
| 스토리지 액세스 키 인증 | 예, EXTERNAL DATA SOURCE에서 DATABASE SCOPED CREDENTIAL을 사용 | 아니요, 스토리지 액세스 키 대신 SAS 토큰을 사용합니다. |
| 스토리지 관리 ID 인증 | 예, 관리 서비스 ID 자격 증명을 사용 | 예, 쿼리는 작업 영역 관리 ID 자격 증명을 사용하여 스토리지에 액세스할 수 있습니다. |
| 스토리지 애플리케이션 ID/서비스 주체(SPN) 인증 | 예 | 예, 스토리지에서 인증하는 데 사용할 서비스 주체 애플리케이션 ID로 자격 증명을 만들 수 있습니다. |
| 서버 역할 | 아니요 | 예. sysadmin, public 및 기타 서버 역할이 지원됩니다. |
| SERVER LEVEL CREDENTIAL | 아니요 | 예, 명시적 데이터 소스를 사용하지 않는 OPENROWSET 함수에서 서버 수준 자격 증명을 사용합니다. |
| 권한 - 서버 수준 | 아니요 | 예, 예를 들어 CONNECT ANY DATABASE 및 SELECT ALL USER SECURABLES를 사용하면 사용자가 모든 데이터베이스에서 데이터를 읽을 수 있습니다. |
| 데이터베이스 역할 | 예 | 예, db_owner, db_datareader 및 db_ddladmin 역할을 사용할 수 있습니다. |
| 데이터베이스 범위 자격 증명 | 예, 외부 데이터 원본에서 사용됩니다. | 예, 데이터베이스 범위 자격 증명을 외부 데이터 원본에서 사용하여 스토리지 인증 방법을 정의할 수 있습니다. |
| 권한 - 데이터베이스 수준 | 예 | 예, 데이터베이스 개체에 대한 권한을 부여, 거부 또는 취소할 수 있습니다. |
| 권한 - 스키마 수준 | 예, 스키마에서 사용자/로그인에게 권한을 GRANT, DENY 및 REVOKE할 수 있는 기능 포함 | 예, 스키마의 사용자/로그인에 대한 GRANT, DENY 및 REVOKE 권한을 포함하여 스키마 수준 권한을 지정할 수 있습니다. |
| 권한 - 개체 수준 | 예, 사용자에게 권한을 GRANT, DENY 및 REVOKE할 수 있는 기능 포함 | 예, 지원되는 시스템 개체에 대한 사용자/로그인에 대한 권한을 GRANT, DENY 및 REVOKE할 수 있습니다. |
| 권한 - 열 수준 보안 | 예 | 서버리스 SQL 풀에서는 뷰에 대해 열 수준 보안이 지원되며 외부 테이블에는 지원되지 않습니다. 외부 테이블의 경우 외부 테이블 위에 논리적 뷰를 만든 다음 열 수준 보안을 적용할 수 있습니다. |
| 행 수준 보안 | 예 | 아니요, 행 수준 보안에 대한 기본 제공 지원은 없습니다. 사용자 지정 보기를 해결 방법으로 사용합니다. |
| 데이터 마스킹 | 예 | 아니요, 서버리스 SQL 풀에서는 기본 제공 데이터 마스킹이 지원되지 않습니다. 해결 방법으로 일부 열을 명시적으로 마스킹하는 래퍼 SQL 보기를 사용합니다. |
| 기본 제공/시스템 보안 & ID 기능 | 몇 가지 Transact-SQL 보안 함수 및 연산자: 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_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 및 REVERT. 보안 함수는 외부 데이터를 쿼리하는 데 사용할 수 없습니다(쿼리에 사용할 수 있는 변수에 결과를 저장). |
| 투명한 데이터 암호화(TDE) | 예 | 아니요, 투명한 데이터 암호화는 지원되지 않습니다. |
| 데이터 검색 & 분류 | 예 | 아니요, 데이터 검색 & 분류는 지원되지 않습니다. |
| 취약성 평가 | 예 | 아니요, 취약성 평가를 사용할 수 없습니다. |
| 고급 위협 방지 | 예 | 아니요, Advanced Threat Protection은 지원되지 않습니다. |
| 감사 | 예 | 예, 서버리스 SQL 풀에서 감사가 지원됩니다. |
| 방화벽 규칙 | 예 | 예, 방화벽 규칙은 서버리스 SQL 엔드포인트에서 설정할 수 있습니다. |
| 프라이빗 엔드포인트 | 예 | 예, 프라이빗 엔드포인트는 서버리스 SQL 풀에서 설정할 수 있습니다. |
전용 SQL 풀과 서버리스 SQL 풀은 표준 Transact-SQL 언어를 사용하여 데이터를 쿼리합니다. 자세한 차이점은 Transact-SQL 언어 참조를 확인하세요.
플랫폼 기능
| 기능 | 전용 | 서버를 사용하지 않음 |
|---|---|---|
| 확장 | 예 | 서버리스 SQL 풀은 워크로드에 따라 자동으로 확장됩니다. |
| 일시 중지/다시 시작 | 예 | 서버리스 SQL 풀은 사용되지 않을 때 자동으로 비활성화되고 필요할 때 활성화됩니다. 사용자 작업은 필요하지 않습니다. |
| 데이터베이스 백업 | 예 | 아니요. 데이터는 외부 시스템(ADLS, Cosmos DB)에 저장되므로, 원본에서 데이터를 백업하고 있는지 확인하세요. 원본 제어에 SQL 메타데이터(테이블, 뷰, 프로시저 정의 및 사용자 권한)를 저장하고 있는지 확인하세요. Lake 데이터베이스의 테이블 정의는 Spark 메타데이터에 저장되므로, Spark 테이블 정의도 원본 제어에 보관하고 있는지 확인하세요. |
| 데이터베이스 복원 | 예 | 아니요. 데이터는 외부 시스템(ADLS, Cosmos DB)에 저장되므로, 데이터를 가져오려면 원본 시스템을 복구해야 합니다. SQL 개체를 다시 만들 수 있도록 SQL 메타데이터(테이블, 뷰, 프로시저 정의 및 사용자 권한)가 원본 제어에 있는지 확인하세요. Lake 데이터베이스의 테이블 정의는 Spark 메타데이터에 저장되므로, Spark 테이블 정의도 원본 제어에 보관하고 있는지 확인하세요. |
도구
Synapse SQL에 연결해 데이터를 쿼리할 때는 다양한 도구를 사용할 수 있습니다.
| 도구 | 전용 | 서버를 사용하지 않음 |
|---|---|---|
| Synapse Studio | 예, SQL 스크립트 | 예, SQL 스크립트는 Synapse Studio에서 사용할 수 있습니다. 결과적으로 많은 양의 데이터를 반환하는 경우 Synapse Studio 대신 SSMS 또는 Visual Studio Code를 사용합니다. |
| Power BI | 예 | 예, Power BI를 사용하여 서버리스 SQL 풀에 대한 보고서를 만들 수 있습니다. 보고에는 가져오기 모드를 사용하는 것이 좋습니다. |
| Azure Analysis Service | 예 | 예, 서버리스 SQL 풀을 사용하여 Azure Analysis Service에서 데이터를 로드할 수 있습니다. |
| SQL Server Management Studio(SSMS) | 예 | 예, SQL Server Management Studio를 사용하여 서버리스 SQL 풀을 쿼리할 수 있습니다. SSMS는 서버리스 SQL 풀에서 사용할 수 있는 개체만 표시합니다. |
| Visual Studio Code용 MSSQL 확장 | 예 | 예, Visual Studio Code를 사용하여 서버리스 SQL 풀을 쿼리할 수 있습니다. SQL 스크립트 및 SQL Notebook이 지원됩니다. Visual Studio Code는 서버리스 SQL 풀에서 사용할 수 있는 개체만 표시합니다. |
참고
SSMS를 사용하여 서버리스 SQL 풀에 연결하고 쿼리할 수 있습니다. 버전 18.5부터 부분적으로 지원되며, 연결 및 쿼리만 사용할 수 있습니다.
표준 Transact-SQL 언어를 사용하는 대부분의 애플리케이션은 Synapse SQL의 전용 및 서버리스 사용량 기반 모델 둘 다를 쿼리할 수 있습니다.
데이터 액세스
분석되는 데이터는 다양한 스토리지 유형에 저장할 수 있습니다. 다음 표에는 사용 가능한 모든 스토리지 옵션이 나열되어 있습니다.
| 스토리지 유형 | 전용 | 서버를 사용하지 않음 |
|---|---|---|
| 내부 스토리지 | 예 | 아니요, 데이터는 Azure Data Lake 또는 Azure Cosmos DB 분석 스토리지에 저장됩니다. |
| Azure Data Lake v2 | 예 | 예, 외부 테이블과 OPENROWSET 함수를 사용하여 ADLS에서 데이터를 읽을 수 있습니다. 여기에서 액세스 제어를 설정하는 방법을 알아봅니다. |
| Azure Blob Storage | 예 | 예, 외부 테이블과 OPENROWSET 함수를 사용하여 Azure Blob Storage에서 데이터를 읽을 수 있습니다. 여기에서 액세스 제어를 설정하는 방법을 알아봅니다. |
| Azure SQL/SQL Server(원격) | 아니요 | 아니요, 서버리스 SQL 풀은 Azure SQL Database를 참조할 수 없습니다. 탄력적 쿼리 또는 연결된 서버를 사용하여 Azure SQL에서 서버리스 SQL 풀을 참조할 수 있습니다. |
| Dataverse | 아니요, 서버리스 SQL 풀(ADLS를 통해) 또는 Spark에서 Azure Synapse Link를 사용하여 Azure Cosmos DB 데이터를 전용 풀에 로드할 수 있습니다. | 예, Azure Data Lake에서 Dataverse용 Azure Synapse 링크를 사용하여 Dataverse 테이블을 읽을 수 있습니다. |
| Azure Cosmos DB 트랜잭션 스토리지 | 아니요 | 아니요, Azure Cosmos DB 컨테이너에 액세스하여 데이터를 업데이트하거나 Azure Cosmos DB 트랜잭션 스토리지에서 데이터를 읽을 수 없습니다. Spark 풀을 사용하여 Azure Cosmos DB 트랜잭션 스토리지를 업데이트합니다. |
| Azure Cosmos DB 분석 스토리지 | 아니요, 서버리스 SQL 풀(ADLS를 통해), ADF, Spark 또는 기타 로드 도구에서 Azure Synapse Link를 사용하여 Azure Cosmos DB 데이터를 전용 풀에 로드할 수 있습니다. | 예, Azure Synapse Link를 사용하여 Azure Cosmos DB 분석 스토리지를 쿼리할 수 있습니다. |
| Apache Spark 테이블(작업 영역 내) | 아니요 | 예, 서버리스 풀은 메타데이터 동기화를 사용하여 PARQUET 및 CSV 테이블을 읽을 수 있습니다. |
| Apache Spark 테이블(원격) | 아니요 | 아니요, 서버리스 풀은 동일한 Synapse 작업 영역의 Apache Spark 풀에서 만들어진 PARQUET 및 CSV 테이블에만 액세스할 수 있습니다. 그러나 외부 Spark 테이블 위치를 참조하는 외부 테이블을 수동으로 만들 수 있습니다. |
| Databricks 테이블(원격) | 아니요 | 아니요, 서버리스 풀은 동일한 Synapse 작업 영역의 Apache Spark 풀에서 만들어진 PARQUET 및 CSV 테이블에만 액세스할 수 있습니다. 그러나 Databricks 테이블 위치를 참조하는 외부 테이블을 수동으로 만들 수 있습니다. |
데이터 형식
분석되는 데이터는 다양한 스토리지 형식으로 저장할 수 있습니다. 다음 표에는 분석할 수 있는 모든 데이터 형식이 나열되어 있습니다.
| 데이터 형식 | 전용 | 서버를 사용하지 않음 |
|---|---|---|
| 구분됨 | 예 | 예, 구분된 파일을 쿼리할 수 있습니다. |
| CSV | 예(여러 문자 구분 기호는 지원되지 않음) | 예, CSV 파일을 쿼리할 수 있습니다. 더 나은 성능을 위해 빠른 구문 분석을 제공하는 PARSER_VERSION 2.0을 사용합니다. CSV 파일에 행을 추가하는 경우 추가 가능한 파일로 쿼리해야 합니다. |
| Parquet | 예 | 예, 중첩 유형이 있는 파일을 포함하여 Parquet 파일을 쿼리할 수 있습니다. |
| Hive ORC | 예 | 아니요, 서버리스 SQL 풀은 Hive ORC 서식을 읽을 수 없습니다. |
| Hive RC | 예 | 아니요, 서버리스 SQL 풀은 Hive RC 서식을 읽을 수 없습니다. |
| JSON | 예 | 예, 구분된 텍스트 형식과 T-SQL JSON 함수를 사용하여 JSON 파일을 쿼리할 수 있습니다. |
| Avro | 아니요 | 아니요, 서버리스 SQL 풀은 Avro 형식을 읽을 수 없습니다. |
| Delta Lake | 아니요 | 예, 중첩 유형이 있는 파일을 포함하여 Delta 레이크 파일을 쿼리할 수 있습니다. |
| Common Data Model(CDM) | 아니요 | 아니요, 서버리스 SQL 풀은 Common Data Model을 사용하여 저장된 데이터를 읽을 수 없습니다. |
다음 단계
전용 SQL 풀 및 서버리스 SQL 풀의 모범 사례에 대한 추가 정보는 다음 문서에서 찾을 수 있습니다.