독립형 스키마 모드(캐시된 샘플링)
이 페이지의 내용
개요
버전 2.3에 새로 추가됨:
기본적으로 mongosqld
는 연결된 MongoDB 인스턴스에서 각 collection을 샘플링하고 스키마의 관계형 표현을 생성한 다음 메모리에 캐시합니다.
참고
authentication
를 활성화한 경우 MongoDB 사용자에게 올바른 권한이 있는지 확인합니다. 아래의 사용자 권한 을 참조하세요.
기본적으로 mongosqld
는 스키마를 생성한 후 데이터를 자동으로 리샘플링하지 않습니다. --schemaRefreshIntervalSecs
옵션을 지정하면 { mongosqld
가 자동으로 데이터를 리샘플링하고 고정된 일정에 따라 스키마를 다시 생성하도록 지시합니다.
mongosqld
가 생성하는 스키마가 BI 워크로드 요구 사항을 충족하지 않는 경우, 스키마 파일 을 수동으로 생성하고 필요에 따라 편집할 수 있습니다.
샘플링 모드에 대해 자세히 알아보려면 샘플링 모드 참고 차트를 참조하세요.
캐시된 샘플링에 대한 사용자 권한
MongoDB 인스턴스가 인증 을 사용하고 캐시된 샘플링을 사용하려는 경우 BI Connector 인스턴스도 인증을 사용해야 합니다. mongosqld
프로그램을 통해 MongoDB에 연결하는 관리자에게는 데이터를 샘플링하려는 모든 네임스페이스 에서 읽을 수 있는 권한이 있어야 합니다.
모든 네임스페이스 샘플링
모든 네임스페이스를 샘플링하려면 관리 사용자에게 다음 권한이 필요합니다.
클러스터 의
listDatabases
각 데이터베이스 의
listCollections
각 데이터베이스 의
find
또는 기본 제공 readAnyDatabase 역할이 있는 사용자를 생성합니다.
use admin db.createUser( { user: "<username>", pwd: "<password>", roles: [ { "role": "readAnyDatabase", "db": "admin" } ] } )
참고
readAnyDatabase 역할에 포함된 모든 권한을 사용자에게 부여하기 전에 확인하세요.
모든 네임스페이스를 샘플링하려면 옵션 mongosqld
없이 --sampleNamespaces
를 시작합니다.
mongosqld --auth --mongo-username <username> --mongo-password <password>
특정 네임스페이스 샘플
특정 네임스페이스를 샘플링하려면 관리 사용자에게 다음 권한이 필요합니다.
모든 컬렉션이 샘플링되는 각 데이터베이스 에 대해
listCollections
각 컬렉션 또는 모든 컬렉션이 샘플링되는 각 데이터베이스 에서
find
또는 기본 제공 readAnyDatabase 역할이 있는 사용자를 생성합니다. 이 역할을 가진 사용자를 만드는 예는 모든 네임스페이스 샘플 섹션을 참조하세요.
참고
readAnyDatabase 역할에 포함된 모든 권한을 사용자에게 부여하기 전에 확인하세요.
다음 예에서는 test
데이터베이스의 모든 컬렉션을 샘플링하는 데 필요한 최소 권한을 가진 사용자 지정 역할 을 mongo shell 에서 생성합니다.
새 사용자를 생성하고 새로 생성된 역할을 할당합니다.
db.createUser( { user: "<username>", pwd: "<password>", roles: [ "samplingReader" ] } )
참고
위 예시 의 사용자에게는 listDatabases
권한 이 없으므로mongosqld
를 실행 때
--sampleNamespaces
옵션을 사용하여 데이터를 샘플 할 데이터베이스 를 지정해야 합니다
인증을 활성화한 상태에서 mongosqld
시작
인증을 활성화한 상태에서 mongosqld
를 실행하고 --sampleNamespaces
옵션을 사용하여 test
데이터베이스의 모든 collection에서 데이터를 샘플링합니다.
mongosqld --auth --mongo-username <username> --mongo-password <password> \ --sampleNamespaces 'test.*'