설명
참고
BI용 MongoDB Connector 및 관련 유틸리티는 현재 지원되는 모든 MongoDB 서버 버전과 호환됩니다.
mongosqld SQL 클라이언트 에서 들어오는 요청을 수락하고 해당 요청을 또는 인스턴스 mongod mongos로 프록시합니다.
사용법
버전 2.3에 새로 추가됨:
옵션을 사용하여 in.drdl mongosqld --schema 형식의 스키마 파일 로 을(를) 시작하거나 MongoDB 인스턴스 에서 데이터를 샘플링하여 스키마 만들 수 있습니다.
옵션을 사용하여 데이터를 샘플 할 --sampleNamespaces 네임스페이스 스페이스를 하나 이상 지정할 수 있습니다. 네임스페이스나 스키마 파일 지정하지 않으면 는mongosqld 및 데이터베이스를 제외한 대상 MongoDB 인스턴스 의 모든 데이터베이스에서 데이터를 admin local 샘플링합니다.
옵션을 사용하여 스키마 정보를 저장 데이터베이스 지정할 수 --schemaSource 있습니다. 그렇지 않으면mongosqld 가 스키마 를 메모리에 보관합니다.
스키마 파일로 mongosqld 시작
옵션을 사용하여 --schema mongosqld 를시작할 때 스키마 파일 지정합니다.
mongosqld --schema /path/to/schema-file.drdl
mongodrdl를 사용하여 MongoDB 인스턴스에서 스키마 파일을 만듭니다.
스키마 데이터베이스로 mongosqld 시작
옵션을 사용하여 스키마 정보를 저장 데이터베이스 지정합니다.--schemaSource
mongosqld --schemaSource sampleDb
지정된 네임스페이스로 mongosqld 시작
--sampleNamespaces 옵션을 사용하여 에 대한 데이터베이스 및 컬렉션을 mongosqld 지정하여 스키마 생성할 데이터를 샘플 합니다.
mongosqld --sampleNamespaces contacts.addresses
아래의 추가 사용 예시를 참조하세요.
MongoDB 사용자 권한
MongoDB 인스턴스 인증 사용하는 경우 BI Connector 인스턴스 도 인증 사용해야 합니다. 프로그램을 통해 MongoDB 에 연결하는 mongosqld 사용자에게는 데이터를 샘플 하려는 모든 네임스페이스에서 읽을 수 있는 권한이 있어야 합니다.
BI Connector의 MongoDB 사용자 권한에 대한 자세한 내용은 캐시된 샘플링에 대한 사용자 권한을 참조하세요.
MongoDB 사용자 및 역할에 대한 자세한 내용은 역할 기반 액세스 제어를 참조하세요.
기본 최소 TLS 버전
버전 2.6에 추가 되었습니다.
모든 클라이언트 연결에 대한 기본값 최소 TLS 버전은 1.1 입니다. 여기에는 에 대한 수신 클라이언트 연결과 MongoDB 로의 발신 연결이 mongosqld 포함됩니다.
옵션을 사용하여 들어오는 연결과 옵션을 사용하여 --mongo-minimumTLSVersion --minimumTLSVersion 나가는 연결에 대해 이 설정을 조정할 수 있습니다.
명령줄 옵션
주요 옵션
--helpmongosqld의옵션 및 사용에 대한 정보를 반환합니다.
--versionmongosqld출시하다 번호를 반환합니다.
--config <path>설정 파일의 경로를 지정합니다.
--mongo-uri <uri>기본값: mongodb://localhost:27017
연결할 MongoDB 연결 문자열을 지정합니다.
--mongo-uri옵션은 연결 문자열 내에서 다음 옵션을 지원합니다.connect
이러한 URI 옵션에 대한 자세한 내용은 읽기 기본 설정 옵션 및 복제본 세트 옵션을 참조하세요.
위 목록에 포함되지 않은 Mongo URI에 설정하다 옵션의 경우 이에 상응하는
mongosqld옵션을 사용합니다.mongosqld옵션의 전체 목록은 명령줄 옵션을 참조하세요.참고
자동 복제본 세트 서버 검색 논리를 비활성화하고 지정된 서버에 대한 연결을 강제 실행하려면
connect=direct옵션을 사용합니다.mongosqld --mongo-uri "mongodb://<hostname>:<port>/?connect=direct"
--mongo-versionCompatibility <version-number>mongosqld지정된 버전의 MongoDB 지원하는 기능을 사용하도록 제한합니다. 멤버가 서로 다른 MongoDB 버전을 사용하는 복제본 세트와 함께 사용하거나 MongoDB 의 롤링 업그레이드 수행할 때만 필요합니다. MongoDB 3 버전.2 이상만 지원합니다.예시 를 들어, 복제본 세트 MongoDB 을 실행 3.2 멤버와 MongoDB 을 실행 다른 멤버가 포함되어 있는 경우,3.4 다음 옵션을 설정하다 를
mongosqld3제한하여 MongoDB 에서 지원하는 기능만 사용하도록2 제한합니다.:mongosqld --mongo-versionCompatibility 3.2
--maxVarcharLength <length>버전 2.2에 추가 되었습니다.
모든 varchar 필드의 최대 길이를 문자 단위로 지정합니다. 에서
mongosqld최대 길이보다 긴mongosqld문자열을 발견하면 최대 길이로 자르고 경고를 기록합니다.
--mongo-username <username>, -u <username>버전 2.3에 추가 되었습니다.
스키마 검색에 사용할 인증 사용자 이름 지정합니다.
--auth가 활성화된 경우에만 필요합니다. 로 지정된 사용자는--mongo-usernamelistDatabases권한 가진 유효한 MongoDB 사용자여야 합니다. mongosqld 사용자 권한을 참조하세요.
--mongo-password <password>, -p <password>버전 2.3에 추가 되었습니다.
스키마 검색에 사용할 인증 비밀번호를 지정합니다.
--auth가 활성화된 경우에만 필요합니다. 와 함께--mongo-username사용하세요.
--mongo-authenticationSource <auth-db-name>기본값: admin
버전 2.3에 추가 되었습니다.
스키마 검색 사용자에 대한
--auth자격 증명 보관하는 데이터베이스 지정합니다. 가 활성화된 경우에만 사용할 수 있습니다. 자격 증명 옵션--mongo-username및--mongo-password와 함께 사용합니다.
--mongo-authenticationMechanism <authMechanism>기본값: SCRAM-SHA-1
버전 2.3에 추가 되었습니다.
스키마 검색에 사용할 인증 메커니즘 지정합니다. 가 활성화된 경우에만 사용할
--auth수 있습니다. 자격 증명 옵션--mongo-username및--mongo-password와 함께 사용합니다.값설명SHA 해시 함수를 사용하는RFC 표준 솔티드 챌린지 응답 인증 메커니즘.5802 1
버전 2.6에 새로 추가됨 SHA 해시 함수를 사용하는RFC 표준 솔티드 챌린지 응답 인증 메커니즘.7677 2
PLAIN (LDAP SASL)
LDAP를 사용한 외부 인증.
PLAIN을 사용해 데이터베이스 내 사용자를 인증할 수도 있습니다.PLAIN은 비밀번호를 일반 텍스트로 전송합니다. 이 메커니즘은 MongoDB Enterprise에서만 사용할 수 있습니다.GSSAPI (Kerberos)
Kerberos를 사용한 외부 인증. 이 메커니즘은 MongoDB Enterprise에서만 사용할 수 있습니다.
스키마 옵션
--schemaDirectory <directoryname>버전 2.2부터 더 이상 사용되지 않습니다.
대신 를
--schema사용합니다.
--sampleNamespaces <db.collection>버전 2.5에 추가 되었습니다.
--sampleNamespaces스키마를 생성하는 데이터 샘플링 프로세스에 포함하거나 제외할 데이터베이스와 컬렉션을 지정합니다. 단일 데이터베이스 또는 여러 데이터베이스에서 여러 컬렉션을 지정할 수 있습니다. 아래 예시를 참조하세요.--sampleNamespaces옵션 또는--schema옵션을 사용하지mongosqld않는 경우,admin는 및 데이터베이스를 제외한 사용 가능한 모든 MongoDB 데이터베이스 및local컬렉션에서 데이터를 샘플링합니다.
--schemaMode <[custom|auto]>기본값:
custom버전 2.11에 추가 되었습니다.
의 샘플링 모드
mongosqld를 구성합니다. 옵션과 함께 사용해야--schemaSource합니다. 다음 값에 따라 샘플링 동작이 결정됩니다.값--schemaMode행동custommongosqld는 옵션으로 지정된 MongoDB database 에서 저장된 스키마 읽습니다.--schemaSourceautomongosqld는--schemaSource스키마 를 샘플링하고 옵션으로 지정된 MongoDB database 에 스키마 데이터를 씁니다.샘플 모드 구성에 대한 자세한 내용은 샘플링 모드 참조 차트를 참조하세요.
중요
mongosqld에서 를 활성화한 경우 인증된 사용자는 지정된authentication데이터베이스 에 대한--schemaSource쓰기 (write) 권한 있어야 합니다. 역할 에 대한 자세한 내용은 기본 제공readWrite역할을 참조하세요.
--schemaSource <db-name>버전 2.11에 추가 되었습니다.
이(가) 설정하다 될 때마다 필요합니다. 스키마 정보가 저장되는 데이터베이스
--schemaMode지정합니다.참고
--schema--schemaMode, 및--schemaSource옵션 중 하나를mongosqld지정하지 않으면 은(는 ) 스키마 를 메모리에 보관합니다.샘플링 모드에 대해 자세히 알아보려면 샘플링 모드 레퍼런스 차트를 참조하세요.
--schemaName <db-name>기본값:
defaultSchema버전 2.11에 추가 되었습니다.
선택 사항. 데이터베이스 에서 로드하거나 데이터베이스에 쓰기 (write) 스키마
--schemaSource의 이름입니다. 스키마 이름을 지정하면 데이터베이스 에 여러 스키마를 저장 수 있습니다. 동작은 값에 따라--schemaSource달라집니다.--schemaMode--schemaName행동custom옵션으로 지정된 데이터베이스
--schemaSource에서 로드할 스키마 의 이름입니다.autoBI Connector 스타트업 시 스키마 를 샘플링한 후 데이터베이스 에 쓰기 (write) 스키마
--schemaSource의 이름입니다.중요
사용자 지정 스키마 업로드하는 경우 를 사용하여 지정된 이름으로 저장 다음 를
name-schema사용하여 에mongosqld이--schemaName이름을 지정해야 합니다. 스키마를 업로드할 때 스키마 이름을 저장 하지 않으면 스키마 이름은defaultSchema기본적으로(으)로 설정됩니다. 스키마 이름이 존재하지mongosqld않으면 다음과 유사한 오류가 발생합니다: MongoDB 스키마 아직 사용할 수 없습니다. 스키마 초기화 오류: 이름에 대한 스키마 찾을 수 없습니다.샘플링 모드에 대해 자세히 알아보려면 샘플링 모드 레퍼런스 차트를 참조하세요.
--sampleSize <number>기본값: 1000
버전 2.3에 추가 되었습니다.
스키마 정보를 수집할 때 샘플링할 네임스페이스당 문서 수입니다.
--sampleSize0스키마 를 빌드할 때 지정된 네임스페이스 의 모든 문서를 포함하려면 를 로 설정합니다.--sampleSize0네임스페이스 지정하지 않고mongosqld를 로 설정하면 스키마 를 작성할 때local가 모든 데이터베이스의 모든 문서(,,adminsystem제외)를 고려합니다. 아래 예시 참조하세요.
--schemaRefreshIntervalSecs <number>기본값: 0
2.11 버전에서 변경됨:
--sampleRefreshIntervalSecs의 이름을--schemaRefreshIntervalSecs(으)로 바꿅mongosqld가 스키마 생성하기 위해 데이터를0다시 샘플링하는 간격(초)입니다. 기본값 은 이며, 이는 초기 샘플링 후에 자동 재샘플링이 발생하지 않음을 의미합니다. 지정된 값은 양의 정수여야 합니다.스키마에 대한 일회성 업데이트를 강제 실행하려면 SQL 클라이언트에서 FLUSH SAMPLE 명령을 사용합니다.
--uuidSubtype3Encoding <old|csharp|java>, -b <old|csharp|java>UUID 바이너리 하위 유형3을 생성하기 위한 인코딩을 지정합니다. 다음 값 중에서 선택합니다.
old: 이전 BSON 바이너리 하위 유형 표현csharp: C#/.NET 레거시 UUID 표현java: Java 레거시 UUID 표현
--prejoin버전 2.6에 추가 되었습니다.
배열 및 비배열 데이터를 단일 테이블로 결합하기 위한 스키마 옵션입니다.
배열이 포함된 MongoDB 문서는 일반적으로 배열 데이터용 테이블과 비배열 데이터용 테이블로 분리하여 테이블 형식으로 변환합니다. 다음 문서와 함께 이름이
test인 MongoDB 컬렉션을 예시로 들어 보겠습니다{ "_id" : 1, "a" : 3, "b" : [ "orange", "apple", "pear" ] } 위 컬렉션은 테이블 형식의 다음 두 테이블로 변환됩니다.
mysql> select * from test; +------+------+ | _id | a | +------+------+ | 1 | 3 | +------+------+ mysql> select * from test_b; +------+--------+-------+ | _id | b | b_idx | +------+--------+-------+ | 1 | orange | 0 | | 1 | apple | 1 | | 1 | pear | 2 | +------+--------+-------+ 플래그는 열의
--prejoin데이터가a테이블에 포함되도록test_b합니다.mysql> select * from test_b; +------+------+--------+-------+ | _id | a | b | b_idx | +------+------+--------+-------+ | 1 | 3 | orange | 0 | | 1 | 3 | apple | 1 | | 1 | 3 | pear | 2 | +------+------+--------+-------+
로그 옵션
--logAppend--logPath로지정된 기존 로그 파일 에 새 로깅 출력을 추가합니다.--logRotate이(가) 필요합니다.
--logRotate reopen | rename기본값: 이름 바꾸기
로그를 순환할지 여부와 로그를 순환하는 방법을 지정합니다.
이 옵션을 설정하면 BI용 MongoDB Connector에
FLUSH LOGS명령을 실행하거나mongosqld를 다시 시작할 때 로그가 회전합니다.- 를 로 설정하다
--logRotate경우:rename - 기존 로그 파일 닫힙니다.RFC3339형식의 타임스탬프가 닫힌 로그 파일 에 추가됩니다. 새 로그 파일 생성됩니다.
- 를 로 설정하다
--logRotate경우:reopen - 기존 로그 파일이 닫혔다가 다시 열립니다.
참고
UNIX 및 macOS 플랫폼에서는
SIGUSR1신호를 실행하여mongosqld프로세스를 다시 시작하고 로그를 순환시킵니다.- 를 로 설정하다
--usageLogInterval <number>기본값: 60
버전 2.14에 추가 되었습니다.
사용량 통계가 로그에 기록되는 간격(초)입니다. 사용량 로깅을 비활성화하려면
0으로 설정합니다.참고
Windows에서는 사용량 로깅이 활성화되어 있지 않습니다.
--verbose, -vmongosqld가 더 자세한 로그 출력을 제공하도록 지정합니다.다음 표에는 각 로그 수준에서 제공되는 정보가 설명되어 있습니다.
MongoDB TLS/SSL 옵션
중요
자체 인증 기관(Certificate Authority, CA)을 사용하여 서버 및 클라이언트 인증서를 자체 서명하는 경우,--mongo-sslAllowInvalidHostnames 인증 올바르게 작동하도록 하려면 옵션을 포함해야 합니다.
--mongo-sslDefault(기본값): False
mongosqldMongoDB 인스턴스 에 연결할 때 TLS/SSL을 사용하도록 에 지시합니다.
--mongo-sslPEMKeyFile <filename>MongoDB 에 연결할 때 사용할
mongosqld의.pemTLS/SSL 인증서와 키가 모두 포함된 파일 지정합니다..pem상대 경로 또는 절대 경로 파일 파일 이름을 지정할 수 있습니다.이 옵션은
--mongo-ssl옵션을 사용하여allowConnectionsWithoutCertificates없이CAFile가 활성화된mongod또는mongos에 연결할 때 필요합니다.
--mongo-sslAllowInvalidHostnames가 TLS/SSL 인증서의 호스트 이름과 다른 호스트 이름을 가진 MongoDB 서버 에 연결할 수
mongosqld있도록 허용합니다.
--mongo-sslAllowInvalidCertificatesMongoDB 인스턴스 유효하지 않은 서버 SSL/TLS 인증서를 제시하도록 허용합니다. 설정을 사용하는
allowInvalidCertificates경우 MongoDB 잘못된 인증서 사용을 경고로 기록합니다.
--mongo-sslCAFile <filename>인증 기관의 루트 인증서 체인을 포함하는 MongoDB 인스턴스의
.pem파일을 지정합니다. 상대 경로 또는 절대 경로를 사용해.pem파일의 이름을 지정합니다.경고
BI Connector 버전 2.14.30 이하:
mongod및mongos에 대한 SSL 연결(--mongo-ssl)의 경우mongosqld가--mongo-sslCAFile없이 실행되면mongosqld는 서버 인증서의 유효성 검사를 시도하지 않습니다. 이로 인해 만료된mongod및mongos인증서는 물론 유효한mongod또는mongos인스턴스로 가장하는 외부 프로세스에 대한 취약성이 발생합니다. 침입 가능성이 있는 경우 서버 인증서의 유효성을 검사하기 위해 항상 CA 파일 지정해야 합니다.BI Connector 버전 2.14.31 부터
--mongo-ssl플래그가 제공되는 경우 다음 옵션 중 하나 이상도 지정해야 합니다.
클라이언트 TLS/SSL 옵션
--sslMode <mode>기본값: 사용 안 함
버전 2.3에 추가 되었습니다.
mongosqld에 대한 연결을 위해TLS/SSL을 활성화하거나 비활성화합니다.
sslMode옵션의 인수는 다음 중 하나일 수 있습니다:
--sslPEMKeyFile <filename>TLS/SSL 인증서와 MySQL 클라이언트용 키를 모두 포함하는
.pem파일을 지정합니다. 상대 경로 또는 절대 경로를 사용해.pem파일의 이름을 지정합니다.
--sslPEMKeyPassword <password>--sslPEMKeyFile에서지정한 비공개 키를 해독하는 데 사용되는 비밀번호를 지정합니다.
--sslAllowInvalidHostnamesSQL 클라이언트가 호스트
mongosqld이름이 TLS/SSL 인증서의 호스트 이름과 다른 에 연결할 수 있도록 허용합니다.
--sslCAFile <filename>mongosqld.pem인증 기관의 루트 인증서 체인이 포함된 파일 지정합니다..pem상대 경로 또는 절대 경로 파일 파일 이름을 지정합니다.
--sslCRLFile <filename>인증서
mongosqld.pem해지 목록이 포함된 파일 지정합니다.
--auth수신 클라이언트 요청에 대한 인증이 필요합니다.
중요
버전 2.4.0에서 변경되었습니다.
인증 활성화된 경우 구성 파일 의
--mongo-username및--mongo-password옵션 또는mongodb.net.auth.username및mongodb.net.auth.password설정과 함께 관리자 자격 증명 제공해야 합니다.mongosqld관리자 자격 증명을 통해 샘플링된 네임스페이스에 관한 메타데이터를 수집하고, 연결 클라이언트의 자격 증명을 사용하여 데이터를 클라이언트가 읽을 권한이 있는 범위로 제한합니다. 관리 사용자에게 필요한 권한에 대한 자세한 내용은 캐시된 샘플링에 대한 사용자 권한에서 확인합니다.
--defaultAuthSource <authSource>기본값: admin
기본값 MongoDB 인증 소스를 지정합니다. 이 값을 설정하여
mongosqldMongoDB database 로 인증할 때 사용하는 기본값 소스를 지정합니다.GSSAPI및 인증PLAIN메커니즘은$external소스를SCRAM-SHA-1SCRAM-SHA-256사용하고 및 인증 메커니즘은 MongoDB database 소스로 사용합니다.이 옵션에 값을 지정하지 않으면 기본적으로 MongoDB
admin데이터베이스가 사용됩니다.$external인증 소스는 시스템 사용자에 대한 레퍼런스를 MongoDB$external데이터베이스에 저장하지만 자격 증명은 LDAP 서버와 같은 외부의 비MongoDB 시스템에 저장됩니다.기본값을 사용하는 모든 연결은 MySQL 또는 Tableau 사용자 이름에서
source매개 변수를 생략할 수 있습니다.
--defaultAuthMechanism <authMechanism>기본값: SCRAM-SHA-1
기본값 인증 메커니즘 지정합니다. 이 값을 설정하여
mongosqld에 연결하기 위한 기본값 메커니즘을 지정합니다. 이 지정된 기본값 을 사용하는 모든 연결은mechanismMySQL 또는 Tableau 사용자 이름 에서 값을 생략할 수 있습니다.값설명SHA 해시 함수를 사용하는RFC 표준 솔티드 챌린지 응답 인증 메커니즘.5802 1
버전 2.6에 새로 추가됨 SHA 해시 함수를 사용하는RFC 표준 솔티드 챌린지 응답 인증 메커니즘.7677 2
PLAIN (LDAP SASL)
LDAP를 사용한 외부 인증.
PLAIN을 사용해 데이터베이스 내 사용자를 인증할 수도 있습니다.PLAIN은 비밀번호를 일반 텍스트로 전송합니다. 이 메커니즘은 MongoDB Enterprise에서만 사용할 수 있습니다.GSSAPI (Kerberos)
Kerberos를 사용한 외부 인증. 이 메커니즘은 MongoDB Enterprise에서만 사용할 수 있습니다.
--minimumTLSVersion <TLS1_0|TLS1_1|TLS1_2>기본값: TLS1_1
클라이언트가 에 연결하는 데 필요한 최소 TLS 버전을
mongosqld지정합니다. 기본값TLS1_11은 TLS 버전 에1 해당합니다..
서비스 옵션
--serviceName <service-name>를 실행하는 시스템 서비스의
mongosqld이름입니다.
--serviceDisplayName <service-name>를 실행하는 시스템 서비스의 이름을
mongosqld표시합니다.
--serviceDescription <service-name>를 실행하는 시스템 서비스에
mongosqld대한 설명입니다.
Kerberos Options
--gssapiHostname <hostname>버전 2.5에 추가 되었습니다.
Kerberos 인증을 구성하기 위한 목적의 FQDN입니다. Kerberos 호스트 이름은 Kerberos 구성에 대해서만 호스트 이름을 재정의합니다.
--gssapiServiceName <service-name>기본값: mongosql
버전 2.5에 추가 되었습니다.
Kerberos를 사용하는 서비스의 등록 이름입니다. 이 옵션을 사용하면 인스턴스별로 Kerberos SPN의 기본 Kerberos 서비스 이름 구성 요소를 재정의할 수 있습니다. 지정하지 않으면 기본값이 사용됩니다.
--mongo-gssapiServiceName <service-name>기본값: mongodb
버전 2.5에 추가 되었습니다.
Kerberized MongoDB 인스턴스에 연결할 때 Kerberos SPN을 설정합니다. 이 값은 MongoDB 인스턴스에 설정된 서비스 이름과 일치해야 합니다.
--gssapiConstrainedDelegationDefault(기본값): False
버전 2.11에 추가 되었습니다.
Kerberos 권한 부여 에 프록시 자격 증명 사용하여 제한된 위임을 활성화합니다. 클라이언트
mongosqld키탭과 서비스 키탭에 서비스 자격 증명 있어야 합니다. Kerberos 구성에 대한 자세한 내용은 BI Connector 용 Kerberos 구성을 참조하세요.
소켓 옵션
--unixSocketPrefix <path>기본값/tmp
Unix 도메인 소켓의
mongosqld대체 디렉토리 지정합니다.는 이 경로 아래에
mongosqld라는 소켓 파일mysql.sock--unixSocketPrefix생성합니다. 를 지정하지 않으면 소켓은 에/tmp/mysql.sock존재합니다.
매개변수 옵션 설정
--setParameter <parameter>- Parameter유형해당하는 항목:
"polymorphic_type_conversion_mode=<value>"문자열
mongosqld가 여러 데이터 유형으로 지정된 문서 필드를 평가하는 방법을 결정합니다. 허용되는off값은,fast및safe입니다. 이러한 값에 대해 자세히 학습 시스템 변수를 참조하세요."type_conversion_mode=<value>"문자열
mongosqld데이터 유형을 변환하는 데 사용하는 모드 지정합니다. BI Connectormongosql기본값 으로 자체 모드 ()를 사용합니다. 허용되는 값은mongosql및mysql입니다. 이러한 값에 대해 자세히 학습 시스템 변수를 참조하세요.다음 예시
mongosqld을(를)--setParameter시작하고 옵션을 사용하여 유형 변환 모드 지정합니다.mongosqld --setParameter "type_conversion_mode=mongosql"
구성 파일
YAML 구성 파일 mongosqld 사용하여 를 구성할 수 있습니다. 이 파일 다음 섹션에 나열된 설정이 포함될 수 있습니다.
참고
구성 파일의 확장 지시문을 사용하여 외부에서 제공되는 구성 값을 로드할 수 있습니다. 확장 지시문은 보안 인증서와 비밀번호같은 기밀 정보를 가립니다.
확장 지시문 사용에 대한 자세한 내용은 MongoDB 매뉴얼의 외부 소스 설정 파일 값 을 참조하세요.
로깅 옵션
systemLog: logAppend: <boolean> logRotate: "rename"|"reopen" path: <string> quiet: <boolean> verbosity: <integer>
이름 | 유형 | 해당하는 항목: |
|---|---|---|
부울 | ||
문자열 | ||
문자열 | ||
부울 | ||
integer |
스키마 옵션
schema: path: <string> maxVarcharLength: <integer>
이름 | 유형 | 해당하는 항목: |
|---|---|---|
문자열 | ||
integer |
데이터 샘플링 옵션
schema: sample: size: <integer> prejoin: <boolean> namespaces: <array of strings> uuidSubtype3Encoding: <[old|csharp|java]> stored: mode: <[custom|auto]> source: <string> name: <db-name> refreshIntervalSecs: <integer>
이름 | 유형 | 해당하는 항목: |
|---|---|---|
문자열 | ||
문자열 | ||
문자열 | ||
integer | ||
부울 | ||
문자열 또는 문자열 배열 | ||
integer | ||
문자열 |
런타임 옵션
runtime: memory: maxPerStage: <integer> maxPerServer: <integer> maxPerConnection: <integer>
중요
BI Connector 프로세스 MongoDB 에 쿼리를 보내는 데 사용할 수 있는 시스템 메모리 양을 제어하기 위해 다음과 같은 옵션을 mongosqld 제공합니다. 이러한 제한에는 BI Connector 데이터 구조 오버헤드 등 다른 목적으로 사용하는 메모리가 포함되지 않으므로 BI Connector 사용하는 총 메모리 양은 이러한 옵션에서 제한 설정하다 것보다 많아집니다.
runtime.memory.maxPerServer유형: integer
Default: unlimited
버전 2.5에 추가 되었습니다.
프로세스 사용할
mongosqld수 있는 최대 메모리 양을 바이트 단위로 지정합니다.
runtime.memory.maxPerConnection유형: integer
Default: unlimited
버전 2.5에 추가 되었습니다.
클라이언트 연결에서 사용할
mongosqld수 있는 최대 메모리 양을 바이트 단위로 지정합니다.
네트워크 옵션
net: bindIp: <string> port: <integer> unixDomainSocket: enabled: <boolean> pathPrefix: <string> filePermissions: <string> ssl: mode: <string> allowInvalidCertificates: <boolean> PEMKeyFile: <string> PEMKeyPassword: <string> CAFile: <string>
이름 | 유형 | 해당하는 항목: | |
|---|---|---|---|
문자열 | 호스트 이름 구성 요소 버전 에서 변경된 2.2 사항: 여러 IP 주소를 바인딩하려면 쉼표로 구분된 값 목록을 입력합니다. 예를 들면 다음과 같습니다. | ||
integer | 포트 구성 요소 | ||
부울 | 역방향 | ||
문자열 | |||
문자열 | |||
부울 | |||
문자열 | |||
문자열 | |||
문자열 | |||
문자열 | |||
문자열 |
보안 옵션
security: enabled: <boolean> defaultMechanism: <string> defaultSource: <string> gssapi: hostname: <string> serviceName: <string>
이름 | 유형 | 해당하는 항목: |
|---|---|---|
부울 | ||
문자열 | ||
문자열 | ||
문자열 | ||
문자열 | ||
문자열 |
MongoDB 호스트 옵션
mongodb: versionCompatibility: <string> net: uri: <string> ssl: enabled: <boolean> allowInvalidCertificates: <boolean> allowInvalidHostnames: <boolean> PEMKeyFile: <string> PEMKeyPassword: <string> CAFile: <string> CRLFile: <string> FIPSMode: <boolean> auth: username: <username> password: <password> source: <auth-db-name> mechanism: <auth-mechanism> gssapiServiceName: <service>
이름 | 유형 | 해당하는 항목: |
|---|---|---|
문자열 | ||
문자열 | ||
부울 | ||
부울 | ||
부울 | ||
문자열 | ||
문자열 | ||
문자열 | ||
문자열 | ||
부울 | ||
문자열 | ||
문자열 | ||
문자열 | ||
문자열 | ||
문자열 | ||
문자열 |
프로세스 관리 옵션
processManagement: service: name: <string> displayName: <string> description: <string>
이름 | 유형 | 해당하는 항목: |
|---|---|---|
문자열 | ||
문자열 | ||
문자열 |
매개변수 옵션 설정
setParameter: polymorphic_type_conversion_mode: <string> type_conversion_mode: <string>
이름 | 유형 | 해당하는 항목: |
|---|---|---|
문자열 |
| |
문자열 |
|
이러한 구성 파일 옵션은 시스템 변수로도 사용할 수 있습니다. 자세한 내용은 시스템 변수를 참조하세요.
외부 구성 값 로드
구성 파일의 확장 지시문을 사용하여 외부에서 제공되는 구성 값을 로드할 수 있습니다. 확장 지시문은 보안 인증서와 비밀번호같은 기밀 정보를 가립니다.
확장 지시문 사용에 대한 자세한 내용은 MongoDB 매뉴얼의 외부 소스 설정 파일 값 을 참조하세요.
구성 파일 예시
참고
이 예시 구성 파일에 사용된 경로는 Linux 전용입니다. 로컬 시스템 설명서를 참조하여 시스템에 맞는 올바른 경로를 확인합니다.
systemLog: logAppend: false path: "/var/log/mongosqld/mongosqld.log" verbosity: 2 security: enabled: true mongodb: net: uri: "mongo.example.com:27017" auth: username: "root" password: "changeme" net: bindIp: 192.0.2.14 port: 3307 ssl: mode: "allowSSL" PEMKeyFile: "/vagrant/certificates/mongosqld-server.pem" CAFile: "/vagrant/certificates/ca.crt" schema: sample: namespaces: "inventory.*" processManagement: service: name: mongosqld displayName: mongosqld description: "BI Connector SQL proxy server"
사용 예시
mongosqld 스키마 파일
--schema 옵션을 사용하여 가 사용할 스키마 파일 mongosqld 지정합니다.
mongosqld --schema /path/to/schema-file.drdl
샘플 컬렉션 지정
옵션을 사용하여 데이터를 샘플 --sampleNamespaces 할 의 데이터베이스 및 컬렉션 지정합니다.mongosqld 옵션 없이 를 mongosqld --sampleNamespaces 시작하면 및 데이터베이스를 제외한 사용 가능한 모든 데이터베이스에서 데이터를 admin local 샘플링합니다.
다음 예시에서는 contacts 데이터베이스에 있는 addresses 컬렉션의 데이터를 샘플링합니다.
mongosqld --sampleNamespaces contacts.addresses
샘플로 사용할 여러 컬렉션 지정
데이터베이스 의 모든 컬렉션에서 데이터를 샘플 하려면 옵션을 --sampleNamespaces * 와일드카드()와 함께 사용합니다.
다음 예시에서는 inventory 데이터베이스의 모든 컬렉션에서 데이터를 샘플링합니다.
mongosqld --sampleNamespaces 'inventory.*'
명령줄 에서 를 반복하여 --sampleNamespaces 데이터베이스 내의 여러 컬렉션 또는 여러 데이터베이스의 여러 컬렉션에서 데이터를 샘플 할 수 있습니다.
다음 예시에서는 cars 및 boats 데이터베이스의 모든 컬렉션에서 데이터를 샘플링합니다.
mongosqld --sampleNamespaces 'cars.*' \ --sampleNamespaces 'boats.*' \
와일드카드 및 특정 컬렉션을 여러 옵션으로 --sampleNamespaces 혼합할 수 있습니다.
다음 예시에서는 orders 데이터베이스 내 모든 컬렉션, expenses 데이터베이스의 FY2015 및 FY2016 컬렉션 내 모든 데이터를 샘플링합니다.
mongosqld --sampleNamespaces 'orders.*' \ --sampleNamespaces expenses.FY2015 \ --sampleNamespaces expenses.FY2016 \
참고
와일드카드를 사용할 때는 네임스페이스를 작은따옴표로 묶기만 하면 됩니다.
데이터베이스 및 컬렉션을 샘플링에서 제외하기
데이터 샘플링 프로세스에서 지정된 네임스페이스를 제외하려면 네임스페이스 앞에 ~(물결표) 기호를 붙입니다. 다음 예시에는 fruit 데이터베이스의 apples 컬렉션을 제외한 모든 데이터베이스와 컬렉션이 포함됩니다.
mongosqld --sampleNamespaces ~fruit.apples
* 와일드카드 문자를 사용하여 데이터베이스에 있는 모든 컬렉션을 표시합니다. 다음 예시에서는 데이터 샘플링에서 전체 vehicles 데이터베이스를 제외합니다.
mongosqld --sampleNamespaces '~vehicles.*'
컬렉션의 모든 문서 샘플
일부 문서가 다른 문서와 다른 필드를 가진 컬렉션 --sampleSize 있고 스키마 0 이를 모두 고려하도록 하려면 옵션을 namespace 로 설정하다 . 이렇게 하면 mongosqld 가 스키마 빌드할 때 지정된 에 있는 모든 문서를 검사합니다.
다음 mongosqld 예시 inventory.electronics 가 네임스페이스 의 모든 문서를 기반으로 스키마 빌드 하도록 지시합니다.
mongosqld --sampleNamespaces inventory.electronics \ --sampleSize 0
스키마를 유지할 데이터베이스 지정
--schemaSource 옵션을 사용하여 스키마 정보를 저장 데이터베이스 --schemaMode 지정합니다. 옵션을 사용하여 mongosqld 가 스키마 데이터베이스 에 쓰기 (write) 수 있는지 아니면 읽기만 할 수 있는지 여부를 지정합니다.
다음 예시 명령은 데이터베이스 사용하여 sampleDb 스키마 정보를 저장 --schemaMode auto하고 를 로 설정합니다.
mongosqld --schemaSource sampleDb --schemaMode auto
중요
mongosqld에서 를 활성화한 경우 인증된 사용자는 지정된 authentication 데이터베이스 에 대한 --schemaSource 쓰기 (write) 권한 있어야 합니다. 역할 에 대한 자세한 내용은 기본 제공 readWrite 역할을 참조하세요.
데이터 리샘플링 간격 지정
옵션을 사용하여 --schemaRefreshIntervalSecs 의 간격을 초 단위로 mongosqld 지정하여 데이터를 리샘플링하고 스키마 를 다시 생성합니다. 이 옵션의 기본값 은 0 이며, 이는 mongosqld 이(가) 데이터를 리샘플링하지 않음을 의미합니다.
로 --schemaRefreshIntervalSecs --schemaSource --schemaMode 리샘플링 간격을 설정하다 custom 하고 로 스키마 데이터베이스 지정하는 경우 를 로 설정하다 수 없습니다.
다음 예시 스키마 데이터베이스 나 스키마 파일 지정하지 않으므로 해당 스키마 메모리에 보관합니다.--schemaRefreshIntervalSecs 를 3600 사용하여 데이터 리샘플링 간격을 초로 지정합니다.
mongosqld --schemaRefreshIntervalSecs 3600
mongosqld 인증이 활성화된 상태
인증 활성화된 상태에서 실행 MongoDB --auth mongosqld 인스턴스 에 를 연결하려면 옵션을 사용하고 MongoDB 사용자 자격 증명 제공합니다.
다음 예시 mongosqld 비밀번호가 reportsUser reportsPass인 사용자의 자격 reports.inventory 증명으로 네임스페이스 에 액세스 할 수 있는 자격 증명 으로 를 시작합니다.
mongosqld --auth \ --mongo-username reportsUser \ --mongo-password reportsPass \ --sampleNamespaces reports.inventory
이 예시 옵션으로 인증 데이터베이스 지정하지 않으므로 --mongo-authenticationSource 기본값은 admin 입니다. 옵션으로 인증 메커니즘 을 지정하지 --mongo-authenticationMechanism 않으므로 기본값은 SCRAM-SHA-1 입니다.
mongosqld 구성 파일로
로그를 /var/log/mongosqld.log에 저장하고 /var/schema.drdl에서 스키마를 로드하는 구성 파일을 지정하려면 다음과 같은 파일을 /etc/mongosqld.conf에 저장하면 됩니다.
경고
구성 파일에서는 반드시 절대 경로를 지정해야 합니다. 예를 들어 아래와 같이 /로 시작해야 합니다.
systemLog: path: /var/log/mongosqld.log schema: path: /var/schema.drdl
그런 mongosqld --config 다음 옵션으로 를 시작할 수 있습니다.
mongosqld --config /etc/mongosqld.conf
시스템 서비스로 mongosqld를 시작하는 방법에 대한 자세한 내용은 운영 체제의 설치 가이드를 참조하세요.
Atlas와 함께 사용
Atlas는 MongoDB 배포서버를 실행, 모니터링, 유지 관리하기 위한 클라우드 서비스로서 MongoDB 인스턴스 전용 서버의 프로비저닝이 포함됩니다.
Atlas는 TLS/SSL을 사용하여 연결을 암호화하고 인증을 기본적으로 시행합니다.
참고
MongoDB Atlas 프리 티어에서는 BI Connector가 allowDiskUse 옵션을 사용하여 집계 파이프라인을 실행할 수 없습니다. 이 옵션을 사용하면 집계 단계에서 데이터를 임시 파일로 디스크에 쓸 수 있습니다. MongoDB Atlas 프리 티어 제약 조건을 검토하려면 MongoDB Atlas 매뉴얼을 참조하세요.
mongosqld 인증 기관에서 발급한 유효한 TLS 인증서 또는 자체 서명된 인증서를 사용할 수 있습니다. 자체 서명된 인증서를 사용하는 경우 통신 채널이 암호화되더라도 서버 ID에 대한 유효성 검사는 이루어지지 않습니다. 이러한 상황은 연결 도청을 방지할 수 있지만 중간자 공격에 취약해질 수 있습니다. 신뢰할 수 있는 인증 기관에서 서명한 인증서를 사용하면 MySQL 클라이언트가 서버의 ID를 확인하도록 허용할 수 있습니다.
테스트 목적으로 openssl 도구를 사용하여 이름이 test.pem인 .pem 키 파일을 생성할 수 있습니다.
openssl req -nodes -newkey rsa:2048 -keyout test.key -out test.crt -x509 -days 365 -subj "/C=US/ST=test/L=test/O=test Security/OU=IT Department/CN=test.com" cat test.crt test.key > test.pem
다음 옵션을 사용하여 mongosqld 를 시작합니다.
이전 예시에서와 같이 키 파일의 이름을 test.pem으로 지정한 경우, 클러스터 URI 및 로그인 자격 증명을 대체하여 다음을 실행할 수 있습니다.
mongosqld --mongo-ssl \ --auth \ --sslPEMKeyFile test.pem \ --mongo-uri <uri> \ --sslMode allowSSL \ --mongo-username <username> \ --mongo-password <password>
사용자 이름, 비밀번호, 인증 데이터베이스 SQL 클라이언트 에 전달합니다. 예시 를 mysql 들어 서버 mongosqld 인증서를 확인하지 않고 를 사용하는 경우입니다.
mysql --host <mongosqld-host> --port <mongosqld-port> -u <username>?source=admin -p --ssl-mode required --enable-cleartext-plugin
BI 커넥터에서 mysql 클라이언트를 사용하는 방법에 대한 자세한 내용은 MySQL 클라이언트에서 연결을 참조하세요.
샘플링 모드 레퍼런스 차트
아래 차트 에서는 mongosqld 스타트업 구성의 유형과 각 유형에 사용되는 옵션에 대해 설명합니다.
모드 | mongosqld 옵션 | 행동 | |||
|---|---|---|---|---|---|
독립형 스키마 |
|
예를 들면 다음과 같습니다. 자세한 내용은 독립형 스키마 모드(캐시된 샘플링)을 참조하세요. | |||
사용자 지정 스키마 |
| 로 지정된 데이터베이스 에서 스키마 데이터를 예를 들면 다음과 같습니다. | |||
Auto Schema |
| 사용자 지정 스키마 데이터베이스에서 스키마 데이터를 샘플링하고 유지합니다. 예를 들면 다음과 같습니다. 자세한 내용은 자동 스키마 모드 (MongoDB에서 스키마 유지)를 참조하세요. |
잘못된 구성
다음 옵션 구성은 유효하지 않으며 스타트업 시 오류를 mongosqld 발생시킵니다.
모드 | mongosqld 옵션 | 행동 |
|---|---|---|
독립형 작성기(유효하지 않음) |
| 모드 에서는 쓰기 가능한 데이터베이스 지정되어야 하므로 이 |
클러스터 샘플링 해석기(유효하지 않음) |
| MongoDB 복제본 세트 또는 샤딩된 클러스터 에서 사용하는 경우 이 구성은 유효하지 않습니다. 을(를) 사용하여 스키마 데이터를 저장하도록 데이터베이스 지정한 경우 을(를)(으)로 설정하다 해야 |