다음을 통해 공유


데이터 모델링

이 문서에서는 Azure Databricks의 데이터 모델링에 대한 고려 사항, 주의 사항 및 권장 사항을 소개합니다. 새 테이블을 설정하거나 ETL 워크로드를 작성하는 사용자를 대상으로 하며, 원시 데이터를 새 데이터 모델로 변환하는 데 영향을 주는 Azure Databricks 동작을 이해하는 데 중점을 둡니다. 데이터 모델링 결정은 조직과 워크로드에서 테이블을 사용하는 방법에 따라 달라집니다. 선택하는 데이터 모델은 쿼리 성능, 컴퓨팅 비용 및 스토리지 비용에 영향을 줍니다. 여기에는 Azure Databricks를 사용한 데이터베이스 디자인의 기본 개념에 대한 소개가 포함됩니다.

중요한

이 문서는 Delta Lake에서 지원하는 테이블, 특히 Unity Catalog에서 관리되는 테이블에만 적용됩니다.

Azure Databricks를 사용하여 Lakehouse Federation에 등록된 테이블을 포함하여 다른 외부 데이터 원본을 쿼리할 수 있습니다. 각 외부 데이터 원본에는 서로 다른 제한 사항, 의미 체계 및 트랜잭션 보장이 있습니다. 쿼리 데이터를 참조하세요.

데이터베이스 관리 개념

Azure Databricks로 빌드된 레이크하우스는 다른 엔터프라이즈 데이터 웨어하우징 시스템과 많은 구성 요소와 개념을 공유합니다. 데이터 모델을 디자인하는 동안 다음 개념과 기능을 고려합니다.

Azure Databricks의 트랜잭션

Azure Databricks는 트랜잭션 범위를 개별 테이블로 지정합니다. 즉, Azure Databricks는 다중 테이블 명령문(다중 명령문 트랜잭션이라고도 함)을 지원하지 않습니다.

데이터 모델링 워크로드의 경우 원본 레코드를 수집할 때 행을 둘 이상의 테이블에 삽입하거나 업데이트해야 할 때 여러 독립 트랜잭션을 수행해야 합니다. 이러한 각 트랜잭션은 다른 트랜잭션과 독립적으로 성공하거나 실패할 수 있으며, 다운스트림 쿼리는 실패하거나 지연된 트랜잭션으로 인해 상태 불일치에 대해 관대해야 합니다.

Azure Databricks의 기본 키 및 외신 키

기본 키와 외신 키는 정보 제공이며 적용되지 않습니다. 이 모델은 많은 엔터프라이즈 클라우드 기반 데이터베이스 시스템에서 일반적이지만 기존의 많은 관계형 데이터베이스 시스템과는 다릅니다. Azure Databricks의 제약 조건을 참조하세요.

Azure Databricks에서의 조인

조인은 모든 데이터베이스 디자인에서 처리 병목 상태를 발생할 수 있습니다. Azure Databricks에서 데이터를 처리할 때 쿼리 최적화 프로그램은 조인 계획을 최적화하려고 하지만 개별 쿼리가 여러 테이블의 결과를 조인해야 하는 경우 어려움을 겪을 수 있습니다. 필터 매개 변수가 다른 테이블의 필드에 있는 경우 최적화 프로그램에서 테이블의 레코드를 건너뛰지 못할 수도 있으며, 이로 인해 전체 테이블 검색이 발생할 수 있습니다.

Azure Databricks에서 조인 작업을 참조 하세요.

참고

구체화된 뷰를 사용하여 일부 조인 작업에 대한 결과를 증분 방식으로 계산할 수 있지만 다른 조인은 구체화된 뷰와 호환되지 않습니다. 구체화된 뷰를 참조하세요.

중첩 및 복합 데이터 형식 작업

Azure Databricks는 JSON, Avro 및 ProtoBuff를 비롯한 반구조화된 데이터 원본으로 작업하고 복잡한 데이터를 구조체, JSON 문자열, 맵 및 배열로 저장할 수 있습니다. 반구조화된 데이터 모델을 참조하세요.

정규화된 데이터 모델

Azure Databricks는 모든 데이터 모델에서 잘 작동할 수 있습니다. Azure Databricks에서 쿼리하거나 Azure Databricks로 마이그레이션해야 하는 기존 데이터 모델이 있는 경우 데이터를 다시 시작하기 전에 성능을 평가해야 합니다.

새 레이크하우스를 설계하거나 기존 환경에 데이터 세트를 추가하는 경우 Azure Databricks는 세 번째 정규화된 모델(예: 3NF)을 사용하지 않는 것이 좋습니다.

표준 쿼리에 있는 조인 수가 적고 동기화 상태를 유지할 키가 적기 때문에 별모양 스키마 또는 눈송이 스키마와 같은 모델은 Azure Databricks에서 잘 수행됩니다. 또한 단일 테이블에 더 많은 데이터 필드가 있으면 쿼리 최적화 프로그램에서 파일 수준 통계를 사용하여 많은 양의 데이터를 건너뛸 수 있습니다. 데이터 건너뛰기에 대한 자세한 내용은 Delta Lake의 데이터 건너뛰기(Data Skipping)를 참조하세요.