MongoDB 보기 사용
이 페이지의 내용
.drdl 파일 을 사용하지 않고 BI Connector 에 표시되는 데이터를 제어하는 또 다른 방법은 뷰 에서 읽는 것입니다. 뷰를 사용하면 소스 컬렉션 을 가져와서 표시할 필드를 선택하고, 필드 이름을 변경하고, 데이터를 정렬하고, 집계 파이프라인 이 수행할 수 있는 모든 종류의 변환을 수행할 수 있습니다.
예시
뷰를 사용하여 collection에서 민감한 정보를 수정하고 BI Connector가 소스 collection이 아닌 뷰에서 읽도록 지시할 수 있습니다.
mongo
shell 메서드 createView 를 사용하여 컬렉션에 대한 뷰를 정의한 다음 mongosqld
를 시작할 때 해당 뷰를 지정된 네임스페이스로 사용합니다.
예시
employees
데이터베이스에 salaries
이라는 collection 있다고 가정해 보겠습니다. BI Connector는 모든 개인 식별 정보를 제외하는 salaries
컬렉션에 대한 뷰를 만들어 소스 컬렉션의 개인 데이터를 손상시키지 않고 뷰에 대한 데이터 분석을 안전하게 촉진할 수 있습니다.
다음 명령은 employees
데이터베이스의 salaries_redacted
라는 뷰의 데이터로 mongosqld
를 시작합니다.
mongosqld --sampleNamespaces "employees.salaries_redacted"
MongoDB 보기로 스키마를 관리하는 또 다른 사용 사례는 작업 데이터 세트에 BI Connector 샘플링 프로세스에서 제외될 수 있는 희박하지만 중요한 필드가 포함되어 있는 경우입니다.
모든 문서에 발생하는 하나의 필드와 가끔만 발생하는 다른 필드를 포함하는 sparseCollection
라는 collection을 생각해 보세요. collection의 일부는 다음과 같습니다.
{ "_id" : 0, "mainField": 247 } { "_id" : 1, "mainField": 71 } { "_id" : 2, "mainField": 981 } { "_id" : 3, "mainField": 712 } { "_id" : 4, "mainField": 781, "sparseField": 1000 } { "_id" : 5, "mainField": 256 } { "_id" : 6, "mainField": 910 }
BI Connector가 스키마를 만들 때 sparseField
가 포함되도록 하려면 발생하지 않는 모든 문서에서 sparseField
이 0으로 채워지는 뷰를 만듭니다.
db.runCommand ( { create: "denseCollection", viewOn: "sparseCollection", pipeline: [ { $addFields: { sparseField: { $ifNull: [ "$sparseField", 0 ] } } } ] } )
mongosqld
시작할 때 뷰를 데이터 소스로 사용하려면 --sampleNamespaces
옵션과 함께 지정합니다.
mongosqld --sampleNamespaces "myDatabase.denseCollection"