データをMongoDBにアップサート
手順
- tMongoDBConnectionをダブルクリックして、[Basic settings] (基本設定)ビューを開きます。
- [DB Version] (バージョン)リストから、使用しているMongoDBバージョンを選択します。
-
[Server] (サーバー)および[Port] (ポート)フィールドに、接続の詳細を入力し ます。
[Database] (データベース)フィールドに、MongoDBデータベースの名前を入力します。
-
tFixedFlowInputをダブルクリックして、[Basic settings] (基本設定)ビューを開きます。
[Mode] (モード)エリアで[Use Inline Content (delimited file)] (インラインコンテンツを使用: 区切りファイル)を選択します。[Content] (コンテンツ)フィールドに、MongoDBデータベースをアップサーティングするためのデーターを入力します。たとえば、以下のようにします:
1;Andy;Open Source Outlook;Open Source,Talend;Talend, the leader of the open source world... 2;Andy;Data Integration Overview;Data Integration,Talend;Talend, the leading player in the DI field... 3;Anderson;ELT Overview;ELT,Talend;Talend, the big name in the ELT circle... 4;Andy;Big Data Bang;Big Data,Talend;Talend, the driving force for Big Data applications...
上に示したように、3番目のレコードの作成者は変更され、4番目のレコードは新しくなっています。 -
tMongoDBOutputコンポーネントをダブルクリックして、[Basic settings] (基本設定)ビューを開きます。
[Use existing connection] (既存の接続を使用)と[Die on error] (エラー発生時に強制終了)チェックボックスをオンにします。[Collection] (コレクション)フィールドに、コレクションの名前blogを入力します。[Action on data] (データでのアクション)リストから[Upsert] (アップサート)を選択します
-
[Edit schema] (スキーマを編集)の横にある[...]ボタンをクリックし、スキーマエディターを開きます。
-
[+]ボタンをクリックすると右の部分に、[id]、[author] (作成者)、[title] (タイトル)、[keywords] (キーワード)、[contents] (コンテンツ)の5つのカラムが、それぞれ[Integer] (整数)および[String] (文字列)のタイプで入力されます。
をクリックして、すべてのカラムを入力テーブルにコピーします。[OK]をクリックしてエディターを閉じます。
-
[Advanced Settings] (詳細設定)ビューで[Generate JSON Document](JSON ドキュメントを生成)チェックボックスをオンにします。
[Remove root node] (ルートノードを削除)チェックボックスをオンにします。
-
[Configure JSON Tree] (JSONツリーを設定)の横にある[...]ボタンをクリックして、構成インターフェイスを開きます。
-
ノードrootTagを右クリックし、コンテキストメニューから[Add Sub-element] (サブ要素の追加)を選択します。
表示されるダイアログボックスで、[Data node] (デ ータノード)の[data] (データ)を入力します:[OK]をクリックしてウィンドウを閉じます。この操作を繰り返して、[query] (クエリー)を[Query node] (クエリーノード)として定義します。ノード[data] (データ)を右クリックし、コンテキスト メニューから [Set As Loop Element] (ループ要素として設定)を選択します。情報メモ警告:
これらのノードは、アップデートとアップサートのアクションに必須です。これらはデータベースには保管されませんが、アップデートとアップサートのアクションを有効にすることを目的としています。
-
[Schema list] (スキーマリスト)の下にあるカラムをすべて選択し、dataノードに配置します。
表示されるウィンドウで、[Create as sub-element of target node] (ターゲットノードのサブ要素として作成)を選択します。[OK]をクリックしてウィンドウを閉じます。この操作を繰り返して、[Query] (クエリー)ノードの下の[Schema list] (スキーマリスト)からidカラムを削除します。
-
[data] (データ)の下のノードidを右クリックし、コンテキストメニューから[Add Attribute] (属性の追加)を選択します。
表示されるダイアログボックスで、属性名としてtypeと入力します。[OK]をクリックしてウィンドウを閉じます。idの下のノード@typeを右クリックし、コンテキストメニューから[Set A Fix Value] (修正値の設定)を選択します。表示されるダイアログボックスで、属性値として[integer] (整数)を入力し、id値がデータベースに整数として保存されていることを確認します。[OK]をクリックしてウィンドウを閉じます。この操作を繰り返して、 [Query] (クエリー)の下の idノードにこの属性を設定するために使われます。[OK]をクリックして、[JSON Tree configuration] (JSONツリー構成)インターフェイスを閉じます。
-
tMongoDBInputをダブルクリックして 、[Basic settings] (基本設定)ビューを開きます。
[Use existing connection] (既存の接続を使用)チェックボックスをオンにします。[Collection] (コレクション)フィールドに、コレクションの名前blogを入力します。[Edit schema] (スキーマを編集)の横にある[...]ボタンをクリックし、スキーマエディターを開きます。[+]ボタンをクリックすると、id、author、title、keywords、contentsの5列のカラムが、それぞれ[IntegerおよびStringのタイプで入力されます。[OK]をクリックしてエディターを閉じます。カラムは[Mapping] (マッピング)エリアの左側に表示されるようになります。[author] (作成者)、[title] (タイトル)、[keywords] (キーワード)、[contents] (コンテンツ)の4列のカラムについて、適切な位置からデータを取得できるように、親ノードの[post] (投稿)を入力します。
-
tLogRowをダブルクリックして、[Basic settings] (基本設定)ビューを開きます。
[Mode] (モード)エリアで、[Table (print values in cells of a table] (テーブル(テーブルのセルの出力値))を選択すると表示が見やすくなります。