メイン コンテンツをスキップする 補完的コンテンツへスキップ

MongoDB NoSQLデータベース - インポート

Availability-note AWS

ブリッジの要件

このブリッジ:
  • ドライバーを<TDC_HOME>/data/download/MIMB/にダウンロードするためには、https://repo.maven.apache.org/maven2/ やその他のツールサイトへのインターネットアクセスが必要です。

ブリッジの仕様

ベンダー MongoDB
ツール名 NoSQLデータベース
ツールバージョン 3.2
ツールのWebサイト https://www.mongodb.org/
サポートされている方法論 [NoSQLデータベース] マルチモデル、データストア(NoSQL / 階層、物理データモデル) Java API経由の
データプロファイリング
増分収集
マルチモデル収集
モデル選択のためのリモートリポジトリーの参照

仕様
ツール: Java API経由のMongoDB / NoSQL Databaseバージョン3.2
https://www.mongodb.org/をご覧ください。
メタデータ: [NoSQL Database] マルチモデル、データストア (NoSQL / 階層、物理データモデル)
コンポーネント: MongoDB バージョン11.2.0

免責事項
このインポートブリッジでは、インターネットに接続して次のサードパーティライブラリーをダウンロードする必要があります:
- オープンソースのサードパーティライブラリーをダウンロードする場合はhttps://repo.maven.apache.org/maven2/など
- その他のサードパーティソフトウェア(データベース特定のJDBCドライバーなど)は該当するサイトへ

ダウンロードされたサードパーティライブラリーは、$HOME/data/download/MIMB/に格納されています。
HTTPSが失敗した場合、インポートブリッジはHTTPを試します。
- インターネットへのアクセスにプロキシを使用している場合は、JREでそのプロキシを設定する必要があります(Miscellaneousパラメーターで -j オプションをご覧ください。)。
- インポートブリッジではインターネットにフルにアクセスできない場合は、インターネットアクセスがある別のサーバーから$HOME/data/download/MIMB/ディレクトリーをコピーします。$HOME/bin/MIMB.sh (または.bat) -dというコマンドを使えば、すべてのブリッジで使用される全サードパーティライブラリーを一度にダウンロードできます。

このインポートブリッジを実行すると、ライセンス規約の責任、およびダウンロードしたサードパーティソフトウェアライブラリーによって生じる潜在的なセキュリティの脆弱性を受け入れることになります。

概要
このインポートブリッジは、ネイティブのJavaドライバーを使ってMongoDBサーバーへのJDBC接続を確立し、物理メタデータを抽出します。

要件
ブリッジは以下のサンプルに従って各JSON属性のデータ型を割り当てます。
'_id'
{ "$oid": "50a9c951300493f64fbffdb6" } STRING (SQL_VARCHAR)

'dateExample'
{ "$date" : "2014-01-01T05:00:00.000Z"} DATE_8 (SQL_DATE)

'isoDateExample'
{ "$date" : 1491461103897 } DATE_8 (SQL_DATE)

'timestampExample'
{ "$timestamp" : { "t" : 1412180887, "i" : 1 } } TIMESTAMP (SQL_TIMESTAMP)

'stringDateExample'
"Thu Apr 06 2017 09:41:51 GMT+0300 (FLE Standard Time)" STRING (SQL_VARCHAR)

'numberLongExample'
{ "$numberLong": "7494814965" } LONG_8 (SQL_BIGINT)

'booleanSample'
true BOOLEAN_1 (SQL_BOOLEAN)

'stringSample'
"some text" STRING (SQL_VARCHAR)

'expNumberSample'
2.99792458e8 DOUBLE_10_5 (SQL_DOUBLE)

'smallNumberSample'
-1 LONG_8 (SQL_BIGINT)

'numberSample'
3 LONG_8 (SQL_BIGINT)

'floatSample'
3.141592653589793238462643383279 DOUBLE_10_5 (SQL_DOUBLE)

'rfc7493bignumber'
"9007199254740992" STRING (SQL_VARCHAR)

'expStringSample'
"2.99792458e8" STRING (SQL_VARCHAR)

'arraySample'
[1, 2, 3] array (SQL_ARRAY)

'objectEmptySample'
{} STRING (SQL_VARCHAR)

'nullSample'
null undefined

'nullStringSample'
"null" STRING (SQL_VARCHAR)

よくある質問
該当なし

制限事項
現在判明している一般的な制限事項は、https://metaintegration.com/Products/MIMB/Help/#!Documents/mimbknownlimitations.htmlをご覧ください。

サポート
トラブルシューティングパッケージを次の項目と共に提供してください。
- デバッグログ(UIまたはconf/conf.propertiesでMIR_LOG_LEVEL=6を使って設定可能)
- 利用できる場合はメタデータバックアップ(技術的理由によりこの共通オプションが実装されていないブリッジがあるものの、[その他]パラメーターで-backupオプションを使って設定可能)


ブリッジパラメーター

パラメーター名 説明 タイプ デフォルト スコープ
接続文字列 このパラメーターは他のすべての接続設定をオーバーライドします。パスワードパラメーターと連動します。連続する5つの星(*****)がパスワードのプレースホルダーとして使われます。実際のパスワードは内部でドライバーに提供されます。

例: mongodb+srv://testuser:*****@gettingstarted.kyuw2.azure.mongodb.net/admin

こちらのドキュメンテーションをご覧ください。
https://docs.mongodb.com/manual/reference/connection-string/
STRING      
ホスト コンマで区切られたサーバーURI. ポートがコロンで指定されていない場合は、デフォルトポートと想定されます。
接続のタイプには、either mongodb://とmongodb+srv://のいずれかを指定できます。デフォルトで、ブリッジは最初にmongodb://プロトコルを使って接続を試みます。

- 例:
lolly.jess:3999,lolly-backup
localhost:8887
mongodb+srv://testhost
mongodb://testhost:27017
STRING      
ユーザー 接続が確立されている側のMongoDBユーザー名です。
指定されなければ匿名が使用されます。
STRING      
パスワード 接続が確立されている側のMongoDBユーザーのパスワードです。 パスワード      
レプリカセット レプリカセット名。 STRING      
認証データベース ユーザー認証データベースを指定します。 STRING   管理者  
データベース インポートするMongoDBデータベースのリストを指定します。

リストには、セミコロンで区切られた1つまたは複数のデータベース名を含めることができます。例:
database1; database2
値が「*」の場合はアクセス可能なデータベースがすべてインポートされます。

特殊文字が含まれているむデータベース名:

- エンティティ名に一重引用符がある場合は、別の一重引用符でエスケープしてください:
data'base -> data''base

- エンティティ名またはスペースに[ * , ; . ]という特殊文字がある場合は、名前を一重引用符で囲んでください::
data;base -> 'data;base'
data*base -> 'data*base'
data.base -> 'data.base'
database -> ' database '
一重引用符で囲まれた文字はすべてそのとおりに認識されます。
REPOSITORY_SUBSET      
コレクション インポートするコレクションのサブセット。セミコロンで区切られたコレクションのリストとして表現されたものです。

”Databases"パラメーターに単一のデータベースを指定する場合は、データベース名を指定せずにコレクションのセットを入力します。例:
collection1;collection2

複数のデータベースを指定する場合は、完全修飾コレクション名を指定する必要があります。例:
database1.collection1;database2.collection2;database1.collection2

値が"*"である場合は、アクセス可能なコレクションがすべてインポートされます。

SQLのLIKE演算子で使われる構文規則を使ったスキーマ名パターン:

- 包含構文:
%を使用。例:
A%; %B; %C%; D
- Aで開始、または
- Bで終了、または
- Cを含む、または
- Dに等しい

- 除外構文:
NOTを使用。例:
A%; %B; NOT %SYS; NOT 'SYS%'
- WHERE (A%のような名前または%Bのような名前)
- and (%SYSとは異なる名前)
- and (SYS%とは異なる名前)

- 特殊文字:
一重引用符を使用。例:
OneWord%; 'Two Words%'

- コレクション名にパーセント記号がある場合はエスケープしてください:
name%name = name%%name

特殊文字を含むスキーマ名:

- エンティティ名に一重引用符がある場合は、別の一重引用符でエスケープしてください:
col'lection -> col''lection

- エンティティ名またはスペースに[ * , ; . ]という特殊文字がある場合は、名前を一重引用符で囲んでください:
col;lection -> 'col;lection'
database.col*lection -> database.'col*lection'
data,base. collection ->'data,base'.' collection '
一重引用符で囲まれた文字はすべてそのとおりに認識されます。

- 開始の数式は、現在の組み込みレベルからすべてをインポートすることを意味します:
db.*は、dbの全コレクションがインポートされることを意味します。
*.collは、collという名前の全コレクションが全データベースからインポートされることを意味します。
REPOSITORY_SUBSET      
サンプルドキュメントの数 各コレクションからランダムに取得されるサンプルドキュメントの数。デフォルト値は10です。 数値   10  
Miscellaneous はじめに
ダッシュで始まるMiscellaneousオプションを指定し、必要であればその後にパラメーターを追加できます。例:
- connection.cast MyDatabase1="MICROSOFT SQL SERVER"
該当する場合は複数回使用できるオプションもあります。例:
- connection.rename NewConnection1=OldConnection1 -connection.rename NewConnection2=OldConnection2;
オプションのリストは長い文字列になるため、${MODEL_BRIDGE_HOME}\data\MIMB\parametersにあり拡張子が.txtであるファイルからロードすることもできます。その場合、オプションはすべて、このパラメーターの唯一の値としてそのファイル内で定義されることが必要です。例:
ETL/Miscellaneous.txt

JAVA環境のオプション
-java.memory <Javaメモリの最大サイズ> (以前の-m)

64ビットJREではデフォルトで1G、またはconf/conf.properties内の設定に従います。例:
-java.memory 8G
-java.memory 8000M

-java.parameters <Javaランタイム環境コマンドラインオプション> (以前の-j)


-java.parameters -Dname=value -Xms1G
のように、-java.parametersの後ろのテキストはすべてそのままJREに渡されるため、このオプションはMiscellaneousパラメーター内の最後に来る必要があります。インターネットへのアクセスにプロキシを使用している場合は、必要なサードパーティのソフトウェアライブラリーをダウンロードできるよう、次のオプションを設定する必要があります(このオプションはhttps://repo.maven.apache.org/maven2/にアクセスするため、そして例外的にいくつかの他のツールサイトにアクセスするために不可欠です)。
注: プロキシは、(会社の)外部トラフィックをHTTPSで暗号化しながら、HTTPでプロキシにアクセスできる内部トラフィックを信頼しているものがほとんどです。この場合、HTTPSリクエストはHTTPでプロキシに到達し、プロキシはそれをHTTPSで暗号化します。
-java.parameters -java.parameters -Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=3128 -Dhttp.proxyUser=user -Dhttp.proxyPassword=pass

モデルインポートのオプション
-model.name <モデル名>

モデル名をオーバーライドをオーバーライドします。例:
-model.name "My Model Name"

-prescript <スクリプト名>

このオプションによって、ブリッジの実行前にスクリプトを実行できるようになります。
スクリプトはbinディレクトリー(またはconf/conf.propertiesのM_SCRIPT_PATHで指定)にあり、拡張子が.batか.shであることが必要です。
スクリプトのパスに親ディレクトリーの記号( .. )を含めることはできません。
スクリプトは、成功した場合は終了コードである0を、失敗した場合は別の値を返します。
例:
-prescript "script.bat arg1 arg2"

-postscript <スクリプト名>

このオプションによって、ブリッジが正しく実行された後にスクリプトを実行できるようになります。
スクリプトはbinディレクトリー(またはconf/conf.propertiesのM_SCRIPT_PATHで指定)にあり、拡張子が.batか.shであることが必要です。
スクリプトのパスに親ディレクトリーの記号( .. )を含めることはできません。
スクリプトは、成功した場合は終了コードである0を、失敗した場合は別の値を返します。
例:
-postscript "script.bat arg1 arg2"

-cache.clear

インポート前にキャッシュをクリアするため、増分収集せずにフルインポートを実行します。

モデルが変更されず、-cache.clearパラメーターが使われていない場合(増分収集)、新しいバージョンは作成されません。
モデルが変更されず、-cache.clearパラメーターが設定されている場合(増分ではなくフルソースインポート)、新しいバージョンが作成されます。

-backup <directory>

さらなるトラブルシューティングのため、入力メタデータを保存できるようにします。指定された<directory>は空であることが必要です。

-restore <ディレクトリー>

復元するバックアップ<ディレクトリー>を指定します。

データ接続オプション
使用するソースとターゲットのデータストアを参照するよう、通常はETL/DIツールとBIツールのインポートブリッジによってデータ接続が生成されます。これらのデータ接続はメタデータ管理ツールによって実際のデータストア(データベースやファイルシステムなど)への接続(メタデータスティッチング)に使われ、完全なエンドツーエンドのデータフローの来歴とインパクト分析が行われます。各データ接続の名前はインポートモデルごとに一意です。DI/BIデザインツールで使われているデータ接続名を可能な限り使用します。そうでない場合は、データベース/スキーマ名、ファイルシステムのパス、Uniform Resource Identifier (URI)など、短くても意味のある接続名が生成されます。次のオプションを使えば、接続を操作できます。これらのオプションによって、レガシーオプションである-c、-cd、-csが置き換えられます。

-connection.cast ConnectionName=ConnectionType

SQL解析のためにジェネリックデータベース接続(ODBCやJDBCなど)を正確なデータベースタイプ(ORACLEなど)にキャストします。例:
-connection.cast "My Database"="MICROSOFT SQL SERVER"
サポートされているデータストア接続タイプのリストは次のとおりです。
ACCESS
APACHE CASSANDRA
DB2/UDB
DENODO
GOOGLE BIGQUERY
HIVE
MYSQL
NETEZZA
ORACLE
POSTGRESQL
PRESTO
REDSHIFT
SALESFORCE
SAP HANA
SNOWFLAKE
MICROSOFT SQL AZURE
MICROSOFT SQL SERVER
SYBASE SQL SERVER
SYBASE AS ENTERPRISE
TERADATA
VECTORWISE
HP VERTICA

-connection.rename OldConnection=NewConnection

既存の接続を新しい名前に変更します。例:
-connection.rename OldConnectionName=NewConnectionName
既存の複数のデータベース接続の名前を変更し、新しい1つのデータベース接続に統合できます。例:
-connection.rename MySchema1=MyDatabase -connection.rename MySchema2=MyDatabase

-connection.split oldConnection.Schema1=newConnection

データベース接続を1つまたは複数のデータベース接続に分割します。
1つのデータベース接続をスキーマごとの1つの接続に分割できます。例:
-connection.split MyDatabase
すべてのデータベース接続をスキーマごとの1つの接続に分割できます。例:
-connection.split *
データベースにスキーマ名を追加することで、データベース接続を明示的に分割し、新しいデータベース接続を作成できます。例:
-connection.split MyDatabase.schema1=MySchema1

-connection.map SourcePath=DestinationPath

ソースパスをデスティネーションパスにマッピングします。これは、異なるパスが同じオブジェクト(ディレクトリーまたはファイル)をポイントしている場合にファイルシステム接続にとって便利です。
Hadoopでは、あるプロセスがHDFSの完全パスで指定されたCSVファイルに書き込む一方、別のプロセスが、デフォルトのファイル名と拡張子を持つ相対パスで指定されている同じファイルによって実装されたHiveテーブル(外部)から読み取ります。例:
-connection.map /user1/folder=hdfs://host:8020/users/user1/folder/file.csv
Linuxでは、/users/johnや/users/paulといった複数のシンボリックリンクによって、/dataのような特定のディレクトリー(またはファイル)が参照されます。例:
-connection.map /data=/users/John -connection.map /data=/users/paul
Windowsでは、M:やN:といった複数のネットワークドライブによって、C:\dataのような特定のディレクトリーが参照されます。例:
-connection.map C:\data=M:\ -connection.map C:\data=N:\

-connection.casesensitive ConnectionName...

検出されたデータストアのタイプがこの設定(Microsoft SQL ServerやMySqlなど)をサポートしている場合は、指定された接続内のオブジェクト識別子に対し、大文字と小文字を区別しないデフォルトのマッチングルールがオーバーライドされます。例:
-connection.casesensitive "My Database"

-connection.caseinsensitive ConnectionName...

検出されたデータストアのタイプがこの設定(Microsoft SQL ServerやMySqlなど)をサポートしている場合は、指定された接続内のオブジェクト識別子に対し、大文字と小文字を区別するデフォルトのマッチングルールがオーバーライドされます。例:
-connection.caseinsensitive "My Database"

-connection.level AggregationLevel

外部接続の集計レベルを指定します。例: -connection.level catalog
サポートされている値のリスト:
server
catalog
schema (デフォルト)

MONGODBのオプション

-samples.number <number>[:even|order|top]

各コレクションからランダムに取得されるサンプルドキュメントの数。サンプル数のデフォルト値は10です。デフォルトモードはtopです。
インポートモードの詳細は、'-samples'オプションのドキュメントをご覧ください。
使用法:
1. -samples.number 15
Bridgeは各コレクションから15サンプルをインポートします。

2. -samples.number 15:order
Bridgeはorderモードを使って各コレクションから15サンプルをインポートします。

-samples.mode <even|order|top>

インポートモード。デフォルト値はtopです。
次の3つのインポートモードをサポートしています:
- トップアルゴリズム
* 説明: トップアルゴリズムは、コレクションから最初のN個のドキュメント(Nは要求されたサンプルの数) を選択します。
* 注: データベース内の最初のドキュメントが常に最新であるとは限りません。

- 偶数アルゴリズム
* 説明: このアルゴリズムは、コレクション内のドキュメント総数を目的のサンプル数で割ることで、サンプル選択のための偶数間隔を決定します。たとえば100個のドキュメントがあって10個のサンプルが要求された場合、アルゴリズ ムは10個おきのドキュメント(1、10、20などの位置)を選択します。
* パフォーマンスに関する注: この方法では、コレクション内にあるドキュメントをデータベースがすべてカウントする必要があり、特に大規模なコレクションでは時間がかかることがあります。

- 順序アルゴリズム
* 説明: このアルゴリズムは、さまざまなサイズのコレクションに対応できるよう、指数関数的に増加する位置でドキュメントを選択します。たとえば、10の位置、100の位置、1000の位置といったドキュメントを選択しようとする場合もあります。要求された位置がコレクション内のドキュメント数を超える場合(たとえば999のコレクショ ン中の1000番目のドキュメントなど)、アルゴリズムは目的のサンプル数を達成するまで再帰的にステッ プを半分にします(10、5など)。
* エラー処理: アルゴリズムは、計算された位置が範囲外になると自動的に調整し、最終的なサンプルが利用可能なドキュメント数を超えないようにします。
* パフォーマンスに関する注: 大きなコレクションでよりよく動作します。

-zip <ファイルパス>

MongoDbドキュメントをJsonファイルとして保管するフォルダー。

-hadoop

key1=val1;key2=val2 to manualy set Hadoopの設定オプション.

-mask

データ値を提供せずメタデータのみを提供する場合に使用します。

-validator.description

フィールド記述があるコレクションバリデーターのストラクチャーに基づいて固定スキーマモデルをキャプチャーします。
バージョン 3.6以降、MongoDBはJSON Schema Validatorをサポートしています。これは、固定スキーマと検証に使われる検証ルールで構成されます。デフォルトの動作はバリデーターを無視することです。

-validator.all

(フィールド記述だけではなく)完全なメタデータが提供されているコレクションバリデーターのストラクチャーに基づいて、固定スキーマモデルをキャプチャーします。
バージョン 3.6以降、MongoDBはJSON Schema Validatorをサポートしています。これは、固定スキーマと検証に使われる検証ルールで構成されます。デフォルトの動作はバリデーターを無視することです。

-validator.collectiondescription

バリデーターのフィールド記述を、そのバリデーターから記述のJSONコレクションにキャプチャーします。
バージョン 3.6以降、MongoDBはJSON Schema Validatorをサポートしています。これは、固定スキーマと検証に使われる検証ルールで構成されます。デフォルトの動作はバリデーターを無視することです。

-debug.usesystem

システムコレクションをインポートします。MongoDBは、<database>.system.* ネームスペースを使うコレクションにシステム情報を保存します。このネームスペースはMongoDBが社内用に残しているものです。
デフォルトでは、これらのコレクション、ローカルデータベース、設定データベースは無視されます。

-connection.retries <value>

サーバーに接続する時の再試行回数。

-backup.data

インポートされたデータと共に、jsonファイルをバックアップフォルダーに保存します。
STRING      

 

ブリッジのマッピング

Meta Integration Repository (MIR)
メタモデル
(OMG CWM標準に基づく)
"MongoDB NoSQL Database"
メタモデル
ファイルシステム (JSON Database)
マッピングのコメント
     
DirectoryStructureModel サーバー  
名前 名前  
SystemType タイプ  
[Folder] (フォルダー) スコープ、バケット、データベース、フォルダー  
名前 名前  
StoreContent コンテナー、ドキュメント、コレクション、ファイル、ビュー  
名前 名前  
NativeType タイプ  

Meta Integration Repository (MIR)
メタモデル
(OMG CWM標準に基づく)
"MongoDB NoSQL Database"
メタモデル
ファイルシステム (JSON ファイル)
マッピングのコメント
     
属性 配列、オブジェクト、プロパティ  
説明 説明  
名前 名前  
StoreModel Jsonファイル  
名前 名前  
NativeType [ファイル Type] (ファイルタイプ)  

このページは役に立ちましたか?

このページまたはコンテンツにタイポ、ステップの省略、技術的エラーなどの問題が見つかった場合はお知らせください。