mongosqld
項目一覧
- 説明
- 使用法
- スキーマ ファイルによる
mongosqld
の開始 - スキーマ データベースによる
mongosqld
の開始 - 指定された名前空間での
mongosqld
の開始 - MongoDB ユーザー権限
- 最小限必要な TLS バージョン(デフォルト)
- コマンドライン オプション
- 中心的オプション
- スキーマ オプション
- ログ オプション
- MongoDB TLS/SSL オプション
- クライアント TLS/SSL オプション
- サービス オプション
- Kerberos Options
- ソケット オプション
- 所定のパラメーター オプション
- 構成ファイル
- ログ作成オプション
- スキーマ オプション
- データ サンプリング オプション
- ランタイム オプション
- ネットワーク オプション
- セキュリティ オプション
- MongoDB ホスト オプション
- プロセス管理オプション
- 所定のパラメーター オプション
- 外部設定値のロード
- 構成ファイルの例
- 使用例
mongosqld
スキーマ ファイルによる- サンプリングする単一コレクションの指定
- サンプリングする複数のコレクションの指定
- サンプリングからのデータベースとコレクションの除外
- コレクション内のすべてのドキュメントのサンプリング
- スキーマを保持するデータベースの指定
- データの再サンプリング間隔の指定
mongosqld
で認証が有効な場合mongosqld
と構成ファイルの併用- Atlas との併用
- サンプリング モード参照チャート
- 無効な構成
説明
注意
MongoDB Connector for BI と関連するユーティリティは、現在サポートされているすべての MongoDB サーバー バージョンと互換性があります。
mongosqld
は SQL クライアントからの受信リクエストを受け入れ、それらのリクエストを mongod
または mongos
インスタンスにプロキシします。
使用法
バージョン 2.3 の新機能:
mongosqld
を開始するには、--schema
オプションを使用して .drdl 形式のスキーマ ファイルを使用するか、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 インスタンスも認証を使用する必要があります。ユーザーが mongosqld
プログラムを介して MongoDB に接続する場合、データのサンプリング元になるすべての名前空間からの読み取り権限が必要です。
BI Connector での MongoDB ユーザー権限の詳細については、「キャッシュされたサンプリングのユーザー権限」を参照してください。
MongoDB ユーザーとロールの詳細については、「ロールベースのアクセス制御」を参照してください。
最小限必要な TLS バージョン(デフォルト)
バージョン 2.6 の新機能.
デフォルトですべてのクライアント接続に最小限必要な TLS バージョンは 1.1 です。これには、mongosqld
への受信クライアント接続と MongoDB への送信接続が含まれます。
この設定は、受信接続には --minimumTLSVersion
オプションを、送信接続には --mongo-minimumTLSVersion
オプションを使用して調整できます。
コマンドライン オプション
中心的オプション
--help
mongosqld
のオプションと使用に関する情報を返します。
--version
mongosqld
のリリース番号を返します。
--config <path>
構成ファイルへのパスを指定します。
--mongo-uri <uri>
デフォルト: mongodb://localhost:27017
接続する MongoDB 接続文字列を指定します。
--mongo-uri
オプションは、 接続string内で次のオプションをサポートしています。これらの URI オプションの詳細については、「読み込み設定(read preference)オプション」および「レプリカセット オプション」を参照してください。
上記リストに掲載されていない Mongo URI で設定されているオプションには、同等の
mongosqld
オプションを使用します。mongosqld
オプションの完全なリストは、「コマンドライン オプション」を参照してください。注意
自動レプリカセット サーバーの検出ロジックを無効にして、指定サーバーへの接続を強制するには、
connect=direct
オプションを使用します。mongosqld --mongo-uri "mongodb://<hostname>:<port>/?connect=direct" 上記リストとサポートされている
mongosqld
オプションのリストのいずれにも含まれていない URI オプションはサポートされていません。
--mongo-versionCompatibility <version-number>
MongoDB の特定バージョンがサポートする機能を使用するように
mongosqld
を制限します。ノードが別の MongoDB バージョンを使用するレプリカセットと併用される場合、または MongoDB の順次アップグレードを実施中の場合にのみ必要です。MongoDB バージョン3.2以降のみをサポートします。たとえば、MongoDB 3.2 を実行しているノードと MongoDB 3.4 を実行している他のノードがレプリカセットに含まれる場合は、次のオプションを設定して、
mongosqld
が MongoDB 3.2 でサポートされている機能のみを使用するように制限します。mongosqld --mongo-versionCompatibility 3.2
--maxVarcharLength <length>
バージョン 2.2 の新機能.
すべての varchar フィールドに最大長(文字数)を指定します。
mongosqld
で最大長よりも長い文字列が発生した場合、mongosqld
はその文字列を最大長まで短縮して、警告ログを記録します。
--mongo-username <username>, -u <username>
バージョン 2.3 の新機能.
スキーマ検出に使用する認証ユーザー名を指定します。
--auth
が有効な場合にのみ必要です。--mongo-username
で指定されたユーザーは、listDatabases
特権を持つ有効な 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
を使用します。値説明RFC5802 SHA1 ハッシュ関数を使用する標準の Salted Challenge Response Authentication Mechanism。バージョン 2.6 の新機能: RFC7677 SHA ハッシュ関数を使用する標準の Salted Challenge Response Authentication Mechanismです。2PLAIN(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
は、使用可能なすべての MongoDB データベースとコレクション(admin
とlocal
データベースを除く)からのデータをサンプリングします。
--schemaMode <[custom|auto]>
デフォルト:
custom
バージョン 2.11 の新機能。
mongosqld
のサンプリング モードを構成します。--schemaSource
オプションと併用する必要があります。サンプリング動作は次の値によって決まります。値--schemaMode
動作custom
mongosqld
は、--schemaSource
オプションで指定された MongoDB データベースから保存されたスキーマを読み取ります。auto
mongosqld
はスキーマをサンプリングし、--schemaSource
オプションで指定された MongoDB データベースにスキーマ データを書込みます。サンプル モードの構成の詳細については、「サンプリング モード参照チャート」を参照してください。
重要
mongosqld
でauthentication
が有効になっている場合、認証されたユーザーは指定された--schemaSource
データベースに対する書込み特権を持っている必要があります。readWrite
ロールの詳細については、「組み込みロール」を参照してください。
--schemaSource <db-name>
バージョン 2.11 の新機能。
--schemaMode
が設定されている場合は常に必須。 スキーマ情報を保存するデータベースを指定します。注意
--schema
、--schemaMode
、--schemaSource
のいずれのオプションも指定しない場合、mongosqld
はメモリ内にスキーマを保持します。サンプリング モードの詳細については、「サンプリング モード参照チャート」を参照してください。
--schemaName <db-name>
デフォルト:
defaultSchema
バージョン 2.11 の新機能。
任意。
--schemaSource
データベースの読み取りまたは書込みに使用されるスキーマ名。スキーマ名を指定すると、--schemaSource
データベースに複数のスキーマを保存できます。動作は--schemaMode
の値によって異なります。--schemaName
動作custom
--schemaSource
オプションで指定されたデータベースからロードするスキーマの名前。auto
BI Connector が起動時にスキーマをサンプリングした後で、--schemaSource
データベースに書込むスキーマの名前。重要
カスタム スキーマをアップロードする場合、
name-schema
を使用して、指定された名前でスキーマを保存してから、--schemaName
を使用してこの名前をmongosqld
に指定する必要があります。アップロード時にスキーマの名前を保存しない場合、デフォルトのスキーマ名であるdefaultSchema
が適用されます。スキーマ名が存在しない場合は、mongosqld
から次のようなエラーが返されます。「MongoDB スキーマはまだ利用できません。スキーマの初期化エラー: 名前に対応するスキーマが見つかりません。サンプリング モードの詳細については、「サンプリング モード参照チャート」を参照してください。
--sampleSize <number>
デフォルト: 1000
バージョン 2.3 の新機能.
スキーマ情報の収集時にサンプリングする名前空間あたりのドキュメント数。
スキーマ構築時に、指定された名前空間内のすべてのドキュメントを含めるには、
--sampleSize
を0
に設定します。名前空間を指定しない場合、--sampleSize
を0
に設定すると、mongosqld
はスキーマ構築時に全データベース内のすべてのドキュメント(local
、admin
、system
を除く)を考慮します。以下の例を参照してください。
--schemaRefreshIntervalSecs <number>
デフォルト: 0
バージョン 2.11 で変更:
--sampleRefreshIntervalSecs
の名前を--schemaRefreshIntervalSecs
に変更しましたmongosqld
がデータを再びサンプリングしてスキーマを作成する間隔(秒)。デフォルト値である0
の場合、最初のサンプリング後に再サンプリングが自動的に実行されることはありません。指定する値は正の整数である必要があります。スキーマの 1 回限りの更新を強制するには、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" ] } 上記コレクションは、表形式の次の 2 つのテーブルに変換されます。
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
デフォルト: rename
ログをローテーションすること、およびそのローテーション方法を指定します。
このオプションが設定されている状態で、MongoDB Connector for BI に
FLUSH LOGS
コマンドを発行するか、mongosqld
を再開すると、ログがローテーションされます。--logRotate
をrename
に設定すると、次の動作につながります。- 既存のログファイルが閉じられます。RFC3339 形式のタイムスタンプが閉じられたログファイルに追加されます。新しいログファイルが作成されます。
--logRotate
をreopen
に設定すると、次の動作につながります。- 既存のログファイルが閉じられ、再度開かれます。
注意
UNIX と macOS プラットフォームでは、
SIGUSR1
シグナルを発行してmongosqld
プロセスを再開し、ログをローテーションできます。
--usageLogInterval <number>
デフォルト: 60
バージョン 2.14 の新機能。
使用量統計がログに書き込まれる間隔(秒単位)。使用量のログ作成を無効にするには、
0
に設定します。注意
使用量のログ作成は Windows では有効になっていません。
--verbose, -v
mongosqld
がより詳細なログ出力を提供することを指定します。以下の表では各ログ レベルで提供される情報について説明しています。
MongoDB TLS/SSL オプション
--mongo-ssl
デフォルト: False
MongoDB インスタンスに接続するときに TLS/SSL を使用するように
mongosqld
に指示します。
--mongo-sslPEMKeyFile <filename>
MongoDB への接続時に
mongosqld
が使用する TLS/SSL 証明書と鍵の両方を含む.pem
ファイルを指定します。 相対パスまたは絶対パスを使用して、.pem
ファイルのファイル名を指定できます。このオプションが必要になるのは、
--mongo-ssl
オプションを使用してmongod
またはmongos
に接続し、かつこれらでnet.ssl.allowConnectionsWithoutCertificates
がない状態でCAFile
が有効になっている場合です。
--mongo-sslAllowInvalidHostnames
TLS/SSL 証明書のホスト名と異なるホスト名を持つ MongoDB Server への
mongosqld
による接続を許可します。
--mongo-sslAllowInvalidCertificates
MongoDB インスタンスが無効なサーバー SSL/TLS 証明書を提示することを許可します。
allowInvalidCertificates
設定を使用すると、MongoDB は警告として無効な証明書の使用をログに記録します。
クライアント TLS/SSL オプション
--sslMode <mode>
デフォルト: disabled
バージョン 2.3 の新機能.
mongosqld への接続に対して TLS/SSL を有効または無効にします。
sslMode
オプションの引数には以下のいずれかを指定します。
--sslPEMKeyFile <filename>
MySQL クライアントの TLS/SSL 証明書とキーの両方を含む
.pem
ファイルを指定します。相対パスまたは絶対パスを使用して、.pem
ファイルのファイル名を指定します。
--sslPEMKeyPassword <password>
--sslPEMKeyFile
で指定された秘密キーを復号化するために使用されるパスワードを指定します。
--sslAllowInvalidHostnames
TLS/SSL 証明書のホスト名とは異なるホスト名を持つ
mongosqld
への接続を SQL クライアントに許可します。
--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 認証ソースを指定します。MongoDB データベースでの認証時に、
mongosqld
が使用するデフォルトのソースを指定するためにこの値を設定します。認証メカニズムGSSAPI
とPLAIN
は$external
ソースを使用するのに対し、SCRAM-SHA-1
とSCRAM-SHA-256
は MongoDB データベースをソースとして使用します。このオプションの値を指定しない場合、デフォルトでは MongoDB
admin
databaseが使用されます。$external
認証ソースは、「$external
」と呼ばれる MongoDB データベースにシステムユーザーへの参照を保存しますが、認証情報は LDAP サーバーなどの MongoDB 以外の外部システムに保存します。デフォルト値を使用する接続では、MySQL または Tableau ユーザー名から
source
パラメーターを省略できます。
--defaultAuthMechanism <authMechanism>
デフォルト: SCRAM-SHA-1
デフォルトの認証メカニズムを指定します。
mongosqld
に接続するためのデフォルト メカニズムを指定するには、この値を設定します。指定済みのデフォルト値を使用する接続では、MySQL または Tableau ユーザー名からmechanism
パラメーターを省略できます。値説明RFC5802 SHA ハッシュ関数を使用する標準の Salted Challenge Response Authentication Mechanismです。1バージョン 2.6 の新機能: RFC7677 SHA ハッシュ関数を使用する標準の Salted Challenge Response Authentication Mechanismです。2PLAIN(LDAP SASL)LDAP を使用する外部認証。データベース内のユーザー認証には、PLAIN
を使用することもできます。PLAIN
はパスワードをプレーン テキストで送信します。このメカニズムは MongoDB Enterprise でのみ使用できます。GSSAPI(Kerberos)Kerberos を使用する外部認証。このメカニズムは MongoDB Enterprise でのみ使用できます。
--minimumTLSVersion <TLS1_0|TLS1_1|TLS1_2>
デフォルト: TLS1_1
クライアントが
mongosqld
に接続するために最小限必要な TLS バージョンを指定します。デフォルト値であるTLS1_1
は TLS バージョン 1.1 に相当します。
サービス オプション
--serviceName <service-name>
mongosqld
を実行するシステム サービスの名前。
--serviceDisplayName <service-name>
mongosqld
を実行するシステム サービスの表示名。
--serviceDescription <service-name>
mongosqld
を実行するシステム サービスの説明。
Kerberos Options
--gssapiHostname <hostname>
デフォルト:
net.bindIp
の最初の IP アドレス。バージョン 2.5 の新機能。
Kerberos 認証を設定するための FQDN。Kerberos ホスト名は、Kerberos の構成の場合のみ、ホスト名より優先されます。
--gssapiServiceName <service-name>
デフォルト: mongosql
バージョン 2.5 の新機能。
Kerberos を使用したサービスの登録名。このオプションを使用すると、インスタンス単位で Kerberos SPN のデフォルトの Kerberos サービス名コンポーネントを上書きできます。指定しない場合は、デフォルト値が使用されます。
--mongo-gssapiServiceName <service-name>
デフォルト: mongodb
バージョン 2.5 の新機能。
Kerberos 対応の MongoDB インスタンスに接続するときに Kerberos SPN を設定します。この値は、MongoDB インスタンスに設定されたサービス名と一致する必要があります。
--gssapiConstrainedDelegation
デフォルト: False
バージョン 2.11 の新機能。
Kerberos 認可のプロキシ認証情報を使用し、制約付き削除を可能にします。 サービス キータブとクライアント キータブに
mongosqld
サービス認証情報が存在する必要があります。 Kerberos 構成の詳細については、「 BI Connector 用の Kerberos の構成」を参照してください。
ソケット オプション
--unixSocketPrefix <path>
デフォルト: /tmp
mongosqld
Unix ドメイン ソケットの代替ディレクトリを指定します。mongosqld
はこのパスの下にmysql.sock
と呼ばれるソケット ファイルを作成します。--unixSocketPrefix
を指定しない場合、ソケットは/tmp/mysql.sock
に配置されます。
所定のパラメーター オプション
--setParameter <parameter>
- Parameterタイプ対応:
"polymorphic_type_conversion_mode=<value>"
string"type_conversion_mode=<value>"
stringmongosqld
がデータ型 を変換するのに使用するモードを指定します。 BI Connector はデフォルトで独自のモード(mongosql
)を使用します。 指定可能な値は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>
名前 | タイプ | 対応: |
---|---|---|
ブール値 | ||
string | ||
string | ||
ブール値 | ||
integer |
スキーマ オプション
schema: path: <string> maxVarcharLength: <integer>
名前 | タイプ | 対応: |
---|---|---|
string | ||
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>
名前 | タイプ | 対応: |
---|---|---|
string | ||
string | ||
string | ||
integer | ||
ブール値 | ||
文字列または複数の文字列の配列 | ||
integer | ||
string |
ランタイム オプション
runtime: memory: maxPerStage: <integer> maxPerServer: <integer> maxPerConnection: <integer>
重要
BI Connector には、 mongosqld
プロセスが MongoDB にクエリを送信するために使用可能なシステムメモリの量を制御するための次のオプションが用意されています。 これらの制限には、BI Connector がデータ構造のオーバーヘッドなどの他の目的で使用するメモリは含まれないため、BI Connector が使用するメモリの合計量はこれらのオプションで設定された制限よりも多くなります。
runtime.memory.maxPerServer
タイプ: 整数
Default: unlimited
バージョン 2.5 の新機能。
mongosqld
プロセスで使用可能な最大メモリ量をバイト単位で指定します。
runtime.memory.maxPerConnection
タイプ: 整数
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>
名前 | タイプ | 対応: | |
---|---|---|---|
string | ホスト名コンポーネント バージョン2.2で変更: 複数の IP アドレスにバインドするには、カンマ区切りのリストを入力します。 以下に例を挙げます。
| ||
integer | ポート コンポーネント --addr | ||
ブール値 | 次の逆: --noUnixSocket | ||
string | |||
string | |||
ブール値 | |||
string | |||
string | |||
string | |||
string | |||
string |
セキュリティ オプション
security: enabled: <boolean> defaultMechanism: <string> defaultSource: <string> gssapi: hostname: <string> serviceName: <string>
名前 | タイプ | 対応: |
---|---|---|
ブール値 | ||
string | ||
string | ||
string | ||
string | ||
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>
名前 | タイプ | 対応: |
---|---|---|
string | ||
string | ||
ブール値 | ||
ブール値 | ||
ブール値 | ||
string | ||
string | ||
string | ||
string | ||
ブール値 | ||
string | ||
string | ||
string | ||
string | ||
string | ||
string |
プロセス管理オプション
processManagement: service: name: <string> displayName: <string> description: <string>
名前 | タイプ | 対応: |
---|---|---|
string | ||
string | ||
string |
所定のパラメーター オプション
setParameter: polymorphic_type_conversion_mode: <string> type_conversion_mode: <string>
名前 | タイプ | 対応: |
---|---|---|
string | ||
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
に設定します。これにより、mongosqld
はスキーマを構築するときに、指定された namespace
内のすべてのドキュメントを調査するようになります。
次の例では、inventory.electronics
名前空間内のすべてのドキュメントに基づいてスキーマを構築するように mongosqld
に指示しています。
mongosqld --sampleNamespaces inventory.electronics \ --sampleSize 0
スキーマを保持するデータベースの指定
スキーマ情報を格納するデータベースを指定するには、--schemaSource
オプションを使用します。mongosqld
がスキーマ データベースに書込み可能であるか、読み取りのみ可能であるかを指定するには、--schemaMode
オプションを使用します。
次のサンプルコマンドでは、 sampleDb
という名前のデータベースを使用してスキーマ情報を保存し、 --schemaMode
をauto
に設定します。
mongosqld --schemaSource sampleDb --schemaMode auto
重要
mongosqld
でauthentication
が有効になっている場合、認証されたユーザーは指定された--schemaSource
データベースに対する書込み特権を持っている必要があります。 readWrite
ロールの詳細については、「組み込みロール」を参照してください。
データの再サンプリング間隔の指定
--schemaRefreshIntervalSecs
オプションを使用して、mongosqld
がデータを再サンプリングしてスキーマを再生成する間隔を秒単位で指定します。このオプションのデフォルト値である 0
の場合、mongosqld
はデータを再サンプリングしません。
--schemaRefreshIntervalSecs
で再サンプリング間隔を設定し、かつ--schemaSource
でスキーマ データベースを指定した場合、 --schemaMode
をcustom
に設定することはできません。
次の例では、スキーマのデータベースもファイルも指定していないため、スキーマはメモリに保持されています。--schemaRefreshIntervalSecs
を使用して、データの再サンプリング間隔を 3600 秒に指定しています。
mongosqld --schemaRefreshIntervalSecs 3600
mongosqld
で認証が有効な場合
mongosqld
認証 が有効になっている状態で実行されている MongoDB インスタンスに接続するには、 オプションを使用して--auth
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 証明書、または自己署名の証明書を使用できます。自己署名証明書を使用する場合、通信チャネルは暗号化されますが、サーバーの身元は検証されません。そのため、接続の盗聴は防止できても、中間者攻撃(man-in-the-middle attack)に対しては脆弱なままになります。信頼できる認証局によって署名された証明書を使用すると、MySQL クライアントはサーバーの身元を確認できるようになります。
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 クライアントに渡します。たとえば、mongosqld
サーバー証明書を検証せずに mysql
を使用する場合は次のようになります。
mysql --host <mongosqld-host> --port <mongosqld-port> -u <username>?source=admin -p --ssl-mode required --enable-cleartext-plugin
BI Connector で mysql
クライアントを使用する方法の詳細については、「MySQL クライアントからの接続」を参照してください。
サンプリング モード参照チャート
以下のチャートでは、 mongosqld
起動構成の種類と、それぞれで使用されるオプションについて説明します。
モード | mongosqld オプション | 動作 | |||
---|---|---|---|---|---|
スタンドアロン スキーマ |
|
以下に例を挙げます。
詳細については、「スタンドアロン スキーマ モード(キャッシュされたサンプリング)」を参照してください。 | |||
カスタム スキーマ |
|
以下に例を挙げます。
| |||
Auto Schema |
| ユーザー指定のスキーマ データベースでスキーマ データをサンプリングして永続化します。 以下に例を挙げます。
詳細については、「自動スキーマ モード(MongoDB でのスキーマの永続化)」を参照してください。 |
無効な構成
次の mongosqld
オプション構成は無効であり、起動時にエラーが発生します。
モード | mongosqld オプション | 動作 |
---|---|---|
スタンドアロン ライター(無効) |
| |
クラスター化されたサンプリング リーダー(無効) |
| MongoDB レプリカセットまたはシャーディングされたクラスターで使用する場合、この構成は無効です。スキーマ データの保存用データベースが --schemaSource で指定される場合、クラスター全体で一貫性が維持されるように、--schemaMode を auto に設定して、プライマリからスキーマをアップデート可能にする必要があります。 |