AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

mongosqld

注意

MongoDB Connector for BI および関連ユーティリティは、現在サポートされているすべての MongoDB サーバー バージョンと互換性があります。

mongosqldはSQLクライアントからの受信リクエストを受け入れ、それらのリクエストをmongod またはmongos インスタンスにプロキシします。

バージョン 2.3 の新機能:

mongosqldは、 オプションを使用して .drdl形式 のスキーマファイルを使用するか、 MongoDBインスタンスのデータをサンプリングしてスキーマを作成することで起動できます--schema

--sampleNamespacesデータのサンプル元になる名前空間空間は、 オプションを使用して指定できます。名前空間またはスキーマファイルを指定しない場合、 はサンプリング先となるMongoDBインスタンスに属するすべてのデータベース(mongosqld データベースとadmin localデータベースを除く)のデータをサンプリングします。

--schemaSourceオプションを使用して、スキーマ情報を保存するデータベースを指定できます。それ以外の場合、mongosqld はメモリにスキーマを保持します。

--schemaの起動時にスキーマファイルを指定するには、mongosqld オプションを使用します。

mongosqld --schema /path/to/schema-file.drdl

mongodrdl を使用して、MongoDB インスタンスからスキーマ ファイルを作成します。

--schemaSourceスキーマ情報を保存するデータベースを指定するには、 オプションを使用します。

mongosqld --schemaSource sampleDb

--sampleNamespacesオプションを使用して、mongosqld がサンプルデータを作成してスキーマを作成するためのデータベースとコレクションを指定します。

mongosqld --sampleNamespaces contacts.addresses

追加の使用例については、以下を参照してください。

MongoDBインスタンスが認証を使用する場合、 BI Connectorインスタンスも認証 を使用する必要があります。 プログラムを介してMongoDBに接続するユーザーには、データのサンプル元になるすべての名前空間からの読み取り権限が必要です。mongosqld

BI Connector での MongoDB ユーザー権限の詳細については、「キャッシュされたサンプリングのユーザー権限」を参照してください。

MongoDB ユーザーとロールの詳細については、「ロールベースのアクセス制御」を参照してください。

認証を伴う mongosqldの以下の例 を参照してください。

バージョン2.6の新機能。

デフォルトですべてのクライアント接続に最小限必要な TLS1.1mongosqld バージョンは です。これには、 への受信クライアント接続とMongoDBへの送信接続が含まれます。

この設定は、受信接続には--minimumTLSVersion オプションを、送信接続には--mongo-minimumTLSVersion オプションを使用して調整できます。

--help

mongosqldのオプションと使用に関する情報を返します。

--addr

デフォルト: 127.0.0.1:3307

リッスンするホスト アドレスを指定します。

--version

mongosqldのリリース番号を返します。

--config <path>

構成ファイルへのパスを指定します。

--mongo-uri <uri>

デフォルト: mongodb://localhost:27017

接続する MongoDB 接続文字列を指定します。

--mongo-uriオプションは、 接続文字列内で次のオプションをサポートしています。

これらの URI オプションの詳細については、「読み込み設定(read preference)オプション」および「レプリカセット オプション」を参照してください。

上記リストに掲載されていないMongo URI で設定されているオプションには、同等のmongosqld オプションを使用します。mongosqld オプションの完全なリストは、「 コマンドライン オプション 」を参照してください。

注意

接続文字列で と を指定する代わりに、 オプションを指定して を実行し、 SQLクライアントが提供する認証情報をMongoDB サーバーに渡すようにusernamepasswordmongosqld --authmongosqldに指示します。

同様に、接続文字列で を有効にする代わりに、ssl mongosqld--mongo-ssl を実行します。

自動レプリカセット サーバーの検出ロジックを無効にして、指定サーバーへの接続を強制するには、connect=direct オプションを使用します。

mongosqld --mongo-uri "mongodb://<hostname>:<port>/?connect=direct"

上記リストとサポートされている オプション のリストの mongosqldいずれにも 含まれていない URI オプションはサポートされていません。

--mongo-versionCompatibility <version-number>

MongoDBの特定バージョンがサポートする機能を使用するように を 制限しますmongosqld3 2。ノードが別のMongoDBバージョンを使用するレプリカセットと併用される場合、またはMongoDBの順次アップグレードを実施中の場合にのみ必要です。 MongoDBバージョン. 以降のみをサポートします。

例、 MongoDB3.2 を実行中ノードとMongoDB3.4 を実行中他のノードがレプリカセットに含まれる場合は、次のオプションを設定して、mongosqld がMongoDB3 2でサポートされている機能のみを使用するように制限します。

mongosqld --mongo-versionCompatibility 3.2
--maxVarcharLength <length>

バージョン2.2の新機能。

すべての varchar フィールドに最大長(文字数)を指定します。mongosqld が最大長よりも長い文字列を検出した場合、mongosqld はその文字列を最大長まで短縮して、警告ログを記録します。

--mongo-username <username>, -u <username>

バージョン2.3の新機能。

スキーマ検出に使用する認証ユーザー名を指定します。--auth が有効な場合にのみ必要です。--mongo-username で指定されたユーザーは、 特権を持つ有効なMongoDBユーザーである必要があります。listDatabases 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 標準の Salted Challenge Response Authentication Mechanism(SHA1 ハッシュ関数を使用)。

バージョン 2.6 の新機能: RFC7677 標準の Salted Challenge Response Authentication Mechanism(SHA2 ハッシュ関数を使用)。

PLAIN(LDAP SASL)

LDAP を使用する外部認証。データベース内のユーザー認証には、PLAIN を使用することもできます。PLAIN はパスワードをプレーン テキストで送信します。このメカニズムは MongoDB Enterprise でのみ使用できます。

GSSAPI(Kerberos)

Kerberos を使用する外部認証。このメカニズムは MongoDB Enterprise でのみ使用できます。

--schema <filename>

スキーマ ファイルまたはスキーマ ディレクトリへのパスを指定します。

--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は、 オプションで指定されたMongoDBデータベースから保存されたスキーマを読み取ります。--schemaSource

auto

mongosqldはスキーマをサンプリングし、--schemaSource オプションで指定されたMongoDBデータベースにスキーマデータを書込みます。

サンプル モードの構成の詳細については、「サンプリング モード参照チャート」を参照してください。

重要

mongosqldauthenticationで が有効になっている場合、認証されたユーザーは指定された--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

--schemaSourceBI Connector がスタートアップ時にスキーマをサンプリングした後で、 データベースに書込むスキーマの名前。

重要

カスタムスキーマをアップロードする場合、name-schema を使用して、指定された名前でスキーマを保存してから、--schemaName を使用してこの名前を mongosqld に指定する必要があります。アップロード時にスキーマの名前を保存しない場合、デフォルトのスキーマ名である defaultSchema が適用されます。スキーマ名が存在しない場合は、mongosqld から次のようなエラーが返されます。 「MongoDBスキーマはまだ利用できません。スキーマの初期化エラー : 名前に対応するスキーマが見つかりません。

サンプリング モードの詳細については、「サンプリング モード参照チャート」を参照してください。

--sampleSize <number>

デフォルト: 1000

バージョン2.3の新機能。

スキーマ情報の収集時にサンプリングする名前空間あたりのドキュメント数。

--sampleSize0スキーマの構築時に、指定された名前空間内のすべてのドキュメントを含めるには、--sampleSize を に設定します。名前空間を指定しない場合、 を0 mongosqldlocalに設定すると、 はスキーマ構築時に全データベース内のすべてのドキュメント( 、 、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列のデータがatest_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が必要です。

--logPath <filename>

Default: stderr

ログ出力の保存用ログファイルへのパスを指定します。

--logRotate reopen | rename

デフォルト: rename

ログをローテーションすること、およびそのローテーション方法を指定します。

このオプションが設定されている状態で、MongoDB Connector for BI に FLUSH LOGS コマンドを発行するか、mongosqld を再開すると、ログがローテーションされます。

--logRotaterenameを に設定すると次のことが起きます。

既存のログファイルが閉じられます。 RFC3339 形式のタイムスタンプが閉じられたログファイルに追加されます。新しいログファイルが作成されます。

--logRotatereopenを に設定すると次のことが起きます。

既存のログファイルが閉じられ、再度開かれます。

注意

UNIX と macOS プラットフォームでは、SIGUSR1 シグナルを発行して mongosqld プロセスを再開し、ログをローテーションできます。

--usageLogInterval <number>

デフォルト: 60

バージョン2.14の新機能。

使用量統計がログに書き込まれる間隔(秒単位)。使用量のログ作成を無効にするには、0 に設定します。

注意

使用量のログ作成は Windows では有効になっていません。

--verbose, -v

mongosqldがより詳細なログ出力を提供するように指定します。

以下の表では各ログ レベルで提供される情報について説明しています。

文字オプション
ログ レベル
メッセージ内容

--quiet

なし

ログ記録なし。

No flag

default

基本的なmongosqld イベントと状態の変化をユーザーに通知するログ メッセージ。

-v

管理者

管理者に情報を提供するログmongosqld メッセージ。

-vv

開発者

MongoDB のサポートと開発に役立つログ メッセージ。

--quiet

すべてのログ出力を非表示にします。

重要

独自の認証局(CA)を使用してサーバーとクライアント証明書に自己署名を行う場合は、認証が正しく機能するようにするために--mongo-sslAllowInvalidHostnames オプションを含める必要があります。

--mongo-ssl

デフォルト: False

mongosqldMongoDBインスタンスに接続するときに TLS/SSL を使用するように に指示します。

--mongo-sslPEMKeyFile <filename>

.pemMongoDBへの接続時にmongosqld が使用する TLS/SSL 証明書と鍵の両方を含む ファイルを指定します。相対パスまたは絶対パスを使用して、.pem ファイルのファイル名を指定できます。

このオプションは、--mongo-ssl オプションを使用して、allowConnectionsWithoutCertificates なしでmongodmongos CAFileが有効になっている または に接続する場合に必要です。

--mongo-sslPEMKeyPassword <password>

MongoDB への接続用証明書と秘密キーを含むファイルへのパスを指定します。

--mongo-sslAllowInvalidHostnames

mongosqldTLS/SSL 証明書のホスト名と異なるホスト名を持つMongoDBサーバーへの接続を に許可します。

--mongo-sslAllowInvalidCertificates

MongoDBインスタンスが無効なサーバーSSL/TLS 証明書を提示することを許可します。 設定を使用すると、 MongoDBallowInvalidCertificates は警告として無効な証明書の使用をログに記録します。

--mongo-sslCAFile <filename>

MongoDB インスタンスの .pem ファイルのうち、認証局からのルート証明書チェーンを含むものを指定します。相対パスまたは絶対パスを使用して、.pem ファイルのファイル名を指定します。

警告

BI Connector バージョン 2.14.30 以前の場合

およびmongos へのmongod SSL 接続(--mongo-sslmongosqld )の場合、 --mongo-sslCAFile なしで実行される場合、mongosqld はサーバー証明書の検証を試行しません。これにより、期限切れのmongodmongos およびmongos mongod証明書、および有効な または インスタンスを引き受ける外部プロセスに対する脆弱性が生じます。違反が発生する可能性がある場合に備えて、サーバー証明書を検証するために、常に CAファイルを指定するようにしてください。

BI Connector バージョン2.14.31 --mongo-ssl以降で、 フラグが提供されている場合は、次のオプションも少なくとも 1 つ指定する必要があります。

--mongo-sslCRLFile <filename>

MongoDB インスタンスの .pem ファイルのうち、証明書の失効リストを含むものを指定します。

--mongo-sslFIPSMode

インストールされた OpenSSL ライブラリで FIPS モードを有効にします。

--mongo-minimumTLSVersion <TLS1_0|TLS1_1|TLS1_2>

デフォルト: TLS1_1

またはmongod mongosへの送信接続に最小限必要な TLS バージョンを指定します。インスタンス。デフォルト値TLS1_1 は TLS バージョン.1 に対応します。1

--sslMode <mode>

デフォルト: disabled

バージョン2.3の新機能。

mongosqld への接続に対して TLS / SSL を有効または無効にします。sslMode オプションの引数には以下のいずれかを指定します。

説明

disabled

mongosqld は TLS/SSL を使用して保護された接続を受け入れることができません。

allowSSL

mongosqld は TLS/SSL を使用して保護された接続を受け入れることができます。

requireSSL

mongosqld は TLS/SSL を使用して保護された接続のみを受け入れることができます。

--sslPEMKeyFile <filename>

MySQL クライアントの TLS/SSL 証明書とキーの両方を含む .pem ファイルを指定します。相対パスまたは絶対パスを使用して、.pem ファイルのファイル名を指定します。

--sslPEMKeyPassword <password>

--sslPEMKeyFileで指定された秘密キーを復号化するために使用されるパスワードを指定します。

--sslAllowInvalidCertificates

MySQL クライアントが無効なクライアント TLS/SSL 証明書を提示することを許可します。

--sslAllowInvalidHostnames

mongosqldTLS/SSL 証明書のホスト名とは異なるホスト名を持つ への接続をSQLクライアントに許可します。

--sslCAFile <filename>

mongosqld.pem認証局からのルート証明書チェーンを含む ファイルを指定します。相対パスまたは絶対パスを使用して、.pem ファイルのファイル名を指定します。

--sslCRLFile <filename>

mongosqld.pem証明書失効リストを含む ファイルを指定します。

--auth

受信クライアント リクエストの認証が必要です。

重要

バージョン2.4.0で変更。

認証が有効になっている場合、構成ファイル内 の--mongo-username--mongo-password オプション、またはmongodb.net.auth.usernamemongodb.net.auth.password 設定を使用して管理者の認証情報を提供する必要があります。

mongosqld は管理者認証情報を使用して、サンプリングされた名前空間に関するメタデータを収集し、接続クライアントの認証情報を使用して、クライアントに読み取り許可が付与されているもののみにデータを制限します。管理者ユーザーに必要な権限の詳細については、「キャッシュされたサンプリングのユーザー権限」を参照してください。

--defaultAuthSource <authSource>

デフォルト: admin

デフォルトのMongoDB認証ソースを指定します。 MongoDBデータベースでの認証時にmongosqld が使用するデフォルトのソースを指定するためにこの値を設定します。認証メカニズムGSSAPI PLAIN$externalSCRAM-SHA-1と は ソースを使用するのに対し、 とSCRAM-SHA-256 はMongoDBデータベース をソースとして使用します。

このオプションの値を指定しない場合、デフォルトでは MongoDB admin databaseが使用されます。

$external 認証ソースは、「$external」と呼ばれる MongoDB データベースにシステムユーザーへの参照を保存しますが、認証情報は LDAP サーバーなどの MongoDB 以外の外部システムに保存します。

デフォルト値を使用する接続では、MySQL または Tableau ユーザー名から source パラメーターを省略できます。

--defaultAuthMechanism <authMechanism>

デフォルト: SCRAM-SHA-1

mongosqldデフォルトの認証メカニズムを指定します。 に接続するためのデフォルトメカニズムを指定するには、この値を設定します。この指定済みデフォルト値を使用する接続では、mechanism MySQLまたはTableauユーザー名名 から 値を省略できます。

説明

RFC5802 標準の Salted Challenge Response Authentication Mechanism(SHA1 ハッシュ関数を使用)。

バージョン 2.6 の新機能: RFC7677 標準の Salted Challenge Response Authentication Mechanism(SHA2 ハッシュ関数を使用)。

PLAIN(LDAP SASL)

LDAP を使用する外部認証。データベース内のユーザー認証には、PLAIN を使用することもできます。PLAIN はパスワードをプレーン テキストで送信します。このメカニズムは MongoDB Enterprise でのみ使用できます。

GSSAPI(Kerberos)

Kerberos を使用する外部認証。このメカニズムは MongoDB Enterprise でのみ使用できます。

--minimumTLSVersion <TLS1_0|TLS1_1|TLS1_2>

デフォルト: TLS1_1

クライアントが に接続するために最小限必要な TLSmongosqld バージョンを指定します。デフォルト値TLS1_1 は、TLS1 バージョン. に対応します。1

--serviceName <service-name>

を実行するシステムmongosqld サービスの名前。

--serviceDisplayName <service-name>

を実行するシステムmongosqld サービスの表示名。

--serviceDescription <service-name>

を実行するシステムmongosqld サービスの説明。

--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 の構成 」を参照してください。

--filePermissions <mode>

デフォルト: 0700

Unix ドメイン ソケット ファイルに対する権限を指定します。

--noUnixSocket

Unix ドメイン ソケットでのリスニングを無効にします。

--unixSocketPrefix <path>

デフォルト: /tmp

mongosqldUnix ドメイン ソケットの代替ディレクトリを指定します。

mongosqldmysql.sockはこのパスの下に と呼ばれるソケットファイルを作成します。--unixSocketPrefix を指定しない場合、ソケットは/tmp/mysql.sock に配置されます。

--setParameter <parameter>
Parameter
タイプ
対応:

"polymorphic_type_conversion_mode=<value>"

string

mongosqldが複数のデータ型で指定されたドキュメントフィールドを評価する方法を決定します。指定可能な値は、offfastsafe です。これらの値の詳細については、「 システム変数 」を参照してください。

"type_conversion_mode=<value>"

string

mongosqldがデータ型を変換するのに使用するモードを指定します。 BI Connector はデフォルトで独自のモード(mongosql )を使用します。指定可能な値はmongosqlmysql です。これらの値の詳細については、「 システム変数 」を参照してください。

次の例ではmongosqld --setParameterを起動し、 オプションを使用して タイプ変換モードを指定しています。

mongosqld --setParameter "type_conversion_mode=mongosql"

mongosqldYAML構成ファイルを使用して を構成できます。このファイルには、次の選択肢に記載されている設定が含まれている場合があります。

注意

構成ファイルの展開ディレクティブを使用すると、外部から取得した構成値をロードすることができます。セキュリティ証明書やパスワードなどの機密情報はぼかして表示されます。

展開ディレクティブの使用の詳細については、MongoDB マニュアルの「外部ソースの構成ファイルの値」を参照してください。

systemLog:
logAppend: <boolean>
logRotate: "rename"|"reopen"
path: <string>
quiet: <boolean>
verbosity: <integer>
名前
タイプ
対応:
systemLog.logAppend

ブール値

systemLog.logRotate

string

systemLog.path

string

systemLog.quiet

ブール値

systemLog.verbosity

integer

schema:
path: <string>
maxVarcharLength: <integer>
名前
タイプ
対応:
schema.path

string

schema.maxVarcharLength

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>
名前
タイプ
対応:
schema.stored.mode

string

schema.stored.source

string

schema.stored.name

string

schema.sample.size

integer

schema.sample.prejoin

ブール値

schema.sample.namespaces

文字列または複数の文字列の配列

schema.refreshIntervalSecs

integer

schema.sample.uuidSubtype3Encoding

string

runtime:
memory:
maxPerStage: <integer>
maxPerServer: <integer>
maxPerConnection: <integer>

重要

BI Connector には、 プロセスがMongoDBにクエリを送信するために使用可能なシステムメモリの量を制御するための次のオプションが用意されています。これらの制限には、 BI Connector がデータ構造のオーバーヘッドなどの他の目的で使用するメモリは含まれないため、 BI Connectormongosqld が使用するメモリの合計量はこれらのオプションで設定された制限よりも多くなります。

runtime.memory.maxPerStage

タイプ: 整数

Default: unlimited

クエリ実行ステージで使用可能な最大メモリ量をバイト単位で指定します。

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>
名前
タイプ
対応:
net.bindIp

string

ホスト名コンポーネント --addr

バージョン2.2 での変更: 複数のIPアドレスにバインドするには、カンマ区切りのリストを入力します。

以下に例を挙げます。

"72.198.41.200,72.198.41.201,72.198.41.202"
net.port

integer

ポート コンポーネント --addr

net.unixDomainSocket.enabled

ブール値

次の逆: --noUnixSocket

net.unixDomainSocket.pathPrefix

string

net.unixDomainSocket.filePermissions

string

net.ssl.allowInvalidCertificates

ブール値

net.ssl.mode

string

net.ssl.PEMKeyFile

string

net.ssl.PEMKeyPassword

string

net.ssl.CAFile

string

net.ssl.minimumTLSVersion

string

security:
enabled: <boolean>
defaultMechanism: <string>
defaultSource: <string>
gssapi:
hostname: <string>
serviceName: <string>
名前
タイプ
対応:
security.enabled

ブール値

security.defaultMechanism

string

security.defaultSource

string

security.gssapi.hostname

string

security.gssapi.serviceName

string

security.gssapi.constrainedDelegation

string

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>
名前
タイプ
対応:
mongodb.versionCompatibility

string

mongodb.net.uri

string

mongodb.net.ssl.enabled

ブール値

mongodb.net.ssl.allowInvalidCertificates

ブール値

mongodb.net.ssl.allowInvalidHostnames

ブール値

mongodb.net.ssl.PEMKeyFile

string

mongodb.net.ssl.PEMKeyPassword

string

mongodb.net.ssl.CAFile

string

mongodb.net.ssl.CRLFile

string

mongodb.net.ssl.FIPSMode

ブール値

mongodb.net.ssl.minimumTLSVersion

string

mongodb.net.auth.username

string

mongodb.net.auth.password

string

mongodb.net.auth.source

string

mongodb.net.auth.mechanism

string

mongodb.net.auth.gssapiServiceName

string

processManagement:
service:
name: <string>
displayName: <string>
description: <string>
名前
タイプ
対応:
processManagement.service.name

string

processManagement.service.displayName

string

processManagement.service.description

string

setParameter:
polymorphic_type_conversion_mode: <string>
type_conversion_mode: <string>
名前
タイプ
対応:
setParameter.polymorphic_type_conversion_mode

string

mongosqldが複数のデータ型で指定されたドキュメントフィールドを評価する方法を決定します。指定可能な値は、offfastsafe です。これらの値の詳細については、「 システム変数 」を参照してください。

setParameter.type_conversion_mode

string

mongosqldがデータ型を変換するのに使用するモードを指定します。 BI Connector はデフォルトで独自のモード(mongosql )を使用します。指定可能な値はmongosqlmysql です。これらの値の詳細については、「 システム変数 」を参照してください。

上記の構成ファイル オプションは、システム変数としても使用できます。詳細については、「システム変数」を参照してください。

構成ファイルの展開ディレクティブを使用すると、外部から取得した構成値をロードすることができます。セキュリティ証明書やパスワードなどの機密情報はぼかして表示されます。

展開ディレクティブの使用の詳細については、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"

--schemamongosqldオプションを使用して、 が使用するスキーマファイルを指定します。

mongosqld --schema /path/to/schema-file.drdl

--sampleNamespacesmongosqldオプションを使用して、 がデータをサンプルするデータベースとコレクションを指定します。 オプションなしで を起動すると、利用可能なすべてのデータベース(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内のすべてのドキュメントを調査するようになります。

次の例では、mongosqld 名前空間内のすべてのドキュメントに基づいてスキーマを構築するようにinventory.electronics に指示しています。

mongosqld --sampleNamespaces inventory.electronics \
--sampleSize 0

--schemaSourceスキーマ情報を保存するデータベースを指定するには、 オプションを使用します。--schemaMode オプションを使用して、mongosqld がスキーマデータベースに書込み可能であるか、読み取りのみ可能であるかを指定します。

次の例コマンドでは、sampleDb という名前のデータベースを使用してスキーマ情報を保存し、--schemaModeauto に設定します。

mongosqld --schemaSource sampleDb --schemaMode auto

重要

mongosqldauthenticationで が有効になっている場合、認証されたユーザーは指定された--schemaSource データベースに対する 書込み特権を持っている必要があります。 ロールの詳細については、「 組み込みロールreadWrite 」を参照してください。

オプションを使用して、 --schemaRefreshIntervalSecsmongosqldがデータを再サンプリングしてスキーマを再生成する間隔を秒単位で指定します。このオプションのデフォルト値は0mongosqld であり、 はデータを再サンプリングしません。

で再サンプリング間隔を設定し、かつ--schemaRefreshIntervalSecs --schemaSourceでスキーマデータベースを指定した場合、--schemaModecustom に設定することはできません。

次の例では、スキーマのデータベースもスキーマファイルも指定していないため、スキーマはメモリに保持されています。--schemaRefreshIntervalSecs を使用して、3600 秒のデータ再サンプリング間隔を指定します。

mongosqld --schemaRefreshIntervalSecs 3600

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に設定されます。

ログを /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 は 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クライアントに渡します。例、mysql mongosqldサーバー証明書を検証せずに を使用する場合は次のようになります。

mysql --host <mongosqld-host> --port <mongosqld-port> -u <username>?source=admin -p --ssl-mode required --enable-cleartext-plugin

BI Connector で mysql クライアントを使用する方法の詳細については、「MySQL クライアントからの接続」を参照してください。

以下のチャートでは、mongosqld スタートアップ構成の種類と、それぞれで使用されるオプションについて説明します。

モード
mongosqld オプション
動作

スタンドアロン スキーマ

mongosqldはスタートアップ時にデータをサンプリングします。--schemaRefreshIntervalSecs > の場合0 は、指定された間隔で再サンプリングします。

以下に例を挙げます。

mongosqld --schemaRefreshIntervalSecs 3600

詳細については、「スタンドアロン スキーマ モード(キャッシュされたサンプリング)」を参照してください。

カスタム スキーマ

--schemaSourceによって指定されたデータベースからスキーマデータを読み取ります。

以下に例を挙げます。

mongosqld --schemaMode custom \
--schemaSource schemaDb

Auto Schema

ユーザー指定のスキーマ データベースでスキーマ データをサンプリングして永続化します。

以下に例を挙げます。

mongosqld --schemaMode auto \
--schemaSource schemaDb \
--schemaRefreshIntervalSecs 3600

詳細については、「自動スキーマ モード(MongoDB でのスキーマの永続化)」を参照してください。

次のmongosqld オプション構成は無効であり、スタートアップ時にエラーが発生します。

モード
mongosqld オプション
動作

スタンドアロン ライター(無効

この構成はスタンドアロンの インスタンスでは無効であり、mongod autoモードでは書込み可能なデータベースが指定されている必要があります。

クラスター化されたサンプリング リーダー(無効

MongoDBレプリカセットまたはシャーディングされたクラスターで使用する場合、この構成は無効です。スキーマデータの保存用データベースが で指定されている場合、クラスター全体で一貫性が維持されるように、--schemaSource--schemaMode を に設定して、auto プライマリ からスキーマをアップデート可能にする必要があります。

項目一覧