概要
Talendで、テストデータを作成するジョブを作ります。
レコードを作成するコンポーネントとして用意されている
tRowGenerator を使用し、SQLiteのテーブルにテストデータを登録します。
環境準備
SQLiteのインストール
SQLiteのページからWindows用のバイナリをダウンロードしてください。
SQLite Download Page
sqlite-tools-win32-x86-3270200.zip
※サンプルテーブルの作成を行いたいので、コマンドライン付きをダウンロードします。
任意のフォルダ C:\talend\sqlite
に展開します。
テーブル作成
データベース(sample.db)とテストデータ作成用のテーブル(TESTDATA)を作成します。
> cd C:\talend\sqlite
> sqlite3 sample.db
> sqlite> CREATE TABLE TESTDATA(
...> ID INT
...> ,ACCOUNT TEXT
...> ,BDATA TEXT
...> ,STATUS INT
...> ,RES TEXT);
※SQLiteは、カラムの桁数を持たないことに気付いたのですが、
今回はこのままいくことにします。
tRowGenerator でのテストデータ作成
Talendジョブ作成
DB接続のメタデータ
テストデータテーブルのカラム情報については、
1カラムずつ登録することもできますが、
メタデータから一度に登録する方法で手間を省きます。
TalendOpendStudioを起動し、上記作成したSQLiteのテーブルに接続します。
データベース接続情報を設定して、テスト接続ボタンを押下します。
ファイル:C:/talend/sqlite/sample.db
接続成功することを確認して、Finishボタンを押下します。
任意の接続名(sqlite3)が作成されました。
任意の接続名(sqlite3)を選択、右クリックして、スキーマの取得を行います。
コンポーネントからメタデータの使用
ジョブを作成し、「tSQLiteconnection」コンポーネントを追加します。
プロパティタイプに、リポジトリを選択し作成したメタデータからSQLiteを選択します。
tRowGeneratorの設定
「tRowGenerator」コンポーネントを追加し、スキーマにメタデータから
TESTDATAスキーマを選択します。
作成する行数は、「生成する行数」で指定します。
カラム | タイプ | 関数 | 環境変数 | 備考 |
---|---|---|---|---|
ID | int | Numeric.sequence (String int,int) |
「sequence identifier=s1」 「start value=1」 「step=1」 |
連番を設定 |
ACCOUNT | String | カスタマイズ パラメータ |
"ACOUNT" + String.format( "%06d", Numeric.sequence("s2",1,1)) |
先頭に「ACCOUNT」という文字列と 6桁連番をゼロ埋め |
BDATE | String | カスタマイズ パラメータ |
TalendDate.formatDate("yyyy-MM-dd", TalendDate.getRandomDate("2017-01-01","2018-12-31") ) |
指定期間のランダムな日付を設定 |
STATUS | int | Numeric.sequence (String int,int) |
「min value=>0」 「max=>2」 |
最小値と最大値を設定 |
RES | String | TalendString. getAsciiRandomString(int) |
「length=>6」 | ランダムな文字列を設定 |
結果は、プレビューや、tLogRowコンポーネントで確認できます。
※デフォルトで選択できる関数は、スキーマのタイプによって制限があります。
一覧の一番上にある「・・・」を選択するとカスタマイズパラメータとして
式ビルダで、自由に関数を設定することができます。
使用できる関数は、ルーチン一覧 を参考にしてください
SQLiteへの登録
「tRowGenerator」コンポーネントで作ったレコードを
「tSQLiteOutput」と「tSQLiteCommit」コンポーネントを使ってTESTDATAテーブルに登録します。
まとめ
下記のレコードが、登録されました。
sqlite> select * from TESTDATA;
1|ACOUNT000001|2018-06-09|1|0kCEtY
2|ACOUNT000002|2017-02-28|2|yAFV18
3|ACOUNT000003|2017-10-20|0|RAlhVv
4|ACOUNT000004|2017-07-21|2|f1YKEZ
5|ACOUNT000005|2017-08-27|2|yt84HR
6|ACOUNT000006|2017-01-06|0|GrLCFa
7|ACOUNT000007|2017-05-07|1|OVs3ZO
8|ACOUNT000008|2018-11-11|0|o815fV
9|ACOUNT000009|2017-08-05|1|flR0ne
10|ACOUNT000010|2018-09-30|2|yKJuvb
sqlite>
関数になれると、テストデータ作りが、かなり簡単になりそうですね。
参照記事
SQLiteコマンドラインツールのダウンロードとインストール
手間がかかるテストデータもTOSを使えばノープログラミングで作成できる
サンプルデータを持ったテーブルを簡単に作成する
ルーチン一覧