Docs Menu
Docs Home
/
BI Connector
/

自動スキーマ モード(MongoDB でのスキーマの永続化)

項目一覧

  • Overview
  • スキーマを再生成する
  • 永続化スキーマのユーザー権限

--schemaSourceオプションは、スキーマ ストレージ用に接続された MongoDB インスタンス上の特定のデータベースを使用するようにmongosqldに指示します。 mongosqldでは、スキーマ ストレージに使用する新しいデータベースを作成するか、既存のデータベースを使用できます。

スキーマ ストレージに過去に使用された既存のデータベースを指定する場合、 --schemaModeオプションによって、 mongosqldが指定されたデータベースに新しいスキーマ データを書込むか、読み取りのみを行うかが決まります。 現在存在しないデータベースを指定する場合は、 --schemaModeautoに設定する必要があります。

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

mongosqld --schemaSource sampleDb --schemaMode auto

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

デフォルトでは、 mongosqldはスキーマ生成後にデータを自動的に再サンプリングしません。 --schemaRefreshIntervalSecsオプションを指定すると、 mongosqldにデータを自動的に再サンプリングし、固定スケジュールでスキーマを再生成するように指示します。

スキーマの 1 回限りの更新を強制するには、SQL クライアントから FLUSH SAMPLE コマンドを使用します。

MongoDB インスタンスが認証を使用する場合は、キャッシュされたサンプリングで説明されている権限に加えて、指定されたスキーマ データベースに対する書込み権限を持つ MongoDB ユーザーを指定する必要があります。

永続化スキーマでmongosqldを実行するために必要な権限を持つユーザーを作成するには、「キャッシュされたサンプリングのユーザー権限 」で説明されているように、必要な最小限の権限を持つカスタムロールを作成するか、組み込みの readAnyDatabaseロールを使用します。 いずれの場合も、指定されたスキーマ データベースに対する書込み (write) 権限も必要です。

db.getSiblingDB("admin").createUser(
{
user: "<username>",
pwd: "<password>",
roles: [
{ "role": "readAnyDatabase", "db": "admin" },
{ "role": "readWrite", "db": "<dbname>" }
]
}
)

次の例では、パスワードmyPassを使用するbicUserという名前のユーザーが、 schemaDbというスキーマ データベースから読み取りと更新を行うための認証情報を提供します。

mongosqld --auth -u bicUser -p myPass --schemaSource schemaDb --schemaMode auto

戻る

スタンドアロン スキーマ モード(キャッシュされたサンプリング)