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

スキーマでのカラムの長さを設定

このタスクについて

スキーマの長さ設定は次の2つの目的で使用できます。
  • データベーステーブルの作成時にテーブルカラムの長さを設定する。
  • tSchemaComplianceCheckによって受信データを検証する。

このセクションでは、スキーマでの長さ設定を使ってデータベーステーブルのカラムの長さを設定する例を示します。tSchemaComplianceCheckを使ったデータ検証の詳細は、データを検証をご覧ください。

スキーマを使ってデータベーステーブルカラムの長さを設定

About this task

このトピックのジョブでは、データベーステーブルの作成時にスキーマカラムの長さ設定を使ってMySQLデータベーステーブルカラムの長さを設定する方法を示します。このジョブを実行するためには、必要な権限を持つ有効なMySQLユーザーアカウントが必要です。

デザインワークスペースでのジョブ。

次のステップに従い、ジョブを設定して実行します。

Procedure

  1. Talend Studioを起動し、空の標準ジョブを作成します。
  2. [Palette] (パレット)からtFixedFlowInputとtMysqlOutputをワークスペースにドラッグ&ドロップします。
  3. [Row] (行) > [Main] (メイン)接続を使用して2つのコンポーネントを接続します。
  4. tFixedFlowInputコンポーネントをダブルクリックして[Basic settings] (基本設定)ビューを開きます。
    1. [Edit schema] (スキーマを編集)の横にある[...]ボタンをクリックしてスキーマエディターを開き、カラム(この例ではtestColumn)を追加して[Type] (タイプ)Stringに、[Length] (長さ)3に設定します。
      [スキーマ]エディター。
    2. [Use Single Table] (単一テーブルを使用)を選択し、[Values] (値)テーブルに文字列(この例ではabcdefg)を入力します。
    3. 他のオプションはそのままにしておきます。

    このコンポーネントによって、作成するデータベーステーブルに書き込む文字列(つまりabcdefg)が設定されます。文字列の長さは7で、コンポーネントスキーマでのカラムの長さは3です。

    コンポーネントの[基本設定]ビュー。
  5. tDBOutputコンポーネントをダブルクリックして[Basic settings] (基本設定)ビューを開きます。
    1. 対応するフィールドにユーザーアカウントの認証情報を入力します。
    2. [Sync columns] (カラムを同期) をクリックし、スキーマをtFixedFlowInput_1コンポーネントのスキーマと同期させます。
    3. [Action on table] (テーブルのアクション)ドロップダウンリストから[Drop table if exists and create] (テーブルが存在する場合はドロップして作成)を選択します。
      テーブルが存在しないことが確実であれば、[Create table if does not exist] (テーブルが存在しない場合は作成)オプションを選択することもできます。
    4. [Action on data] (データでのアクション)ドロップダウンリストで[Insert] (挿入)を選択します。
    5. 他のオプションはそのままにしておきます。

    このコンポーネントによって、テーブルが作成され、受信データがそのテーブルに挿入されます。

    コンポーネントの[基本設定]ビュー。
  6. F6を押してジョブを実行します。

    実行結果は次の図のようになり、データが長すぎるというエラーが表示されます。これは、書き込む文字列の長さ(つまり7)がカラムの長さ(つまり3)より大きいことが原因です。

    実行結果。
  7. どちらのコンポーネントでもスキーマカラムの長さを7に変更し、ジョブを再実行します。
    [スキーマ]エディター。

    ジョブが正しく実行され、文字列が適切にテーブルに書き込まれたことがわかります。

Results

スキーマでの長さの設定は、データベーステーブルの作成時に影響します。これによって、データベーステーブルにある対応カラムの長さが決定します。

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

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