説明
注意
MongoDB Connector for BI および関連ユーティリティは、現在サポートされているすべての MongoDB サーバー バージョンと互換性があります。
mongosqldはSQLクライアントからの受信リクエストを受け入れ、それらのリクエストをmongod またはmongos インスタンスにプロキシします。
使用法
バージョン 2.3 の新機能:
mongosqldは、 オプションを使用して .drdl形式 のスキーマファイルを使用するか、 MongoDBインスタンスのデータをサンプリングしてスキーマを作成することで起動できます--schema
--sampleNamespacesデータのサンプル元になる名前空間空間は、 オプションを使用して指定できます。名前空間またはスキーマファイルを指定しない場合、 はサンプリング先となるMongoDBインスタンスに属するすべてのデータベース(mongosqld データベースと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の新機能。
デフォルトですべてのクライアント接続に最小限必要な TLS1.1mongosqld バージョンは です。これには、 への受信クライアント接続とMongoDBへの送信接続が含まれます。
この設定は、受信接続には--minimumTLSVersion オプションを、送信接続には--mongo-minimumTLSVersion オプションを使用して調整できます。
コマンドライン オプション
中心的オプション
--versionmongosqldのリリース番号を返します。
--config <path>構成ファイルへのパスを指定します。
--mongo-uri <uri>デフォルト: mongodb://localhost:27017
接続する MongoDB 接続文字列を指定します。
--mongo-uriオプションは、 接続文字列内で次のオプションをサポートしています。connect
これらの URI オプションの詳細については、「読み込み設定(read preference)オプション」および「レプリカセット オプション」を参照してください。
上記リストに掲載されていないMongo URI で設定されているオプションには、同等の
mongosqldオプションを使用します。mongosqldオプションの完全なリストは、「 コマンドライン オプション 」を参照してください。注意
自動レプリカセット サーバーの検出ロジックを無効にして、指定サーバーへの接続を強制するには、
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ユーザーである必要があります。listDatabasesmongosqld ユーザー許可 を参照してください
--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 でのみ使用できます。
スキーマ オプション
--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動作custommongosqldは、 オプションで指定されたMongoDBデータベースから保存されたスキーマを読み取ります。--schemaSourceautomongosqldはスキーマをサンプリングし、--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 がスタートアップ時にスキーマをサンプリングした後で、 データベースに書込むスキーマの名前。重要
サンプリング モードの詳細については、「サンプリング モード参照チャート」を参照してください。
--sampleSize <number>デフォルト: 1000
バージョン2.3の新機能。
スキーマ情報の収集時にサンプリングする名前空間あたりのドキュメント数。
--sampleSize0スキーマの構築時に、指定された名前空間内のすべてのドキュメントを含めるには、--sampleSizeを に設定します。名前空間を指定しない場合、 を0mongosqldlocalに設定すると、 はスキーマ構築時に全データベース内のすべてのドキュメント( 、 、adminsystemを除く)を考慮します。以下の例を参照してください。
--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 | +------+------+--------+-------+
ログ オプション
--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, -vmongosqldがより詳細なログ出力を提供するように指定します。以下の表では各ログ レベルで提供される情報について説明しています。
MongoDB TLS/SSL オプション
重要
独自の認証局(CA)を使用してサーバーとクライアント証明書に自己署名を行う場合は、認証が正しく機能するようにするために--mongo-sslAllowInvalidHostnames オプションを含める必要があります。
--mongo-sslデフォルト: False
mongosqldMongoDBインスタンスに接続するときに TLS/SSL を使用するように に指示します。
--mongo-sslPEMKeyFile <filename>.pemMongoDBへの接続時にmongosqldが使用する TLS/SSL 証明書と鍵の両方を含む ファイルを指定します。相対パスまたは絶対パスを使用して、.pemファイルのファイル名を指定できます。このオプションは、
--mongo-sslオプションを使用して、allowConnectionsWithoutCertificatesなしでmongodmongosCAFileが有効になっている または に接続する場合に必要です。
--mongo-sslAllowInvalidHostnamesmongosqldTLS/SSL 証明書のホスト名と異なるホスト名を持つMongoDBサーバーへの接続を に許可します。
--mongo-sslAllowInvalidCertificatesMongoDBインスタンスが無効なサーバーSSL/TLS 証明書を提示することを許可します。 設定を使用すると、 MongoDB
allowInvalidCertificatesは警告として無効な証明書の使用をログに記録します。
--mongo-sslCAFile <filename>MongoDB インスタンスの
.pemファイルのうち、認証局からのルート証明書チェーンを含むものを指定します。相対パスまたは絶対パスを使用して、.pemファイルのファイル名を指定します。警告
BI Connector バージョン 2.14.30 以前の場合
および
mongosへのmongodSSL 接続(--mongo-sslmongosqld)の場合、--mongo-sslCAFileが なしで実行される場合、mongosqldはサーバー証明書の検証を試行しません。これにより、期限切れのmongodmongosおよびmongosmongod証明書、および有効な または インスタンスを引き受ける外部プロセスに対する脆弱性が生じます。違反が発生する可能性がある場合に備えて、サーバー証明書を検証するために、常に CAファイルを指定するようにしてください。BI Connector バージョン2.14.31
--mongo-ssl以降で、 フラグが提供されている場合は、次のオプションも少なくとも 1 つ指定する必要があります。
クライアント TLS/SSL オプション
--sslMode <mode>デフォルト: disabled
バージョン2.3の新機能。
mongosqld への接続に対して TLS / SSL を有効または無効にします。
sslModeオプションの引数には以下のいずれかを指定します。
--sslPEMKeyFile <filename>MySQL クライアントの TLS/SSL 証明書とキーの両方を含む
.pemファイルを指定します。相対パスまたは絶対パスを使用して、.pemファイルのファイル名を指定します。
--sslAllowInvalidHostnamesmongosqldTLS/SSL 証明書のホスト名とは異なるホスト名を持つ への接続を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が使用するデフォルトのソースを指定するためにこの値を設定します。認証メカニズムGSSAPIPLAIN$externalSCRAM-SHA-1と は ソースを使用するのに対し、 とSCRAM-SHA-256はMongoDBデータベース をソースとして使用します。このオプションの値を指定しない場合、デフォルトでは MongoDB
admindatabaseが使用されます。$external認証ソースは、「$external」と呼ばれる MongoDB データベースにシステムユーザーへの参照を保存しますが、認証情報は LDAP サーバーなどの MongoDB 以外の外部システムに保存します。デフォルト値を使用する接続では、MySQL または Tableau ユーザー名から
sourceパラメーターを省略できます。
--defaultAuthMechanism <authMechanism>デフォルト: SCRAM-SHA-1
mongosqldデフォルトの認証メカニズムを指定します。 に接続するためのデフォルトメカニズムを指定するには、この値を設定します。この指定済みデフォルト値を使用する接続では、mechanismMySQLまたは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
クライアントが に接続するために最小限必要な TLS
mongosqldバージョンを指定します。デフォルト値TLS1_1は、TLS1 バージョン. に対応します。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
mongosqldUnix ドメイン ソケットの代替ディレクトリを指定します。mongosqldmysql.sockはこのパスの下に と呼ばれるソケットファイルを作成します。--unixSocketPrefixを指定しない場合、ソケットは/tmp/mysql.sockに配置されます。
所定のパラメーター オプション
--setParameter <parameter>- Parameterタイプ対応:
"polymorphic_type_conversion_mode=<value>"string
mongosqldが複数のデータ型で指定されたドキュメントフィールドを評価する方法を決定します。指定可能な値は、off、fast、safeです。これらの値の詳細については、「 システム変数 」を参照してください。"type_conversion_mode=<value>"string
mongosqldがデータ型を変換するのに使用するモードを指定します。 BI Connector はデフォルトで独自のモード(mongosql)を使用します。指定可能な値はmongosqlとmysqlです。これらの値の詳細については、「 システム変数 」を参照してください。次の例では
mongosqld--setParameterを起動し、 オプションを使用して タイプ変換モードを指定しています。mongosqld --setParameter "type_conversion_mode=mongosql"
構成ファイル
mongosqldYAML構成ファイルを使用して を構成できます。このファイルには、次の選択肢に記載されている設定が含まれている場合があります。
注意
構成ファイルの展開ディレクティブを使用すると、外部から取得した構成値をロードすることができます。セキュリティ証明書やパスワードなどの機密情報はぼかして表示されます。
展開ディレクティブの使用の詳細については、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 には、 プロセスがMongoDBにクエリを送信するために使用可能なシステムメモリの量を制御するための次のオプションが用意されています。これらの制限には、 BI Connector がデータ構造のオーバーヘッドなどの他の目的で使用するメモリは含まれないため、 BI Connectormongosqld が使用するメモリの合計量はこれらのオプションで設定された制限よりも多くなります。
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 | ポート コンポーネント | ||
ブール値 | 次の逆: | ||
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 スキーマ ファイルによる
--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 という名前のデータベースを使用してスキーマ情報を保存し、--schemaMode をauto に設定します。
mongosqld --schemaSource sampleDb --schemaMode auto
重要
mongosqldauthenticationで が有効になっている場合、認証されたユーザーは指定された--schemaSource データベースに対する 書込み特権を持っている必要があります。 ロールの詳細については、「 組み込みロールreadWrite 」を参照してください。
データの再サンプリング間隔の指定
オプションを使用して、 --schemaRefreshIntervalSecsmongosqldがデータを再サンプリングしてスキーマを再生成する間隔を秒単位で指定します。このオプションのデフォルト値は0mongosqld であり、 はデータを再サンプリングしません。
で再サンプリング間隔を設定し、かつ--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クライアントに渡します。例、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 オプション | 動作 | |||
|---|---|---|---|---|---|
スタンドアロン スキーマ |
|
以下に例を挙げます。 詳細については、「スタンドアロン スキーマ モード(キャッシュされたサンプリング)」を参照してください。 | |||
カスタム スキーマ |
|
以下に例を挙げます。 | |||
Auto Schema |
| ユーザー指定のスキーマ データベースでスキーマ データをサンプリングして永続化します。 以下に例を挙げます。 詳細については、「自動スキーマ モード(MongoDB でのスキーマの永続化)」を参照してください。 |
無効な構成
次のmongosqld オプション構成は無効であり、スタートアップ時にエラーが発生します。
モード | mongosqld オプション | 動作 |
|---|---|---|
スタンドアロン ライター(無効) |
| この構成はスタンドアロンの インスタンスでは無効であり、 |
クラスター化されたサンプリング リーダー(無効) |
| MongoDBレプリカセットまたはシャーディングされたクラスターで使用する場合、この構成は無効です。スキーマデータの保存用データベースが で指定されている場合、クラスター全体で一貫性が維持されるように、 |