メイン コンテンツをスキップする

親/子テーブルにデータを挿入

次のジョブは、親テーブル Table1を使用して2つの子テーブルNameおよびBirthdayを生成するという複数テーブルの挿入を行う上級データベースユーザー専用です。

Talendでサポートされているテクノロジーの詳細は、Talendコンポーネントをご覧ください。

  • Access 2007で、Database1という名前のAccessデータベースを作成します。

  • Accessデータベースが作成されたら、2つのカラム見出しNameBirthdayを持つTable1という名前のテーブルを作成します。

Studio Talend Integration パースペクティブに、ジョブはtAccessConnectiontAccessCommittAccessInputtAccessOutput tAccessCloseを含む12のコンポーネントを必要とします。

  • 以下のコンポーネントを[Palette] (パレット)からデザインワークスペースにドロップします: tFileListtFileInputDelimitedtMaptAccessOutput (x2)、tAccessInput (x2)、tAccessCommittAccessClosetLogRow (x2)。

  • [Iterate] (反復処理)リンクを使ってtFileListコンポーネントを入力ファイルコンポーネントに接続します。処理されるファイルの名前がグローバル変数を使用してtFileListディレクトリーから動的に入力されます。

  • tFileInputDelimitedコンポーネントをtMapコンポーネントに接続し、この2つの出力Accessコンポーネントの間にフローをディスパッチします。メインデータフローを表すこれらの各接続に、[Row] (行)リンクを使用します。

  • ファイルの取得元となるディレクトリーなど、tFileListコンポーネントのプロパティを設定するために使われます。

  • tAccessConnectionコンポーネントを追加し、それをこのジョブのスターターコンポーネントに接続します。この例では、tFileListコンポーネントは、OnComponentOkリンクを使用して実行順序を定義します。

  • tAccessConnectionコンポーネントビューで、接続の詳細を手動で設定するか、Metadata DB接続エントリーとして一元的に保存する場合は[Repository] (リポジトリー)から取得します。メタデータの詳細は、Talend Studioでメタデータを管理をご覧ください。

  • tFileInputDelimitedコンポーネントの[Basic settings] (基本設定)ビューで、 [Ctrl]+[Space]バーを押して変数リストにアクセスします。[File Name] (ファイル名)フィールドをグローバル変数tFileList_1.CURRENT_FILEPATHに設定します。変数の使い方は、ジョブまたはルートで変数を使用をご覧ください。

  • 残りのフィールドを通常どおりに設定し、ファイルストラクチャーに基づいて行およびフィールドの区切りを定義します。

  • 次に、[Edit schema] (スキーマを編集)ダイアログボックスを使用してスキーマを手動で設定するか、[Repository] (リポジトリー)からスキーマを選択します。処理するデータの性質に基づいて、データ型が正しく設定されていることを確認します。

  • tMap出力エリアで、2つの出力テーブルを追加します。1つはNameというテーブルをNameテーブルに、2番目はBirthdayというテーブルをBirthdayテーブルに追加します。tMapコンポーネントの詳細は、tMap操作をご覧ください。

  • [Input] (入力)エリアからNameカラムをドラッグし、Nameテーブルにドロップします。

  • [Input] (入力)エリアからBirthdayカラムをドラッグし、Birthdayテーブルにドロップします。

  • 次に出力行リンクを接続して、関連するDB出力コンポーネントにフローを正しく配分するようにします。

  • tAccessOutputコンポーネントの[Basic settings] (基本設定)ビューで、[Use an existing connection] (既存の接続を使用)チェックボックスをオンにして、tAccessConnectionの詳細を取得します。

  • 正しいテーブルに対応するように[Table] (テーブル)名を設定するために使われます。この例ではNameまたはBirthdayのいずれかになります。

  • [Action on table] (テーブルでのアクション)ドロップダウンリストからDefaultを選択します。これは、テーブルが既に存在し、テーブルに対して操作が必要ないためです。

  • 両方の出力コンポーネントのデータに対して[Action on data] (データでのアクション)として[Insert] (挿入)を選択します。

  • [Sync columns] (カラムを同期)をクリックして、tMapのスキーマセットを取得します。

  • 次に、OnComponentOkリンクを使用して最初のtAccessOutputコンポーネントを最初のtAccessInputコンポーネントに接続します。

  • tAccessInputコンポーネントの[Basic settings] (基本設定)ビューで、[Use an existing connection] (既存の接続を使用)チェックボックスをオンにして、配分されたデータフローを取得します。次に、[Edit schema] (スキーマを編集)ダイアログボックスを使用してスキーマを手動で設定します。

  • それに応じて[Table Name] (テーブル名)を設定するために使われます。tAccessInput_1では、これはNameになります。

  • [Guess Query] (クエリーを推測)をクリックします。

  • [Row] (行) > [Main] (メイン)リンクを使用して、各tAccessInputコンポーネントをtLogRowコンポーネントに接続します。各tLogRowコンポーネントの[basic settings] (基本設定)ビューで、[Mode] (モード)フィールドの[Table] (テーブル)を選択します。

  • トランザクションコミットでジョブを終了するために、 デザインワークスペースのtFileListコンポーネントの下にtAccessCommitコンポーネントを追加し、OnComponentOkリンクを使用してそれらを相互に接続します。

  • tAccessCommitコンポーネントの[basic settings] (基本設定)ビューで、[Component list] (コンポーネントリスト)から使用する接続を選択します。このシナリオではtAccessConnection_1です。

  • ジョブを保存し、[F6]を押して実行します。

NameテーブルとBirthdayテーブルを生成するために、親テーブルTable1が再利用されます。

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

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