リジェクトリンクを使用してエラーデータを取得する
このシナリオでは、顧客ファイルからMySQLデータベーステーブルへの移行を実行し、[Reject] (リジェクト)リンクを使用してエラーデータをCSVファイルにリダイレクトする、コンポーネント4つのジョブについて説明します。
Talendでサポートされているテクノロジーの詳細は、Talendコンポーネントをご覧ください。
-
移行する顧客ファイルメタデータを[Repository] (リポジトリー)で選択し、ワークスペースにドロップします。[Components] (コンポーネント)ダイアログボックスでtFileInputDelimitedを選択し、[OK]をクリックします。コンポーネントプロパティが自動的に入力されます。
-
顧客ファイルに関する情報を [Repository] (リポジトリー)の[Metadata] (メタデータ)ノードの下に保存していない場合には、tFileInputDelimitedコンポーネントをファミリー[File] (ファイル) > [Input] (入力)から[Palette] (パレット)にドロップし、そのプロパティを[Component] (コンポーネント)タブに手動で入力します。
-
[Palette] (パレット)で、tMapを[Processing] (処理中)ファミリーからワークスペースにドロップします。
-
[Repository] (リポジトリー)で[Metadata] (メタデータ)ノード、次に[Db Connections] (データベース接続)ノードを展開し、必要な接続を選択してデータを目的のデータベースに移行します。ワークスペースにドロップします。[Components] (コンポーネント)ダイアログボックスでtMysqlOutputを選択し、[OK]をクリックします。データベース接続のプロパティが自動的に入力されます。
-
データベース接続の詳細を[Repository] (リポジトリー)の[Db Connections] (データベース接続)ノードの下に保存していない場合は、tMysqlOutputを[Databases] (データベース)ファミリーから[Palette] (パレット)にドロップし、[Component] (コンポーネント)タブにプロパティを手動で入力します。
詳細は、Talend Studioユーザーガイドをご覧ください。
-
[Palette] (パレット)で、[File] (ファイル) > [Output] (出力)ファミリーからtFileOutputDelimited を選択し、ワークスペースにドロップします。
-
[customers] (顧客)コンポーネントをtMapコンポーネントにリンクし、[Row Main] (行メイン)リンクでtMapとLocalhostをリンクします。この2番目のリンクにoutという名前を付けます。
-
[Row] (行) > [Reject] (リジェクト)リンクを使用して、LocalhostをtFileOutputDelimitedにリンクします。
-
[customers] (顧客)コンポーネントをダブルクリックして、[Component] (コンポーネント)ビューを開きます。
-
[Property Type] (プロパティタイプ)リストで[Repository] (リポジトリー)を選択し、[...]ボタンをクリックして、ファイルへの接続を含むメタデータを選択します。[Built-in] (組み込み)モードを選択してフィールドに手動で入力することもできます。
-
[File Name] (ファイル名)フィールドの横にある[...]ボタンをクリックし、使用するファイルのパスと名前を入力します。
-
[Row] (行)フィールドおよび[Field Separator] (フィールド区切り)フィールドで、逆コンマの間にファイルで使用する行とフィールド区切りを入力します。
-
[Header] (ヘッダー)、[Footer] (フッター)、[Limit] (制限)の各フィールドに、無視するヘッダーとフッターの数と、処理をそこまでに制限する上限の行数を入力します。
-
[Repository] (リポジトリー)の[Metadata] (メタデータ)ノードの下に保存されている場合は、[Schema] (スキーマ)リストで[Repository] (リポジトリー)を選択し、[...]ボタンを選択して、ファイルのスキーマを選択します。[Edit schema] (スキーマを編集)フィールドの横にある[...]ボタンをクリックし、スキーマを手動で設定することもできます。
スキーマは次のとおりです。
-
tMapコンポーネントをダブルクリックして、そのエディターを開きます。
-
左側のテーブルで、id、CustomerName、CustomerAddress、idSate、id2、RegTime、およびRegisterTimeの各カラムを選択し、右側のoutテーブルにドロップします。
-
[Schema editor] (スキーマエディター)エリアのtMapエディターの下部にある右側のテーブルで、エラーの発生するCustomerNameカラムの長さを28に変更します。このように設定することで、長さが28文字を超えるデータはエラーを発生させます。エラーは[Reject] (リジェクト)リンクで取得できます。
-
[OK]をクリックします。
-
ワークスペースで出力Localhostコンポーネントをダブルクリックし、その[Component] (コンポーネント)ビューを表示します。
-
[Property Type] (プロパティタイプ) リストで[Repository] (リポジトリー)を選択し、[...]ボタンをクリックして、データベースメタデータへの接続を選択します。接続の詳細が自動的に入力されます。[Built-in] (組み込み)モードを選択してフィールドを手動で設定することもできます。
-
[Table] (テーブル)フィールドに、作成するテーブルの名前を入力します。このシナリオではcustomers_dataという名前にしています。
-
[Action on data] (データでのアクション)リストで、[Create table] (テーブルの作成)オプションを選択します。
-
[Sync columns] (カラムを同期)ボタンをクリックして、先行コンポーネントからスキーマを取得します。
-
[Die on error] (エラー発生時に強制終了)チェックボックスは必ずオフにしておきます。これは、作成したエラーによってジョブの実行が妨げられないようにするためです。
-
[Component] (コンポーネント)ビューの[Advanced settings] (詳細設定) タブをクリックして、コンポーネントの詳細パラメーターを設定するために使われます。
-
行を一括で挿入するための[Extend Insert] (挿入の拡張)チェックボックスはオフにします。このオプションが[Reject] (リジェクト)リンクには対応していないためです。
-
tFileOutputDelimited コンポーネントをダブルクリックして、[Component] (コンポーネント)ビューでそのプロパティを設定するために使われます。
-
[File name/Stream] (ファイル名/ストリーム)フィールドの横にある[...]ボタンをクリックし、出力ファイルのパスと名前を入力します。
-
[Sync columns] (カラムを同期)ボタンをクリックし、前のコンポーネントのスキーマを取得します。
-
ジョブを保存し、F6を押して実行します。
エラーのあるデータがエラータイプと共に区切り付きファイルに送信されます。ここで[Data truncation] (データの切り捨て)が表示されます。