도메인 데이터 저장소가있는 사일로를 부수십시오
내에서다른 게시물ABN AMRO가 데이터 메쉬 스타일 아키텍처에서 데이터를 사용할 수있는 방법을 배웠습니다.이 blogpost에서는 큰 데이터 모노리스를 분해하는 방법에 대해 배웁니다.
데이터 중심 의사 결정 시프트
데이터웨어 하우스가 상품이 되었기 때문에 수년 동안 많은 경우 C가 많이 있습니다.하류영양.분산 시스템은 큰 인기를 얻었으며, 데이터는 더 크고 다양하고 다양한 데이터베이스 디자인이 튀어 나와 구름의 출현이 확장 성과 탄력을 증가시키기 위해 계산 및 저장을 분리했습니다.이러한 추세를 중앙 집중식에서 도메인 중심의 데이터 소유권으로 결합하면 데이터 집약적 인 응용 프로그램을 디자인 해야하는 방식을 변경하는 것의 중요성을 즉시 이해할 수 있습니다.
우리의 데이터 아키텍처에서 우리는 직접 데이터 소비와 새로운 데이터 생성 사이의 명확한 분할을했습니다.데이터 배포 아키텍처에서 읽을 수 있으므로여기과여기또한 데이터 저장소 (RDS)를 캡처하여 소비자에게 반복적으로 부족한 데이터를 반복적으로 제공하고 제공합니다.이 패턴에서는 데이터가 읽혀 지지만 새 데이터가 생성되지 않습니다.응용 프로그램이나 사용자가 소비하는 RDSS를 데이터 소스로 직접 사용하고 유사한 데이터 요소 간의 매핑을 기반으로 경량 통합을 수행 할 수 있습니다.이 모델의 큰 이점은 데이터 엔지니어링 팀이 새로운 데이터 모델을 생성하고 유지 관리 할 필요가 없습니다.새 데이터베이스로 데이터를 추출, 변환 및로드하지 않습니다.변화는 날아 오르지 만 이러한 결과는 영구적 인 새 집이 필요하지 않습니다.이 접근법은 복잡한 데이터 변환이 필요없는 데이터 탐색, 경량보고 및 간단한 분석 모델에 특히 유용합니다.
그러나 문제는 소비자의 요구가 RDSS가 제공하는 것을 초과 할 수 있다는 것입니다. 경우에 따라 새로운 데이터 생성에 대한 명확한 필요가 있습니다. 예를 들어 복잡한 비즈니스 로직과 새로운 비즈니스 통찰력을 창출하는 분석 모델이옵니다. 나중에 분석을 위해 이러한 통찰력을 보존하려면 예를 들어 데이터베이스 에서이 정보를 어딘가에 유지해야합니다. 또 다른 상황은 처리 될 필요가있는 데이터의 양이 RDS 플랫폼이 처리 할 수있는 것을 초과 할 수 있습니다. 이러한 경우에, 데이터 처리량; 예를 들어, 과거 데이터의 경우 데이터를 점진적으로 새로운 위치로 가져오고, 처리하고,이를 처리하고, 나중에 소비를 위해 사전 최적화하는 데 정당화 될 수 있습니다. 여러 가지 상황이 여러 가지 RDS가 결합되고 조화 될 필요가있을 때 일 것입니다. 일반적으로 많은 작업을 오케스트레이션하고 데이터를 함께 가져 오는 데 필요합니다. 사용자가 이러한 모든 작업이 완료 될 때까지 사용자를 기다리는 것은 사용자 환경에 부정적인 영향을 미칩니다. 이러한 영향은 우리에게 데이터 소비의 두 번째 패턴으로 이어집니다.도메인 데이터 저장소 (DDS)…에
도메인 데이터 저장소
우리는 동시에 민첩성이 증가하는 동안 새로 생성 된 데이터를보다 신중하게 관리하려고합니다.이것은 DDS가있는 것입니다.이러한 유형의 응용 프로그램은 데이터를 집중적으로 처리하고 새로 생성 된 데이터를 저장하고 소비자의 유스 케이스를 용이하게하는 역할을합니다.대규모로 가치를 잠금 해제하려면 데이터 엔지니어링 팀을위한 플랫폼이 포함 된 새로운 아키텍처를 설계했습니다.편면을보고 특성을 평가합시다.

우리가 상상하는 것은 새로운 데이터 기반 의사 사용 사례를 신속하게 전달할 수있는 생태계입니다.그것은 데이터 공학 및 집중적 인 처리를 용이하게하고, 통제력을 유지하고 기술의 확산을 보지 못하고는 아닙니다.우리는 비즈니스 특정 데이터 생성을 향한 일반 (Enterprise) 데이터 통합에서 전환을 예측합니다.통합 전문가에서 지역 사회 건물 및 원활한 협업을 전환합니다.및 단단한 데이터 모델에서보다 유연한 또는 “스키마 – 라이트”접근 방향으로의 시프트.
높은 수준의 생태계는 위 그림 1과 같습니다.빠른 데이터 섭취, 변환 및 사용을 허용하는 완전히 관리되는 플랫폼.하단에서 모든 데이터 엔지니어링 팀에서 복잡성을 숨기는 주된 목표는 관리되는 인프라를 볼 수 있습니다.셀프 서비스 방식으로 데이터 엔지니어링 팀을 지원하는 재사용 가능한 기능이 있습니다.여기에는 재사용 가능하고 관리되는 데이터베이스 기술, 중앙 모니터링 및 로깅, 계보, ID 및 액세스 관리, 오케스트레이션, CI / CD, 데이터 및 스키마 버전 관리, 배치, API 및 이벤트 기반 섭취를위한 패턴, 비즈니스 인텔리전스와의 통합 및 고급분석 기능 등등.underpinning 플랫폼은 팀 토폴로지 방식을 사용하여 관리됩니다. 중앙 플랫폼 팀은 다른 모든 팀을 지원하면서 기본 플랫폼을 관리합니다.주요 목적은 모든 서비스를 단순화하고 플랫폼을 관리하고 확보하고 데이터 엔지니어링 팀의 오버 헤드를 줄이는 것입니다.
위에는 데이터 엔지니어링 팀에서 데이터를 관리하는 DDS가 표시됩니다.이 도메인 팀은 데이터 제품, 고객 여정 또는 비즈니스 사용 사례에 중점을 둡니다.DDS 주변의 경계는 또한 데이터 책임을 결정합니다.여기에는 데이터 품질, 소유권, 통합 및 배포, 메타 데이터 등록, 모델링 및 보안이 포함됩니다.나중에 세분화와 도메인 경계로 돌아올 것입니다.
기능 요구 사항을 위해 우리는 비즈니스 목표와 목표가 잘 정의되고 자세한 및 완료되도록합니다.그들을 이해하는 것은 솔루션의 토대이며 해결해야 할 비즈니스 문제, 필요한 데이터 소스, 작동해야 할 솔루션, 실시간 또는 오프라인으로 데이터 처리를 수행 해야하는 경우, 무엇을 수행해야합니다.무결성과 요구 사항은 다른 도메인에서 재사용 할 수있는 것입니다.
비 기능 요구 사항의 경우, 우리는 어떤 종류의 데이터 저장소 기술 유형을 제공하는지 선택했습니다.각 데이터 저장소의 강도를 활용하기 위해 재사용 가능한 데이터베이스 기술이나 데이터 저장소 및 패턴 세트를 생각할 수 있습니다.예를 들어, 미션 크리티컬 및 전환 응용 프로그램은 강력한 일관성 모델을 사용하거나 비즈니스 인텔리전스와보고가 빠른 SQL 액세스를 제공하는 상점에서만 허용 될 수 있습니다.
다른 데이터 저장소는 데이터를 내부적으로 관리하고 구성합니다.하나의 일반적인 구성은 섭취, 정화, 큐어 처리, 조화, 서빙 등의 우려를 분리하는 것입니다.우리의 도메인 데이터 저장소에서는 폴더, 버킷, 데이터베이스 등과 같은 다양한 저장 기술을 가진 다양한 영역을 사용하는 것이 좋습니다.존은 또한 우리가 목적을 결합 할 수 있으므로 상점을 사용하여 동시에 운영 및 분석을 용이하게 할 수 있습니다.모든 상점과 구역에 대해 범위는 매우 명확해야합니다.

데이터 모델의 경우 리지드 데이터 모델에서 더 많은 “스키마 라이트”접근 방식으로 이동하도록 권장합니다.그러나 아키텍처 스타일은 허용됩니다.팀이 스키마를 읽거나 직접적으로 단순한 차원 모델을 구축하는 것을 선호하는 경우, 우리는 그들이 그렇게 할 것을 권장합니다.Kimball 또는 데이터 볼트 모델링도 적용 할 수 있습니다.그것은 모두 사용 사례의 요구와 크기에 달려 있으며, 이는 다음 주제로 가져옵니다.
도메인 데이터 저장소 세분화
우리가 엔터프라이즈 데이터웨어 하우스에서보다 세밀한 DDS 설계로 전환 할 때 우리는 세분화를 고려하고 데이터를 논리적으로 세그먼트해야합니다.논리 DDS 경계의 범위, 크기 및 배치를 결정하는 것은 어렵고 도메인간에 데이터를 배포 할 때 어려움을 유발합니다.일반적으로 경계는 주제 지향적이며 비즈니스 기능과 정렬됩니다.도메인의 논리적 경계를 정의 할 때 데이터 모델링 활동 및 도메인 내의 내부 데이터 배포를 용이하게하도록 하위 도메인으로 분해하는 값이 있습니다.
중요한 작업은 DDS의 논리적 역할에 대해 신중하게 생각하는 것입니다.이 덮개도 덮습니다비즈니스 입도과기술적 세분화:
- 비즈니스 입도는 최고 수준의 기능적 컨텍스트, 범위 (즉, ‘경계 컨텍스트’) 및 활동의 분석을 비즈니스 문제의 하향식 분해로 시작합니다.이들은 더 작은 ‘영역’, 사용 사례 및 비즈니스 목표로 나누어야합니다.이 연습에서는 효율적인 비즈니스 프로세스, 도메인, 기능 등을 나누는 방법에 대한 좋은 비즈니스 지식과 전문 지식을 필요로합니다. 모범 사례는 비즈니스 기능을 참조 모델로 사용하고 일반적인 용어 (유비쿼터스 언어) 및 중복 데이터 요구 사항을 연구하는 것입니다.
- 기술적 세분화는 재사용 성, 유연성 (자주 기능적 변경에 대한 쉬운 적응), 성능, 보안 및 확장 성과 같은 특정 목표를 향한 수행됩니다.핵심 균형은 올바른 절충을하는 것입니다.비즈니스 도메인은 동일한 데이터를 사용할 수 있지만 기술적 요구 사항이 서로 충돌하는 경우 문제를 분리하는 것이 좋습니다.예를 들어 특정 비즈니스 작업이 데이터를 집중적으로 집계해야하며 다른 하나는 개별 레코드 만 빠르게 선택 해야하는 경우 우려를 분리하는 것이 좋습니다.유연성에 대해서도 동일하게 적용될 수 있습니다.하나의 사용 사례는 일상적인 변화가 필요할 수 있으며, 다른 하나는 적어도 1/4 이상 안정적으로 유지되어야합니다.다시 말하지만, 당신은 문제를 분리하는 것을 고려해야합니다.따라서 DDS 경계 내에서 인스턴스가 허용되는 방식으로 DDS를 분리했습니다.
내부적으로 데이터 조직의 이야기는 도메인이 더 크고 여러 하위 도메인으로 구성 될 때 더 복잡해질 수 있습니다. 이보기의 DDS는 더 많은 초록입니다. 인스턴스 및 영역은 여러 하위 도메인간에 공유 될 수 있으며 영역은 독점적 일 수 있습니다. 이 콘크리트를 예로 만들어 보겠습니다. 큰 도메인의 경우 하나의 DDS의 모든 다양한 영역 주위에 경계를 줄 수 있습니다. 예를 들어,이 DDS 내에서 첫 번째 두 영역은 여러 하위 도메인간에 공유 될 수 있습니다. 그러므로 모든 하위 도메인에 대해 닦고, 수정하고, 과거 데이터를 빌드하는 것은 일반적으로 수행됩니다. 변형을 위해서는 데이터가 하위 도메인 또는 유스 케이스에 특정되어야하기 때문에 이야기가 더욱 복잡 해집니다. 그래서 하나의 사용 사례에만 해당하는 공유 및 파이프 라인이있는 파이프 라인이있을 수 있습니다. 모든 파이프 라인을 포함하여 전체 데이터 체인은 함께 속하므로 하나의 거대한 DDS 구현으로 볼 수 있습니다. 이 거대한 DDS 구현 내부에서 방금 배운 것처럼 다른 경계 : 모든 하위 도메인 및 특정 경계에 대한 일반적인 경계를 볼 수 있습니다.
도메인을 분해하는 것은 도메인이 더 크거나 하위 도메인이 일반 반복 가능 – 통합 로직을 요구할 때 특히 중요합니다.이러한 상황에서는 다른 하위 도메인을 표준화하고 이익을 얻을 수있는 방식으로 통합 논리를 제공하는 일반적인 하위 도메인을 가질 수 있습니다.지상 규칙은 서브 도메인간에 공유 모델을 소형화하고 항상 유비쿼터스 언어로 정렬하는 것입니다.겹침에 대해서는 도메인 중심 디자인에서 다른 패턴을 사용합니다.
데이터 요구 사항이 겹치는 세 가지 예시적인 사용 사례를 상상해보십시오.다른 통합 및 배포 패턴은 다른 팀 내에 적용될 수 있습니다.적용 할 수있는 다른 접근 방식을 탐험 해보자.
그만큼별도의 방법패턴은 재사용 가능성보다 복제 비용이 선호되는 경우에 사용할 수 있습니다.이 패턴은 일반적으로 높은 유연성과 민첩성이 필요할 때 선택입니다.모델링 관점에서 공통적이거나 아무 것도 공통적으로있을 때도 선택할 수 있습니다.

팀은 사용을 사용할 수 있습니다협력 관계겹치는 모든 당사자의 공유 개발 요구 사항을 수용 할 수있는 패턴은 큽니다.모든 팀은 서로 협조하고 서로의 요구를 고려해야합니다.각자는 공유 로직을 자유롭게 변경할 수 없기 때문에 모든 사람들에게 큰 공약이 필요합니다.이 접근 방식에서 데이터 엔지니어링 팀은 데이터 소비자와 제공 업체 모두 데이터 저장소에 캡처, 추출 및로드 및 다시 게시하거나 배포합니다.

ㅏ고객 공급 업체한 팀이 강하고 하류 소비자의 데이터와 필요에 대한 소유권을 갖는 경우 패턴을 사용할 수 있습니다.이 패턴의 단점은 상충되는 문제가 될 수 있으며, 다운 스트림 팀이 산출물을 협상하고 우선 순위를 일정하도록 강요 할 수 있습니다.

ㅏ적합성패턴은 모든 요구 사항에 완전히 모든 당사자를 준수하는 데 사용할 수 있습니다.이 패턴은 통합 작업이 매우 복잡하거나 다른 당사자가 제어를 허용하거나 공급 업체 패키지를 사용할 수있는 경우 선택할 수 있습니다.

결론
이 장에 건설 된 아키텍처는 데이터 집약적 인 응용 프로그램을 규모에서 관리하는 방법을 이해하는 데 도움이됩니다.가치가 빠른 시간을 달성하기 위해 도메인 경계를 사용하여 데이터를 분해하는 것이 중요합니다.사일로를 부수고 DDS간에 의존성을 최소한으로 유지함으로써 팀이 집중할 수 있습니다.
이 BlogPost에서 토론 한 아키텍처는 초정표에서 데이터를 관리하는 데 도움이됩니다.더 많은 것을 배우고 싶다면, 나는 당신에게 책을 살펴 보도록 참여시킵니다.저울 데이터 관리…에