Docs Menu
Docs Home
/
BI Connector
/

mongosqld

項目一覧

注意

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

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

バージョン 2.3 の新機能:

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

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

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

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

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

認証を伴う mongosqld については、以下のを参照してください。

バージョン 2.6 の新機能.

デフォルトですべてのクライアント接続に最小限必要な TLS バージョンは 1.1 です。これには、mongosqldへの受信クライアント接続と 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オプションは、 接続string内で次のオプションをサポートしています。

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

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

注意

接続文字列で usernamepassword を指定する代わりに、mongosqld--auth オプションと併用して、SQL クライアントが提供する認証情報を MongoDB Server に渡すように mongosqld に指示します。

同様に、接続文字列で ssl を有効にする代わりに、--mongo-ssl を使用して 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です。2
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 データベースとコレクション(adminlocal データベースを除く)からのデータをサンプリングします。

--schemaMode <[custom|auto]>

デフォルト: custom

バージョン 2.11 の新機能

mongosqldサンプリング モードを構成します。--schemaSource オプションと併用する必要があります。サンプリング動作は次の値によって決まります。

--schemaMode 動作
custom
mongosqld は、--schemaSource オプションで指定された MongoDB データベースから保存されたスキーマを読み取ります。
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
BI Connector が起動時にスキーマをサンプリングした後で、--schemaSource データベースに書込むスキーマの名前。

重要

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

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

--sampleSize <number>

デフォルト: 1000

バージョン 2.3 の新機能.

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

スキーマ構築時に、指定された名前空間内のすべてのドキュメントを含めるには、--sampleSize0 に設定します。名前空間を指定しない場合、--sampleSize0 に設定すると、mongosqld はスキーマ構築時に全データベース内のすべてのドキュメント(localadminsystemを除く)を考慮します。以下のを参照してください。

--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 が必要です。

--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

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

--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-sslPEMKeyPassword <password>

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

--mongo-sslAllowInvalidHostnames

TLS/SSL 証明書のホスト名と異なるホスト名を持つ MongoDB Server への mongosqld による接続を許可します。

--mongo-sslAllowInvalidCertificates

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

--mongo-sslCAFile <filename>

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

警告

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

--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

TLS/SSL 証明書のホスト名とは異なるホスト名を持つmongosqldへの接続を 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 が使用するデフォルトのソースを指定するためにこの値を設定します。認証メカニズム GSSAPIPLAIN$external ソースを使用するのに対し、SCRAM-SHA-1SCRAM-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です。2
PLAIN(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 を実行するシステム サービスの説明。

--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

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

mongosqld はこのパスの下に mysql.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"

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

注意

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

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

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"

--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という名前のデータベースを使用してスキーマ情報を保存し、 --schemaModeautoに設定します。

mongosqld --schemaSource sampleDb --schemaMode auto

重要

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

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

--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 クライアントに渡します。たとえば、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 オプション
動作
スタンドアロン スキーマ

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

以下に例を挙げます。

mongosqld --schemaRefreshIntervalSecs 3600

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

カスタム スキーマ

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

以下に例を挙げます。

mongosqld --schemaMode custom \
--schemaSource schemaDb
Auto Schema

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

以下に例を挙げます。

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

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

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

モード
mongosqld オプション
動作
スタンドアロン ライター(無効
auto モードでは書込み可能なデータベースが指定されている必要があるため、この構成はスタンドアロンの mongod インスタンスでは無効です。
クラスター化されたサンプリング リーダー(無効
MongoDB レプリカセットまたはシャーディングされたクラスターで使用する場合、この構成は無効です。スキーマ データの保存用データベースが --schemaSource で指定される場合、クラスター全体で一貫性が維持されるように、--schemaModeauto に設定して、プライマリからスキーマをアップデート可能にする必要があります。

戻る

コネクター コンポーネント

項目一覧