애플리케이션 디자인

erwin DM NoSQL을 이용한 Couchbase 데이터 모델링

NoSQL 시스템의 아키텍처와 설계, 특히 쓰기 시점에 스키마를 강제하지 않는 Couchbase와 같은 문서(document) 패밀리 데이터베이스의 특성상, 관계형 시스템에서 NoSQL로 마이그레이션하거나 NoSQL을 사용하여 애플리케이션을 처음부터 구축할 때 NoSQL용 데이터 모델링은 종종 어려울 수 있습니다. 실제로 데이터 모델링은 Couchbase 구축 성공의 핵심 요소인 경우가 많으며, 빅데이터 애플리케이션의 급격히 진화하는 속성을 감안할 때 점진적으로 데이터 모델을 최적화하는 것은 애플리케이션 성능을 크게 향상시키는 촉진제가 될 수 있습니다.

전통적으로 관계형 시스템을 위한 데이터 모델링은 데이터 객체, 데이터 객체 상호 간의 관계, 그리고 정확한 표현을 식별하는 과학이었으며, 이는 훌륭한 데이터베이스 설계의 기반이 되었습니다. 반면에 NoSQL을 위한 모델링은 “사용자가 이 데이터로 어떤 종류의 질문에 답하고 싶어 하는가?”와 같은 애플리케이션 특화 접근 패턴을 탐구합니다. 이는 차례로 지원되어야 하는 쿼리의 종류를 결정하며, 성능 최적화를 위해 데이터를 가장 잘 배치하는 방법에 초점을 맞춥니다. 이러한 고려사항들은 우리의 데이터 모델링 접근 방식을 RDBMS의 전통적인 제약(쓰기 시점 스키마)에서 특정 애플리케이션을 위한 데이터 모델링(읽기 시점 스키마)으로 전환하게 만듭니다.

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

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

이제 erwin DM NoSQL을 사용한 모델링으로 들어가 보겠습니다. erwin DM NoSQL은 세 가지 주요 기능을 제공합니다:

순공학

관계형 모델을 Couchbase 호환 JSON 모델로 변환하는 과정.

변화

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

역공학

Couchbase의 프로덕션 데이터에서 erwin 환경으로 스키마를 가져오는 기능.

erwin DM NoSQL을 사용하여 Couchbase 데이터 플랫폼용 데이터를 모델링하는 단계별 가이드입니다:

설정:

1단계:

계정 생성 요청 여기 사용자 인증 정보를 사용하여 erwin DM NoSQL에 로그인하십시오.

2단계:

임포트 옵션을 사용하여 erwin DM 또는 기타 관계형 모델링 도구에서 “XML” 형식으로 생성된 개체-관계(ER) 모델을 erwin DM NoSQL에 푸시합니다.

3단계:

erwin 환경에서 ER 다이어그램을 시각화하세요.

변화

1단계:

정규화된, 비정규화된 또는 사용자 정의 변환 중 하나를 선택하여 모델을 변환하십시오.

2단계:

a. 정규화된 변환:

정규화는 일반적으로 중복을 제거하기 위해 별도의 테이블을 만들고 관계를 설정하여 데이터베이스의 데이터를 조직화하는 과정입니다. 이 과정에서 객체나 엔티티는 대개 참조됩니다. JSON 모델을 생성할 때, 참조된 테이블들은 일반적으로 별도의 문서가 됩니다.

b. 비정규화 변환:

이 과정에서 데이터 객체는 대개 임베디드됩니다. 유사한 객체들이 많은 문서에 임베디드되기 때문에 이 조직화는 중복성을 나타냅니다. 비정규화는 필요한 데이터를 가져오기 위해 조인이 필요하지 않기 때문에 성능을 크게 향상시키는 것으로 자주 발견됩니다. 이는 NoSQL 시스템에서 흔히 채택됩니다. 이 도구에서 비정규화를 사용하여 생성된 변환된 모델은 임베디드 객체와 참조된 객체의 조합입니다.

위 그림에서 구매 주문과 주문 항목은 포함된 객체인 반면, 출판사, 서점 이름 및 도서 반품은 참조된 객체입니다.

c. 사용자 정의 변환:

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

참고: 이 모델들 중 어떤 것이든 복제하여 속성이나 특성 등을 추가하거나 제거하여 입맛에 맞게 조정할 수 있습니다.,

순방향 엔지니어링

1단계:

로컬 시스템에서 생성된 모델을 다운로드하세요.

2단계:

AWS에 Couchbase 클러스ターを 구축하고 포트 8091을 사용하여 웹 콘솔에 액세스합니다. -> AWS에 Couchbase 클러스터를 설정하고 8091 포트를 사용하여 웹 콘솔에 접속하세요.


3단계:

보안 복사(secure copy)를 사용하여 로컬 머신에서 다운로드한 파일을 Couchbase EC2 인스턴스로 복사하십시오.

구문 (OSX): scp -i 키_경로 -r 디렉토리_경로 ec2-user@호스트이름:~

Ex:  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 path to 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 파일로 이동합니다

예: bulkInsert.sh를 찾으려면 Cd /De_movies../scripts/5.x로 이동하세요.

7단계:

bulkInsert 파일을 실행 가능하도록 만들고 경로를 설정하세요

Chmod +x bulkInsert.sh

PATH=/opt/couchbase/bin:$PATH

8단계:

다음 구문으로 bulkInsert 스크립트를 실행하세요

./bulkInsert.sh    

예: ./bulkInsert.sh localhost 8091 Administrator password sample

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

이 스크립트는 일반적으로 더미 데이터(junk data)를 바탕으로 모델을 생성하지만, 애플리케이션 개발자가 이를 수정하여 실제 데이터 샘플용 모델을 만들고, 제공된 배포 스크립트를 사용하여 Couchbase에 배포할 수 있습니다.

Couchbase에 데이터가 로드되면 N1QL(JSON용 SQL)을 사용하여 데이터를 조회할 수도 있으며, 쿼리 벤치마크(Query workbench)와 쿼리 플래너(query planner)를 사용하여 모델의 정확성과 효율성을 테스트할 수 있습니다.

역공학

1단계:

아래에 표시된 대로 연결 관리자를 사용하여 Couchbase에 대한 연결을 설정합니다.

2단계:

리버스 엔지니어 카우치베이스 선택

3단계:

카우치베이스 프로덕션 데이터의 스키마 임포트

4단계:

erwin 환경에서 리버스 엔지니어링된 Couchbase 모델 시각화  

최고의 성능을 제공하도록 모델이 지속적으로 최적화되도록 모델을 주기적으로 계속 조정하십시오.

erwin을 사용한 데이터 모델링은 시장 출시 기간을 단축하고, 모델링 프로세스를 시각화하기 위한 인터페이스를 제공하며, 모델의 정확도를 크게 향상시키는 데 도움이 됩니다. 더 나은 데이터 모델은 Couchbase와의 더 나은 성능과 더 강력한 성공을 보장합니다.

여기에 의견을 공유해 주시거나 forums.couchbase.com을 통해 문의해 주세요.

이 기사 공유하기

작가

차이트라 라마라오는 NoSQL 데이터베이스 기업인 카우치베이스의 선임 제품 관리자로서, 데이터베이스 툴링, 교차 데이터센터 복제 및 파트너 통합을 이끌고 있습니다. 그녀의 이전 경력으로는 카이저 퍼머넌트의 데이터 분석 제품 관리와 휴렛 팩커드의 소프트웨어 개발이 있습니다. 그녀는 전자공학 학사 학위와 카네기 멜론 대학교에서 공학 및 기술 혁신 관리 석사 학위를 받았습니다.

댓글 남기기

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

개발 시작하기

NoSQL을 탐색하고, 리소스를 찾아보고, 튜토리얼을 시작하려면 개발자 포털을 확인하세요.

카펠라 프리 사용하기

단 몇 번의 클릭으로 카우치베이스(Couchbase)를 직접 체험해 보세요. Capella DBaaS는 시작하기 가장 쉽고 빠른 방법입니다.

연락해

Couchbase 제품군에 대해 더 알고 싶으신가요? 저희가 도와드리겠습니다.