【Talend目的別howto】02MySQLのテーブルを読み込んでログ出力する処理を作る

MySQLのテーブルを読み込んでコンソールに出力する処理を構築してみましょう。

目次

1.データベースの準備

まずデータベースの準備をしましょう。

1)テスト用データベース、テーブルの作成

MySQLにはサンプル用のデータベースが予め用意されていますが、項目数やデータの行数が多いのでちょっと確認が大変です。
古くからのOracleではお馴染みのscottスキーマのempテーブルを再現して使用することにします。
以下のSQLをコピペして実行してください。

CREATE DATABASE SCOTT;
USE SCOTT;

2)テスト用テーブルの作成

CREATE TABLE EMP
(EMPNO DECIMAL(4) ,
ENAME varchar(10),
JOB varchar(9),
MGR DECIMAL(4),
HIREDATE DATE,
SAL DECIMAL(7,2),
COMM DECIMAL(7,2),
DEPTNO DECIMAL(2) );

INSERT INTO EMP VALUES
(7369,’SMITH’,’CLERK’,7902,str_to_date(’17-12-1980′,’%d-%m-%Y’),800,NULL,20);
INSERT INTO EMP VALUES
(7499,’ALLEN’,’SALESMAN’,7698,str_to_date(’20-2-1981′,’%d-%m-%Y’),1600,300,30);
INSERT INTO EMP VALUES
(7521,’WARD’,’SALESMAN’,7698,str_to_date(’22-2-1981′,’%d-%m-%Y’),1250,500,30);
INSERT INTO EMP VALUES
(7566,’JONES’,’MANAGER’,7839,str_to_date('2-4-1981′,’%d-%m-%Y’),2975,NULL,20);
INSERT INTO EMP VALUES
(7654,’MARTIN’,’SALESMAN’,7698,str_to_date(’28-9-1981′,’%d-%m-%Y’),1250,1400,30);
INSERT INTO EMP VALUES
(7698,’BLAKE’,’MANAGER’,7839,str_to_date('1-5-1981′,’%d-%m-%Y’),2850,NULL,30);
INSERT INTO EMP VALUES
(7782,’CLARK’,’MANAGER’,7839,str_to_date('9-6-1981′,’%d-%m-%Y’),2450,NULL,10);
INSERT INTO EMP VALUES
(7788,’SCOTT’,’ANALYST’,7566,str_to_date(’13-JUL-87′)-85,3000,NULL,20);
INSERT INTO EMP VALUES
(7839,’KING’,’PRESIDENT’,NULL,str_to_date(’17-11-1981′,’%d-%m-%Y’),5000,NULL,10);
INSERT INTO EMP VALUES
(7844,’TURNER’,’SALESMAN’,7698,str_to_date('8-9-1981′,’%d-%m-%Y’),1500,0,30);
INSERT INTO EMP VALUES
(7876,’ADAMS’,’CLERK’,7788,str_to_date(’13-JUL-87′)-51,1100,NULL,20);
INSERT INTO EMP VALUES
(7900,’JAMES’,’CLERK’,7698,str_to_date('3-12-1981′,’%d-%m-%Y’),950,NULL,30);
INSERT INTO EMP VALUES
(7902,’FORD’,’ANALYST’,7566,str_to_date('3-12-1981′,’%d-%m-%Y’),3000,NULL,20);
INSERT INTO EMP VALUES
(7934,’MILLER’,’CLERK’,7782,str_to_date(’23-1-1982′,’%d-%m-%Y’),1300,NULL,10);

これで今回必要なテーブルが準備できました。

 

スポンサードサーチ

2.ジョブを作成する

Talendを起動してリポジトリから「ジョブ」を右クリックして「ジョブの作成」をクリックします。

新規ジョブのダイアログが表示されますので「名前」「目的」「説明」を入力して「Finish」をクリックします。

 

 

スポンサードサーチ

3.コンポーネントの配置

1)CSV読み込みのコンポーネント配置「tDBInput」

①「tDBInput」の配置

DB(Table)を読み込むコンポーネントは「tDBInput」を使います。

「コンポーネントパレット」→「データベース」→「DB Specifics」より「tMysqlInput」をデザインワークスペースにドロップします。
この時実際にドロップされるコンポーネントは「tDBInput」で、実体はMySQLで初期設定された「tDBInput」です。

②「tDBInput」の設定

①配置したコンポーネント「tDBInput」をクリックします。

②「コンポーネント」タブをクリックします。

③「基本設定」をクリックします。

④コンポーネントのプロパティを入力していきます。

コンポーネントの設定値

【基本設定】
●DataBase        :MySQL
●DBバージョン       :”,”
●ホスト         :"localhost"
●ポート         :”3306”
●データベース      :”scott”
●ユーザー名       :"root"
●パスワード       :”パスワードを入力”(右にある「…」ボタンを押してクォーテーションで
囲う事
●テーブル名       :"emp"
●クエリ         :"select * from emp"【詳細設定】
●パラメータ       :"noDatetimeStringSync=true&serverTimezone=JST&useSSL=false&allowPublicKeyRetrieval=true"
(初期値のままだとTimeZoneやSSLでエラーとなる)

次にスキーマ定義を行います。
スキーマの編集の隣にあるボタンをクリックします。

スキーマの編集ダイアログが開きますので以下のようにテーブル定義を入力していきます。
「+」ボタンで行が追加できます。

いちいち手で打ち込むのは大変です。
実際のテーブルから定義を取り込む方法もあります。

後日記事にしたいと思います。

4.実行する

「実行(ジョブ Lesson02)」→「実行」をクリックするとコンパイル後に実行されます。

正常に処理されテーブルの内容が出力されました。

 

 



4.Talend逆引き

Posted by garnet