このタスクについて
このトピックのジョブでは、データベーステーブルの作成時にスキーマカラムの長さ設定を使ってMySQLデータベーステーブルカラムの長さを設定する方法を示します。このジョブを実行するためには、必要な権限を持つ有効なMySQLユーザーアカウントが必要です。
次のステップに従い、ジョブを設定して実行します。
手順
- Talend Studioを起動し、空の標準ジョブを作成します。
- [Palette] (パレット)からtFixedFlowInputとtMysqlOutputをワークスペースにドラッグ&ドロップします。
- [Row] (行) > [Main] (メイン)接続を使用して2つのコンポーネントを接続します。
-
tFixedFlowInputコンポーネントをダブルクリックして[Basic settings] (基本設定)ビューを開きます。
-
[Edit schema] (スキーマを編集)の横にある[...]ボタンをクリックしてスキーマエディターを開き、カラム(この例ではtestColumn)を追加して[Type] (タイプ)をStringに、[Length] (長さ)を3に設定します。
- [Use Single Table] (単一テーブルを使用)を選択し、[Values] (値)テーブルに文字列(この例ではabcdefg)を入力します。
- 他のオプションはそのままにしておきます。
このコンポーネントによって、作成するデータベーステーブルに書き込む文字列(つまりabcdefg)が設定されます。文字列の長さは7で、コンポーネントスキーマでのカラムの長さは3です。
-
[Edit schema] (スキーマを編集)の横にある[...]ボタンをクリックしてスキーマエディターを開き、カラム(この例ではtestColumn)を追加して[Type] (タイプ)をStringに、[Length] (長さ)を3に設定します。
-
tDBOutputコンポーネントをダブルクリックして[Basic settings] (基本設定)ビューを開きます。
- 対応するフィールドにユーザーアカウントの認証情報を入力します。
- [Sync columns] (カラムを同期) をクリックし、スキーマをtFixedFlowInput_1コンポーネントのスキーマと同期させます。
-
[Action on table] (テーブルのアクション)ドロップダウンリストから[Drop table if exists and create] (テーブルが存在する場合はドロップして作成)を選択します。
テーブルが存在しないことが確実であれば、[Create table if does not exist] (テーブルが存在しない場合は作成)オプションを選択することもできます。
- [Action on data] (データでのアクション)ドロップダウンリストで[Insert] (挿入)を選択します。
- 他のオプションはそのままにしておきます。
このコンポーネントによって、テーブルが作成され、受信データがそのテーブルに挿入されます。
-
F6を押してジョブを実行します。
実行結果は次の図のようになり、データが長すぎるというエラーが表示されます。これは、書き込む文字列の長さ(つまり7)がカラムの長さ(つまり3)より大きいことが原因です。
-
どちらのコンポーネントでもスキーマカラムの長さを7に変更し、ジョブを再実行します。
ジョブが正しく実行され、文字列が適切にテーブルに書き込まれたことがわかります。
タスクの結果
スキーマでの長さの設定は、データベーステーブルの作成時に影響します。これによって、データベーステーブルにある対応カラムの長さが決定します。