## 개념1
데이터를 물리적으로 자료를 저장하는 곳이 스토리지, 추상적으로 자료를 관리하는 곳이 스토어다.
Data Storage
: physical data store - ssd , cluster, etc [wiki-computer data storage]
Data Store [wiki]
: logiclal store - repository for persistently storing and managing collections of data which include not just repositories like databases, but also simpler store types such as simple files, emails etc
- Simple files (spreadsheet, paper)
- File systems
- Email sotrage systems = server/client systems
- Database system
- Relational database : Store your business critical information, the most durable and reliable type of data store. (on file system or clusters)
- Non-relational (“NoSQL”) database : Store large volumes and unstructured data, roughly the same as SQL databases except for not enforcing schemas (or enforcing only very loose schemas).
- Key-value store : redis / Store simple objects like cache (input parameters)
Distributed data storesMessage queue : kafka / Store large amount of simple data by adding distributed partitions
## 개념2
대기업은 마케팅, 영업, 재고 등 다양한 부서에서 발생하는 다양한 데이터가 쌓이면서 이 모든 데이터 소스를 가지면 중앙에서 관리해 "중복이 없고 정리가 잘된 데이터"를 만들고 싶었다. 이를 활용하면 일정하고 좋은 의사결정을 내릴 수 있기 때문이다.이렇게 탄생한 데이터 웨어하우스를 현실에서 데이터 분석할 때는 데이터웨어하우스의 데이터마트를 보게 되니 실상 관계형 데이터베이스의 데이터 마트와 뭐가 다른 거야?라고 생각하기 쉽다.
큰 덩어리의 데이터웨어하우스에 대해서 분석을 하는 것은 비용적으로나 데이터 를 이해하고 활용하는 측면에서 비효율적 적이기 때문에 분석하기 용이한 의미단위로 쪼갤 필요가 있다. 그래서 테이블 형태의 데이터 마트를 만들었다. DWH의 데이터마트는 완전한 정규화를 바탕으로 만들어지지 않는다. 현실적으로 "잦은 변화가 생기지 않는 속성"(such as 유저속성) 은 정규화 개념을 사용해서 분리하겠지만, 그렇지 않은 경우 정규화를 포기하고 분석에 필요한 정보를 모두 갖고 있다.
하지만, 데이터웨어하우스가 최근에 등장한 데이터 레이크와 다른 점은 데이터웨어하우스의 태생이 "데이터베이스"라는데서 발생한다. 구조화된 형태의 데이터베이스의 모임이 데이터 웨어하우스고, 데이터 레이크는 원본데이터를 그대로 가져올 수 있는 스토리지다.
세상은 발전하고 그에 따라 기존 개념과 비슷한 새로운 것을 만들면서 기존에 몰랐던 개념이 생긴다. 이론적으로 확실히 분리되는 개념을 이해하는 것도 중요하지만 "왜 이 개념이 등장했는지 역사만 이해해도 헷갈리진 않을 것이다."
DataWarehouse : 장기 대용량 데이터 저장 목적의 데이터베이스 a centralized repository designed to store, process, and secure large amounts of structured data.
DataMart : 장기 대용량 데이터 분석 목적의 데이터베이스
Data Lake : a centralized repository designed to store, process, and secure large amounts of structured, semistructured, and unstructured data.
# Deep dive into basic!
## Data Model/Modeling [web page]
추상적으로 자료를 어떻게 볼까? 자료는 언제 어디서든 누가 봐도 이해되고 유지보수될 수 있는 형태여야 하므로 "관리가능"하며 "자료의 관계"를 알 수 있는 형태로 "구조화"시키는 작업히 필요하다. 이처럼 관리가능한 자료시스템을 데이터베이스라고 하며, 이 작업을 데이터 모델링이라고 한다.
모델이란 어떤 대상을 의미하는 포괄적 의미를 가지고 있다고 할 수 있으며, 특히 데이터 모델은 현실 세계에 대해 우리가 관심있어 하는 대상을 데이터베이스화 하기 위한 개념적 도구라고 정의할 수 있다.
데이터 모델링은 현실 세계의 기업 업무에서 발생하는 데이터에 대하여 물리적으로 데이터베이스화(관리)하기 위해 이루어지는 과정 중의 한 단계이다. 이 데이터 모델링은 개념 데이터 모델링, 논리 데이터 모델링, 물리 데이터 모델링 등 3단계로 나눌 수 있으며, 엄밀한 의미에서범주로 보기도 한다.
데이터 모델링은 프로세스 모델링과 함께 시스템 개발에 있어서 중요한 두 개의 축을 이룬다. 프로세스 중심의 분석/설계 방법을 통해 설계한 데이터 모델은 업무 프로세스의 변화에 따라 영향을 많이 받기 때문에 상대적으로 업무 변화에 대한 영향을 적게 받으면서 유연한 시스템을 만들기 위해 데이터 중심의 설계에 많은 관심이 모아지고 있다. 개발 방법론에 따라 다소간 차이는 있으나 데이터 모델링과 프로세스 모델링은 상호 보완적인 관점에서 이해되어야 하며 특히 데이터 모델은 시스템의 뼈대가 되기 때문에 데이터 모델링의 결과에 따라 시스템의 안정성은 많은 영향을 받게 된다고 할 수 있다.
- Entity (types)
- Attributes
- Naming conventions
- Relationships
- Rules
1. 개념 데이터 모델링 단계에서는 주제별로 분류 가능한 업무를 분석한 후 핵심 엔터티(Entity)를 추출 하고 그들 간의 관계를 정의하여 전체 데이터 모델의 골격을 생성한다. 이렇게 도출된 엔터티(업무) 간 의 관계를 표현하기 위해 개체-관계 다이어그램(ERD, Entity-Relationship Diagram)을 작성한다.
2. 논리 데이터 모델링 단계에서는 개념 데이터 모델링 단계에서 정의한 핵심 엔터티와 관계를 바탕으로 상세 속성을 정의하고 식별자를 확정하며 정규화와 같은 상세화 과정을 수행한다. 일관성Consistency을 확보하고 중복Redundancy을 제거하여 속성들이 가장 적절한 엔터티에 배치되도록 함으로써 좀 더 신뢰성있는 데이터 구조를 얻는 데 목적이 있다. 논리데이터 모델의 상세화는 식별자 확정, 정규화, M:M 관계 해소, 참조 무결성 규칙 정의 등을 들 수 있으며, 추가적으로 이력 관리에 대한 전략을 정의하여 이를 논리 데이터 모델에 반영함으로써 데이터 모델링을 완료하게 된다. 일관성에 해당하는 것은 아래와 같다.
3. 마지막으로 물리 데이터 모델링 단계에서는 논리 데이터 모델을 기반으로 목표하는 DBMS의 특성 및 구현 환경 등을 감안한 스키마(데이터 구조)를 일정한 기준과 규칙에 의해 도출하고 칼럼(Column)의 데이터 타입과 크기를 정의한다. 또한 데이터 사용량을 분석 예측하는 과정을 통해 효율적인 데이터베이스가 될 수 있도록 인덱스의 정의 및 역정규화 작업을 수행한다. 이 단계에서 결정되는 것은 테이블, 칼럼 등으로 표현되는 물리적인 저장 구조와 사용될 저장 장치, 자료를 추출하기 위해 사용될 접근 방법 등이 있다.
## 데이터 아키텍쳐는 무엇이고, 데이터 모델링과 무엇이 다를까?
While data modeling focuses on the representation of the data, data architecture is more concerned with what tools and platforms to use for storing and analyzing the data. The data architect is the one choosing and implementing your tech stack to create an ecosystem based on your organizational structure and business goals.
Should you migrate to the Cloud?
What security concerns do you need to address?
What tools and platforms do you need?
- Data modeling is all about the accuracy of data while data architecture is about the infrastructure housing that data.
- Data modeling is concerned with the reliability of the data, while data architecture is concerned with data safety.
- A data model is an attempted representation of reality, while data architecture is a framework of systems and logistics.
- A data model represents a limited set of business concepts and how they relate to one another. Data architecture covers the data infrastructure of the entire organization.
https://www.integrate.io/blog/data-modeling-vs-data-architecture-5-critical-differences/
https://www.integrate.io/blog/the-ultimate-guide-to-data-architecture/
'Developing.. > DE:SQL,log' 카테고리의 다른 글
Data Center란 무엇인가 (0) | 2022.07.28 |
---|---|
postgresql ; json operator ; JSON VALUE 추출하기 (0) | 2022.06.04 |
로그에 대한 모든 것 (0) | 2022.05.30 |