Azure Synapse Analytics 공유 메타데이터

Azure Synapse Analytics를 사용하면 여러 작업 영역 계산 엔진이 Apache Spark 풀과 서버리스 SQL 풀 간에 데이터베이스와 테이블을 공유할 수 있습니다.

공유는 소위 최신 데이터 웨어하우스 패턴을 지원하고 작업 영역 SQL 엔진이 Spark로 만든 데이터베이스 및 테이블에 액세스할 수 있도록 합니다. 또한 SQL 엔진은 다른 엔진과 공유되지 않는 자체 개체를 만들 수 있습니다.

중요합니다

1,024개 이상의 열이 있는 Spark에서 만든 테이블은 개체 탐색기에 표시될 수 있지만 불완전한 메타데이터 동기화로 인해 서버리스 SQL 풀에서 쿼리할 수 없습니다.

해결 방법: 서버리스 SQL 풀에서 쿼리해야 하는 경우 열이 1,024개가 넘는 Spark 테이블을 만들지 않습니다. 스키마를 다시 디자인하고 테이블을 다시 만듭니다.

최신 데이터 웨어하우스 지원

공유 메타데이터 모델은 다음과 같은 방식으로 최신 데이터 웨어하우스 패턴을 지원합니다.

  1. 데이터 레이크로부터의 데이터는 Spark를 통해 효율적으로 처리되고, 가공된 데이터는 (필요하다면 파티셔닝된) Parquet 지원 테이블들에 저장됩니다. 이러한 테이블은 여러 개의 데이터베이스에 포함될 수 있습니다.

  2. Spark에서 만든 데이터베이스 및 모든 테이블은 Azure Synapse 작업 영역 Spark 풀 인스턴스에 표시되며 Spark 작업에서 사용할 수 있습니다. 작업 영역의 모든 Spark 풀이 동일한 기본 카탈로그 메타 저장소를 공유하기 때문에 이 기능에는 사용 권한이 적용됩니다.

  3. Spark가 생성한 데이터베이스와 해당 데이터베이스의 Parquet 기반 또는 CSV 기반 테이블은 작업 영역 서버리스 SQL 풀에서 볼 수 있습니다. 데이터베이스는 서버리스 SQL 풀 메타데이터에서 자동으로 만들어지고 Spark 작업에서 만든 외부 테이블과 관리되는 테이블 은 모두 해당 데이터베이스의 스키마에 있는 서버리스 SQL 풀 메타데이터 dbo 의 외부 테이블로 액세스할 수 있습니다.

개체 동기화는 비동기적으로 발생합니다. 개체는 SQL 컨텍스트에 나타날 때까지 몇 초 정도 지연됩니다. 이러한 쿼리가 나타나면 쿼리할 수 있지만 액세스 권한이 있는 SQL 엔진은 업데이트하거나 변경할 수 없습니다.

공유 메타데이터 개체

Spark를 사용하면 데이터베이스, 외부 테이블, 관리되는 테이블 및 뷰를 만들 수 있습니다. Spark 뷰에는 Spark 엔진이 정의된 Spark SQL 문을 처리해야 하고 SQL 엔진에서 처리할 수 없으므로 Parquet 또는 CSV 스토리지 형식을 사용하는 데이터베이스와 포함된 외부 및 관리 테이블만 작업 영역 SQL 엔진과 공유됩니다. Spark 뷰는 Spark 풀 인스턴스 간에만 공유됩니다.

보안 모델 한눈에 보기

Spark 데이터베이스 및 테이블은 SQL 엔진의 동기화된 표현과 함께 기본 스토리지 수준에서 보호됩니다. 쿼리 제출자가 사용할 권한이 있는 엔진에서 테이블을 쿼리하면 쿼리 제출자의 보안 주체가 기본 파일로 전달됩니다. 사용 권한은 파일 시스템 수준에서 확인됩니다.

자세한 내용은 Azure Synapse Analytics 공유 데이터베이스를 참조하세요.

유지 관리 변경

Spark를 사용하여 메타데이터 개체를 삭제하거나 변경하면 변경 내용이 선택되어 서버리스 SQL 풀로 전파됩니다. 동기화는 비동기적이며 짧은 지연 후에 변경 내용이 SQL 엔진에 반영됩니다.

다음 단계