データベースとコレクション名のマッピングとアンマップ¶
MongoDB は、データベースやコレクション名の一部として使用できない文字に関する制限やその他の制限を課しています。これらの制限事項は、MongoDB ドキュメントの MongoDB の制限としきい値 のセクションで詳しく説明しています。
STH コンポーネントによって使用されるデータベースとコレクションの名前は、サービスに割り当てられた値、サービスパス、エンティティID、エンティティ型、および属性名(選択されたデータモデルに応じて)の連結から構成され、STH コンポーネントの潜在的なユーザが MongoDB によって課せられた制限 (STH コンポーネントによって使用されるデータベース) を継承したい場合、有効になっていればデータベースとコレクションの名前を適合させる前にマッピングメカニズムが使用されます。
マッピング機構は、マッピング設定ファイル、次のスキーマまたはプロパティセットに続く JSON を含むファイルに基づいています :
serviceMappings
: サービスマッピングの配列。配列の各要素は、次のプロパティを含むオブジェクトです :originalService
: マッピングされる元のサービス名newService
: 元のサービスをマップする必要のある最終または新しいサービス名servicePathMappings
: サービスパス・マッピングの配列。配列の各要素は、次のプロパティを含むオブジェクトです :originalServicePath
: マッピングされるべき元のサービスパスnewServicePath
: 元のサービスパスをマップする最終または新しいサービスパスentityMappings
: エンティティマッピングの配列。配列の各要素は、次のプロパティを含むオブジェクトです :originalEntityId
: マップされる元のエンティティIDnewEntityId
: 元のエンティティIDをマップする必要のある最終または新しいエンティティIDoriginalEntityType
: マッピングされる元のエンティティ型newEntityType
: エンティティタイプをマッピングするべき最終または新しいエンティティ型attributeMappings
: 属性マッピングの配列。配列の各要素は、次のプロパティを含むオブジェクトですoriginalAttributeName
: マッピングされる元の属性名newAttributeName
: 元のエンティティ名をマップする必要のある最終または新しいエンティティ名originalAttributeType
: マップされる元の属性型newAttributeType
: 元の属性型をマップする必要のある最終または新しい属性型
次に、マッピング設定ファイルの例を示します :
{
"serviceMappings": [
{
"originalService": "testservice",
"newService": "mappedtestservice",
"servicePathMappings": [
{
"originalServicePath": "/testservicepath",
"newServicePath": "/mappedtestservicepath",
"entityMappings": [
{
"originalEntityId": "entityId",
"newEntityId": "mappedEntityId",
"originalEntityType": "entityType",
"newEntityType": "mappedEntityType",
"attributeMappings": [
{
"originalAttributeName": "attrName",
"newAttributeName": "mappedAttrName",
"originalAttributeType": "attrType",
"newAttributeType": "mappedAttrType"
}
]
}
]
}
]
}
]
}
前述のマッピングメカニズムを使用していない以前のバージョンの STH コンポーネントのデータベースおよびコレクションからの移行プロセスを容易にするために、sthDatabaseNameMapperTool
と呼ばれるコマンドラインツールを用意しました。
名前のエンコード/デコードツールを実行するには、次のコマンドを実行してください :
./bin/sthDatabaseNameMapperTool
これはコマンドのヘルプ情報を表示します :
Usage: sthDatabaseNameMapperTool [options]
Options:
-h, --help output usage information
-V, --version output the version number
-m, --map Shows a report regarding the result of the mapping process if applied to databases and collections of a specific STH instance (either the -m or -u options are mandatory)
-u, --unmap Shows a report regarding the result of the unmapping process if applied to databases and collections of a specific STH instance (either the -e or -d options are mandatory)
-f, --force Forces the mapping (-m) or unmapping (-u) process and consequently the databases will be renamed
-b, --database <databaseName> Limits the mapping or unmapping process to certain database
-c, --collection <collectionName> Limits the mapping or unmapping process to certain collection
sthDatabaseNameMapperTool
コマンドラインツールを使用すると、STH コンポーネントデータベースを分析したり、マッピングやアンマッププロセスがデータベースやコレクションに対して行う名前マッピングまたはアンマップ結果に関するレポートを取得できます。
分析レポートがうまくでき、それが本当にやりたいことであると確信できたら、-f、--force
オプションを設定して名前マッピングまたはアンマッププロセスを適用します。
sthDatabaseNameMapperTool
コマンドラインツールは、データベース名で、コレクション名で分析レポートおよびマッピングまたはマッピング解除の申請をフィルタリングすることも可能になります。