📺 Talendでの「基本的なファイル操作」
Talendを使って基本的なファイル操作を行う方法を紹介します。
📌 ファイル操作の基本的な内容
この例では、以下のファイル操作を行います:
-
ファイルの作成 (
tFileTouch
を使用) -
処理のシミュレーション (
tSleep
を使用) -
ファイルのコピー
-
ファイルの存在確認
-
ファイルの削除
これらの操作をTalendで実行する方法を見ていきましょう。
🛠 手順
1. コンテキスト変数の設定
-
まず、「globalGroup」というコンテキストグループを使用します。このグループには、いくつかの変数が設定されています。
-
これらの変数の一部は、後でファイルパスなどに使われます。
2. ファイルの作成 (tFileTouch)
-
tFileTouch コンポーネントを使って、ファイル tmpFile を作成します。
-
ファイルの場所は、Talend/data/tmp フォルダで、ファイル名は file.tmp です。
-
実行後、この場所にファイルが作成されることを確認できます。
-
3. 処理のシミュレーション (tSleep)
-
次に、tSleep コンポーネントを使って、少しの間待機します。この間、何らかの処理が行われていると仮定して、シミュレーションをします。
4. ファイルのコピー
-
次に、tFileCopy コンポーネントを使って、作成した tmpFile を outputDir にコピーします。
-
もし同じファイル名が既に存在すれば、上書きします。
-
5. ファイルの存在確認 (tFileExist)
-
tFileExist コンポーネントを使って、tmpFile が存在するかどうかを確認します。
-
存在していれば、そのファイルを削除します。
-
6. ファイルの削除
-
存在する場合、tFileDelete コンポーネントを使ってファイルを削除します。
✔️ 実行結果
-
tmpDir フォルダ内にファイル tmpFile が作成されます。
-
outputDir フォルダ内に tmpFile.tmp.out という名前でファイルがコピーされます。
-
実行が完了した後、tmpDir 内のファイルが削除されます。
コンソールやTalendのインターフェース内で、各操作が順番に実行される様子を見ることができます。
📝 まとめ
-
tFileTouch を使ってファイルを作成。
-
tSleep で処理をシミュレート。
-
tFileCopy でファイルをコピー。
-
tFileExist でファイルの存在を確認。
-
tFileDelete でファイルを削除。
このように、Talendを使えば、簡単に基本的なファイル操作を実行できます。特に、ファイルの作成、コピー、削除、存在確認などの操作は非常に直感的に設定できます。
📺 Talendでのファイル比較方法
Talendで2つのファイルを比較する方法を紹介します。ファイルが同じかどうかを確認するために、tFileCompare
コンポーネントを使用します。
📌 比較するファイル
-
address6.csvとそのコピーであるaddress6.csv.copyの2つのファイルを比較します。
-
この2つのファイルは内容が同じか異なるかを確認するものです。
-
🛠 手順
1. tFileCompare
コンポーネントの設定
-
Talend Open Studioに移動し、
tFileCompare
コンポーネントを使用します。 -
context変数を使って、比較対象のファイルとして
address6.csv
とaddress6.csv.copy
を指定します。 -
もしファイルが異なれば、その情報をコンソールに表示するようにします。
2. 比較結果の表示方法
-
結果の表示方法にはいくつかの選択肢があります。
-
コンソールに結果を出力:
-
tFileCompare
でファイルを比較した結果を、tLogRow
コンポーネントで表示します。
-
-
変数を使って比較結果を取得:
-
比較結果を表示せずに、
DIFFERENCE
というBoolean型の変数に保存できます。この変数を使うことで、ファイルが同じか異なるかを別の処理でも利用可能です。
-
-
3. 比較結果の実行
-
このジョブを実行すると、ファイルが一致している場合、コンソールに「Files are identical」というメッセージが表示されます。
-
また、
differ
の値が0になり、ファイルが一致していることが確認できます。
-
4. ファイルを変更して再実行
-
1つのファイルに小さな変更を加え(例: スペースを挿入)、再度ジョブを実行します。
-
その結果、ファイルが異なる場合は「Files are identical」ではなく「Files differ」というメッセージが表示されます。
-
differ
の値が1に変わり、コンソールに「Files equal: false」と表示されます。
-
📈 まとめ
-
tFileCompare
コンポーネントを使うと、簡単に2つのファイルを比較できます。 -
比較結果はコンソールに出力したり、
DIFFERENCE
変数を使って他の処理に利用することも可能です。 -
ファイルが異なる場合は、変更内容を簡単に検出できます。
これで、Talendでのファイル比較の方法が理解できたかと思います。非常にシンプルで直感的に使えるコンポーネントです。
📺 Talendでファイルのプロパティを取得する方法
Talendを使ってファイルのプロパティを取得する方法を紹介します。
🛠 使用するコンポーネント
-
tFileProperties
: ファイルの基本的な情報を取得 -
tFileRowCount
: ファイルの行数を取得
また、行数情報をtJava
やtFixedFlowInput
コンポーネントを使って表示します。
📝 手順
1. データ生成
-
tRowGenerator
コンポーネントを使って、IDやランダムなASCII文字列、そして1,000行から10,000行までのランダムなデータを生成します。
2. ファイルの書き込み
-
生成したデータを
outputDir
というディレクトリにdata.csv
というファイル名で書き込みます。
3. ファイルのプロパティを取得
-
tFileProperties
コンポーネントを使って、書き込んだファイルのプロパティを取得します。-
このプロパティにはファイルサイズや最終更新時間、ディレクトリ名などが含まれます。
-
これらの情報は、
tLogRow
コンポーネントでコンソールに表示することができます。
-
4. ファイルの行数を取得
-
tFileRowCount
コンポーネントを使用して、ファイルに含まれる行数をカウントします。-
tFileRowCount
は行数をCOUNT
という変数に格納します。 -
この行数情報を
tJava
またはtFixedFlowInput
コンポーネントを使ってコンソールに表示します。
-
5. ファイルの削除
-
処理が終わった後、
tPostJob
コンポーネントを使って、分析したファイルを削除します。これにより、ジョブをクリーンアップします。
🖥 実行結果
-
ジョブを実行すると、コンソールに以下の情報が表示されます:
-
ファイルのプロパティ(例: サイズ、最終更新日)
-
ファイルの行数(例: 約10,000行が作成されたことが確認できます)
-
例:
-
作成したファイルのサイズや更新時間が表示され、その後、ファイルが削除されます。
📈 まとめ
-
tFileProperties
でファイルの基本的な情報を取得し、tFileRowCount
でファイルの行数を取得します。 -
tJava
やtFixedFlowInput
を使って、これらの情報をコンソールに表示できます。 -
最後に、
tPostJob
を使ってファイルを削除して、ジョブをクリーンにします。
📺 Talendでファイルリストを作成する方法
Talendでファイルリストを作成する方法を紹介します。
🛠 使用するコンポーネント
-
tFileList
:指定したディレクトリ内のファイルをリスト化します。
📝 手順
-
グローバルコンテキストの設定
-
global context group
を使い、ジョブで使用するinputDir
(入力ディレクトリ)を設定します。
-
-
ファイル検索
-
tFileList
コンポーネントを使い、指定したディレクトリ(この場合、data/in
ディレクトリ)内で、ファイル名に「*.txt
」というパターンを含むすべてのファイルを検索します。
-
-
イテレーション処理
-
tFileList
は、見つかったファイルごとに繰り返し処理を行います。 -
各ファイルに対して、以下の情報を取得します:
-
フォルダ名
-
ファイル名
-
ファイルの拡張子
-
-
-
結果をコンソールに表示
-
取得したファイル情報を
tLogRow
コンポーネントでコンソールに表示します。
-
🖥 実行結果
-
ジョブを実行すると、コンソールに次の情報が表示されます:
-
見つかった各ファイルのフォルダ名、ファイル名、拡張子
-
この例では、3つの
.txt
ファイルが見つかり、それらがコンソールに表示されます。
-
例:
-
data/in
ディレクトリに存在する3つの.txt
ファイルが表示されます。
📈 まとめ
-
tFileList
コンポーネントを使って、指定したディレクトリ内でパターンにマッチするファイルをリスト化します。 -
見つかった各ファイルに対して、
tFileList
の変数を使って情報を取得し、tLogRow
でコンソールに表示します。
📺 Talendでファイルを圧縮する方法
Talendでファイルを圧縮する方法を紹介します。
🛠 使用するコンポーネント
-
tFileArchive
:ファイルを圧縮するコンポーネント。 -
逆に、圧縮を解く場合は
tFileUnarchive
を使用します(このジョブでは非アクティブに設定されていますが、下部右側に配置されています)。
📝 手順
-
コンテキストグループの設定
-
globalGroup
というコンテキストグループを使用します。このグループには、ファイルパスや名前などの変数が含まれています。
-
-
データの作成
-
tRowGenerator
コンポーネントを使い、100,000行の顧客データを生成します。 -
生成したデータは
tmpFile
というファイル名でtmpDir
ディレクトリに保存します。
-
-
ファイルの圧縮
-
圧縮のために
tFileArchive
コンポーネントを使用します。 -
tmpDir
内のtmpFile
をZIP形式で圧縮し、出力ファイルの拡張子に.zip
を追加します。
-
-
ジョブの実行
-
ジョブを実行して、指定したディレクトリ内のファイルが圧縮されることを確認します。
-
🖥 実行結果
-
圧縮後、
tmpDir
内にtmpFile.zip
という名前のZIPファイルが作成されます。 -
圧縮されたZIPファイルを開くと、元の
file.tmp
が含まれており、元のサイズと同じデータが格納されていることが確認できます。
📈 まとめ
-
tRowGenerator
を使用して、顧客データを生成し、tmpFile
として保存。 -
tFileArchive
を使用して、そのファイルをZIP形式で圧縮。 -
圧縮後、ZIPファイル内に元のファイルがそのまま保存されます。
📺 Talendで一時ファイルを使用する方法
Talendで一時ファイルを使用する方法を紹介します。
🛠 使用するコンポーネント
-
tCreateTemporaryFile
:一時ファイルを作成するコンポーネント。
📝 手順
-
一時ファイルの作成
-
tCreateTemporaryFile
コンポーネントを使って、一時ファイルを指定された場所に作成します。 -
作成する場所は
context.tmpDir
というコンテキスト変数から取得します。この場所はglobal context group
から設定されています。 -
ファイルの接頭辞(prefix)と接尾辞(suffix)も設定します。
-
-
一時ファイルの使用
-
ここではデータを一時ファイルに書き込み、その後別の処理でそのファイルを読み込みます。実際には何らかの処理を行っているわけではなく、一時ファイルの作成と消去を確認するのが目的です。
-
-
一時ファイルの確認
-
一時ファイルが作成され、処理が終わるとファイルが消えることを確認するため、Talend Open Studioとファイルブラウザを並べて実行します。
-
ジョブを実行すると、非常に短い間に一時ファイルが作成され、その後消えるのが確認できます。
-
-
データの読み書き
-
ここでは、100,000行のデータを一時ファイルに書き込み、その後読み込むという処理が行われます。
-
🖥 実行結果
-
ジョブを実行すると、一時ファイルが指定された場所に作成され、その後自動的に削除されます。
-
ファイルブラウザでその一時ファイルを確認することができますが、処理終了後は消えているのが確認できます。
📈 まとめ
-
tCreateTemporaryFile
を使用して、一時ファイルを作成。 -
一時ファイルにデータを書き込み、その後処理を行います。
-
処理終了後、一時ファイルは自動的に削除されます。