소개
Microsoft Fabric의 SQL Server, Azure SQL Database, Azure SQL Managed Instance 및 SQL Database에서 다양한 데이터베이스 개체를 디자인하고 구현하는 방법을 알아봅니다. 적절한 데이터베이스 개체 디자인은 이러한 플랫폼에서 고성능, 확장성 및 유지 관리 가능한 SQL 솔루션을 빌드하는 데 기본 사항입니다.
SQL 개발자는 데이터베이스 개체 디자인 결정이 애플리케이션 코드보다 훨씬 더 영구적이라는 것을 알게 될 것입니다. 최소한의 영향으로 C# 클래스를 리팩터링하거나 마이크로 서비스를 다시 작성할 수 있지만, 테이블을 rowstore에서 columnstore로 변경하거나, 임시 기록 추적을 개조하거나, ID 열에서 시퀀스 개체로 전환하려면 몇 시간 동안 테이블을 잠그고 프로덕션 시스템을 방해할 수 있는 마이그레이션이 필요합니다.
이 모듈에서 학습할 특수한 개체 유형은 나중에 추가할 수 있는 성능 최적화만이 아닙니다. 기본적으로 엔진 수준에서 데이터를 저장, 쿼리 및 유효성 검사하는 방법을 변경합니다. 임시 감사가 필요할 때 표준 테이블을 선택하는 것은 트리거 및 기록 테이블을 수동으로 빌드하는 것을 의미합니다. 아키텍처에 IDENTITY 분산 시퀀스가 필요한 시기를 선택하면 애플리케이션 계층에서 해결 방법이 강제로 적용됩니다.
이러한 개체를 미리 이해하면 고통스러운 재작성 없이 발전할 수 있는 시스템을 설계하여 블록체인 스타일 확인, 밀리초 대기 시간 캐싱 또는 다른 기반에 커밋한 후에는 쉽게 변경할 수 없는 실시간 분석과 같은 기능을 사용할 수 있습니다.
학습할 내용
Azure SQL Database, Microsoft Fabric의 SQL Database 및 Azure SQL Managed Instance에 적용되는 데이터베이스 개체 디자인 기술을 살펴봅니다.
테이블 디자인 및 구현 - 적절한 데이터 형식, 크기 및 구조를 사용하여 테이블 만들기 Azure SQL Database에서 트랜잭션 앱을 빌드하든 패브릭에서 운영 분석 데이터베이스를 빌드하든 워크로드에 대한 rowstore 및 columnstore 인덱스 중에서 선택하는 방법을 알아봅니다.
특수 테이블 형식 - SQL Managed Instance의 높은 처리량 시나리오에 메모리 내 테이블 사용, 모든 플랫폼에서 감사 내역을 위한 임시 테이블, Fabric Lakehouse 통합을 위한 외부 테이블, 규정 준수에 중요한 애플리케이션용 LEDGER 테이블 및 복잡한 관계에 대한 GRAPH 테이블.
제약 조건 및 유효성 검사 - 데이터베이스가 마이크로 서비스, 엔터프라이즈 애플리케이션 또는 피드 분석 파이프라인을 제공하는지 여부에 관계없이 데이터 무결성을 보장하는 기본 키, 외대 키, 고유 제약 조건, CHECK 제약 조건 및 DEFAULT 값을 구현합니다.
고급 기능 - 클라우드 네이티브 앱에서 유연한 스키마를 위해 JSON 열을 사용하고, 플랫폼의 쿼리 엔진에 최적화된 인덱스를 구현하고, 분산 ID 생성 패턴에 SEQUENCE 개체를 사용합니다.
분할 전략 - 대규모 데이터베이스에 대한 테이블 및 인덱스 분할 디자인 및 구현 Azure SQL Database의 하이퍼스케일 데이터베이스, SQL Managed Instance의 다중 TB 데이터베이스 및 Fabric 운영 데이터베이스의 시계열 데이터에 필수적입니다.
이 문제가 중요한 이유
효과적인 데이터베이스 개체 디자인은 다음 사항에 직접적인 영향을 줍니다.
- 성능 - 잘 디자인된 테이블 및 인덱스로 쿼리 실행 시간 단축
- 데이터 무결성 - 적절한 제약 조건으로 데이터 일관성 및 정확도 보장
- 유지 관리 - 구성된 개체 디자인으로 데이터베이스 관리 간소화
- AI 기능 - 적절한 데이터 구조를 통해 AI 기능 통합을 지원합니다.
- 확장성 - 분할을 통해 대규모 데이터 세트를 효율적으로 처리할 수 있습니다.
먼저 Microsoft의 SQL 플랫폼에서 효과적인 테이블 구조를 디자인하고 구현하는 방법을 살펴보겠습니다.