애플리케이션 디자인

erwin DM NoSQL을 사용한 카우치베이스용 데이터 모델링

NoSQL 시스템, 특히 쓰기 시 스키마를 적용하지 않는 Couchbase와 같은 문서 계열 데이터베이스의 아키텍처와 설계를 고려할 때, 관계형 시스템에서 NoSQL로 마이그레이션하거나 NoSQL을 사용하여 처음부터 애플리케이션을 구축할 때 NoSQL용 데이터 모델링은 종종 어려울 수 있습니다. 실제로 데이터 모델링은 Couchbase 배포의 중요한 성공 요인인 경우가 많으며, 빠르게 진화하는 빅 데이터 애플리케이션의 특성을 고려할 때 데이터 모델을 점진적으로 최적화하는 것은 애플리케이션 성능을 크게 향상시킬 수 있습니다.

전통적으로 관계형 시스템의 데이터 모델링은 데이터 객체와 객체 간의 관계, 정확한 표현을 식별하는 과학으로, 좋은 데이터베이스 설계의 토대를 마련하는 작업이었습니다. 반면에 NoSQL용 모델링은 애플리케이션별 액세스 패턴(예: "사용자가 이 데이터로 어떤 유형의 질문에 답하고자 하는가?")을 탐색합니다. 이를 통해 지원해야 할 쿼리의 종류를 결정하고 성능 최적화를 위해 데이터를 가장 잘 배치하는 방법에 초점을 맞춥니다. 이러한 고려 사항으로 인해 데이터 모델링 접근 방식이 RDBMS의 전통적인 제약(쓰기 스키마)에서 특정 애플리케이션을 위한 데이터 모델링(읽기 스키마)으로 바뀌게 됩니다.

모델링 패러다임에 영향을 미치는 RDBMS와 NoSQL 시스템의 또 다른 차별점은 데이터의 정규화 및 비정규화 개념입니다. 과거에는 엄격한 관계를 이해하고 엄격한 스토리지 제한을 충족하기 위해 데이터 정규화를 강조했던 반면, 유연한 NoSQL 시스템은 데이터가 클러스터에 분산되고 중복성이 데이터 읽기 확장을 용이하게 하기 때문에 데이터의 비정규화에 더 중점을 둡니다. 사용 사례에 따라 이상적인 데이터 모델은 종종 두 가지 접근 방식을 조합한 것입니다.

따라서 정확한 데이터 모델링은 NoSQL 데이터베이스의 성공을 위한 핵심 분야로 계속 남아 있습니다.

이제 erwin DM NoSQL을 사용한 모델링에 대해 자세히 알아보겠습니다. erwin DM NoSQL은 세 가지 주요 기능을 제공합니다:

포워드 엔지니어링

관계형 모델을 Couchbase 호환 JSON 모델로 변환하는 프로세스입니다.

변환

모델에 대해 원하는 변환 형태(정규화, 비정규화, 사용자 지정)를 선택할 수 있습니다.

리버스 엔지니어링

카우치베이스의 프로덕션 데이터에서 에르윈 환경으로 스키마를 가져올 수 있습니다.

다음은 erwin DM NoSQL을 사용하여 카우치베이스 데이터 플랫폼의 데이터를 모델링하는 단계별 가이드입니다:

설정:

1단계:

계정 요청하기 여기 를 클릭하고 자격 증명을 사용하여 erwin DM NoSQL에 로그인합니다.

2단계:

가져오기 옵션을 사용하여 erwin DM 또는 기타 관계형 모델링 도구에서 생성된 엔티티-관계 모델을 "XML" 형식으로 erwin DM NoSQL로 푸시합니다.

3단계:

에르윈 환경에서 응급실 다이어그램을 시각화하세요.

변환

1단계:

정규화, 비정규화 또는 사용자 지정 변환을 사용하여 모델을 변환하도록 선택합니다.

2단계:

a. 정규화된 변환:

정규화는 일반적으로 별도의 테이블을 만들고 관계를 설정하여 중복을 제거함으로써 데이터베이스의 데이터를 정리하는 프로세스입니다. 이 프로세스의 객체 또는 엔티티는 일반적으로 참조됩니다. JSON 모델을 만들 때 참조된 테이블은 일반적으로 별도의 문서가 됩니다.

b. 정규화되지 않은 변환:

이 과정에서 데이터 객체는 일반적으로 임베드됩니다. 유사한 개체가 많은 문서에 포함되어 있기 때문에 이 조직은 중복성을 나타냅니다. 비정규화를 사용하면 필요한 데이터를 가져오는 데 조인이 필요하지 않기 때문에 성능이 크게 향상되는 경우가 많습니다. 이는 종종 NoSQL 시스템에서 채택됩니다. 이 도구에서 비정규화를 사용하여 생성된 변환된 모델은 임베디드 객체와 참조된 객체의 조합입니다.

위 그림에서 구매 주문, 주문 항목은 임베디드 개체인 반면 게시자, 스토어 이름 및 BookReturn은 참조 개체입니다.

c.사용자 지정 변환:

erwin DM NoSQL은 일반적으로 E-R 다이어그램을 사용하여 데이터 조직을 분석하고 특정 규칙에 따라 모델을 Couchbase 호환 JSON 모델로 변환합니다. 그러나 앱 개발자 또는 애플리케이션 소유자는 애플리케이션을 가장 잘 알고 있으므로 모델을 사용자 지정할 수 있는 기능을 제공합니다. 특정 임베디드 객체를 참조할 수 있는 옵션이 있으며, 올바른 선택을 할 수 있도록 도구 내에서 몇 가지 가이드라인을 제공합니다.

참고: 이러한 모델을 복제하고 속성, 속성 등을 추가하거나 제거하여 조정할 수 있습니다,

포워드 엔지니어링:

1단계:

로컬 시스템에서 생성된 모델을 다운로드합니다.

2단계:

AWS에서 Couchbase 클러스터를 설정하고 포트 8091을 사용하여 웹 콘솔에 액세스하세요.


3단계:

보안 복사를 사용하여 다운로드한 파일을 로컬 컴퓨터에서 Couchbase EC2 인스턴스로 복사합니다.

구문(OSX): scp -i 키 경로 -r 디렉터리 경로 ec2-user@hostname:~로 이동합니다.

예: scp -i /Users/chaitra.ramarao/Downloads/US_East.pem -r /Users/chaitra.ramarao/Downloads/Cl_De_EMOVIES\ r9.64_20180329185059 ec2-user@ec2-54-152-108-80.compute-1.amazonaws.com:~

4단계:

ssh를 사용하여 AWS 인스턴스에 로그인

구문(OSX):ssh -i key.pair의 경로 ec2-user@remote IP

예: ssh -i /Users/chaitra.ramarao/Downloads/US_East.pem ec2-user@ec2-34-203-230-73.compute-1.amazonaws.com

5단계:

"ls"를 사용하여 파일을 나열하여 파일이 복사되었는지 확인합니다.

6단계:

bulkInsert.sh 파일로 이동합니다.

예: Cd /De_movies../scripts/5.x를 실행하여 bulkInsert.sh를 찾습니다.

7단계:

bulkInsert 파일을 실행 파일로 만들고 경로를 설정합니다.

Chmod +x bulkInsert.sh

PATH=/opt/couchbase/bin:$PATH

8단계:

다음 구문을 사용하여 bulkInsert 스크립트를 실행합니다.

./bulkInsert.sh

예 : ./bulkInsert.sh localhost 8091 관리자 비밀번호 샘플

사용자가 지정한 버킷 이름으로 모델링된 샘플 데이터가 Couchbase에 로드된 것을 볼 수 있습니다.

이 스크립트는 일반적으로 정크 데이터에 대한 모델을 생성하며, 애플리케이션 개발자가 수정하여 실제 데이터 샘플에 대한 모델을 생성하고 제공된 배포 스크립트를 사용하여 Couchbase에 배포하는 데 사용할 수 있습니다.

또한 N1QL(JSON용 SQL)을 사용하여 Couchbase에 로드된 데이터를 쿼리하고 쿼리 워크벤치 및 쿼리 플래너를 사용하여 모델의 정확성과 효율성을 테스트할 수 있습니다.

리버스 엔지니어링:

1단계:

아래 그림과 같이 연결 관리자를 사용하여 Couchbase에 대한 연결을 설정합니다:

2단계:

리버스 엔지니어링 Couchbase 선택

3단계:

Couchbase 프로덕션 데이터의 스키마 가져오기

4단계:

에르윈 환경에서 리버스 엔지니어링된 카우치베이스 모델 시각화하기  

모델이 최상의 성능을 제공하도록 최적화되도록 주기적으로 모델을 계속 조정하세요.

erwin을 사용한 데이터 모델링은 시장 출시 기간을 단축하고, 모델링 프로세스를 시각화할 수 있는 인터페이스를 제공하며, 모델의 정확성을 크게 개선하는 데 도움이 됩니다. 더 나은 데이터 모델은 더 나은 성능과 더 큰 성공을 보장합니다.

여기에서 의견을 공유하거나 forums.couchbase.com으로 문의해 주세요.

이 문서 공유하기
받은 편지함에서 카우치베이스 블로그 업데이트 받기
이 필드는 필수 입력 사항입니다.

작성자

게시자 Chaitra Ramarao, Sr. 제품 관리자, Couchbase Inc.

Chaitra Ramarao는 데이터베이스 툴링, 데이터센터 간 복제 및 파트너 통합을 선도하는 NoSQL 데이터베이스 회사인 Couchbase의 선임 제품 관리자입니다. 이전에는 카이저 퍼머넌트에서 데이터 분석 제품 관리와 휴렛팩커드에서 소프트웨어 개발을 담당했습니다. 그녀는 카네기 멜론에서 ECE 학사 학위와 엔지니어링 및 기술 혁신 관리 석사 학위를 받았습니다.

댓글 남기기

카우치베이스 카펠라를 시작할 준비가 되셨나요?

구축 시작

개발자 포털에서 NoSQL을 살펴보고, 리소스를 찾아보고, 튜토리얼을 시작하세요.

카펠라 무료 사용

클릭 몇 번으로 Couchbase를 직접 체험해 보세요. Capella DBaaS는 가장 쉽고 빠르게 시작할 수 있는 방법입니다.

연락하기

카우치베이스 제품에 대해 자세히 알고 싶으신가요? 저희가 도와드리겠습니다.