文字コードの変換について

Four Stars

文字コードの変換について

文字コードの変換について質問させてください。
現在file→tmap→db or file
のデザインの構成の中で、入力のファイルの文字コードを変換しない状態で、データベースへの蓄積及びファイル出力をしたいと考えています。
tFileInputRowでのバイト配列を使用した方法も考えたのですが、あまり効率が良い方法 とは思えませんでした。
上記以外で文字コード変換をせずにデータを持ち回る方法は存在するのでしょうか。
以上、よろしくお願い致します。
Six Stars

Re: 文字コードの変換について

こんにちは。

 

前提として、Talend は Java 言語上で動作していて、Java の文字・文字列は Unicode でエンコードされています。

文字コードをそのまま、ということは、Java 上ではバイナリで取り扱うことになります。

 

・ファイル → tFIleInputRaw
 文字としてエンコードしていないので、改行文字や区切り文字、という考え方もありません。

よって、配列かストリームをバイト数・特定のバイトシーケンスで行・カラムを分割し、byte 配列に分割すればカラムで取り扱えます。

 ルーチンを書いて、tMap あたりで呼び出すとよいと思います。

 

・ → tDBOutput

 JDBC ドライバに渡す際、文字エンコードの変換をしないで、という話になりますと、byte 配列からのマッピングが必要です。

データベースがその操作をサポートしているのであれば、大丈夫かと思います。

 

・ → tFileOutputRaw

 tFileOutputRaw  は String だとエンコードつき、byte[] だと org.apache.commons.io.FileUtils.writeByteArrayToFile()、InputStream だとコピーしてくれます。

ここまで持ち回った byte 配列を contents でひとつにまとめるのは少し手間ですが、難しくはないかと思います。

 

 多数のファイルがある場合、入力の分割・出力の組立てについては、カスタムコンポーネントを作成することも考慮してもよいと思います。

ルーチン化できてコードがパターン化してくると、カスタムコンポーネントまであと一歩です。

 旧形式のコンポーネントの場合は、過去の経験上、さほど手間ではありませんでした。

 

以上、ご参考になれば幸いです。

 

 

 

2019 GARNER MAGIC QUADRANT FOR DATA INTEGRATION TOOL

Talend named a Leader.

Get your copy

OPEN STUDIO FOR DATA INTEGRATION

Kickstart your first data integration and ETL projects.

Download now

What’s New for Talend Summer ’19

Watch the recorded webinar!

Watch Now

Definitive Guide to Data Quality

Create systems and workflow to manage clean data ingestion and data transformation.

Download

Tutorial

Introduction to Talend Open Studio for Data Integration.

Watch

Downloads and Trials

Test drive Talend's enterprise products.

Downloads