MongoDB ビューの使用
項目一覧
.drdl ファイルを使用せずに BI Connector に表示されるデータを制御する別の方法は、 ビューから読み取る です。 ビューを使用すると、ソースコレクションを取得して、表示するフィールドを選択したり、フィールド名を変更したり、データをソートしたり、集計パイプラインで実行できるあらゆる種類の変換を実行したりできます。
例
ビューを使用して、コレクションからの機密情報をリダクションし、ソース コレクションではなくビューから読み取るように BI Connector に指示できます。
mongo
shell メソッドcreateViewを使用してコレクションのビューを定義し、 mongosqld
の起動時にそのビューを指定された名前空間として使用します。
例
employees
データベース内のsalaries
という名前のコレクションを考えてみましょう。 個人を特定できる情報をすべて除外するビューをsalaries
コレクションに作成することで、BI Connector はソース コレクション内のプライベート データを破損することなく、ビューで安全にデータ分析を容易にできます。
次のコマンドは、 employees
データベース内のsalaries_redacted
という名前のビューのデータを使用してmongosqld
を起動します。
mongosqld --sampleNamespaces "employees.salaries_redacted"
MongoDB ビューでスキーマを管理する別のユースケースは、作業データセットに、BI Connector のサンプリング プロセスで除外される可能性のある、データが少ないが重要なフィールドが含まれている場合です。
すべてのドキュメントに発生する 1 つのフィールドと、時々のみ発生するフィールドを含むsparseCollection
という名前のコレクションを考えてみましょう。 コレクションの一部は次のようになります。
{ "_id" : 0, "mainField": 247 } { "_id" : 1, "mainField": 71 } { "_id" : 2, "mainField": 981 } { "_id" : 3, "mainField": 712 } { "_id" : 4, "mainField": 781, "sparseField": 1000 } { "_id" : 5, "mainField": 256 } { "_id" : 6, "mainField": 910 }
BI Connector がスキーマを作成するときにsparseField
が含まれるようにするには、 sparseField
が発生しないすべてのドキュメントでゼロが入力されるビューを作成します。
db.runCommand ( { create: "denseCollection", viewOn: "sparseCollection", pipeline: [ { $addFields: { sparseField: { $ifNull: [ "$sparseField", 0 ] } } } ] } )
mongosqld
の起動時にビューをデータソースとして使用するには、 --sampleNamespaces
オプションでビューを指定します。
mongosqld --sampleNamespaces "myDatabase.denseCollection"