Integrate.ioは、クラウドストレージやSFTPサーバーに保存されたファイルを取得したり保存したりするために必要な機能を多く取り揃えています。
今回はその中でも主要な機能についてご紹介したいと思います。
Sourceフォルダ・ファイル取得設定
ソース側では細かい取得条件の設定が可能であるとともに、日本語ファイルについてはUTF-8はもちろん、Shift-JISの場合でもエンコーディングオプションを指定して取り込むことも可能です。
1、曖昧検索による条件設定
アスタリスク検索により条件にフィットする全てのファイルを取得できます。
2、ルールに基づくによる条件設定
相対日付による条件設定
関数を使うことで、今日や昨日などの相対日付に基づいた条件設定が可能です。
昨日を表現する関数式:
ToString(SubtractDuration(SwitchTimeZone(CurrentTime(),'Asia/Tokyo'),'PT24H'), 'yyyy/MM/dd')
今日を表現する関数式:
ToString(SwitchTimeZone(CurrentTime(),'Asia/Tokyo'),'yyyy-MM-dd')
さらに、上記の関数式を変数として定義することで、データ取込先のディレクトリやファイル名をより柔軟に設定できます。
正規表現による条件設定
正規表現を使うことでよりリッチな条件設定が可能です。
例1:/2020-01-{01,02,03}/impressions/*
/2020-01-01/impressions/*、/2020-01-02/impressions/* 、 /2020-01-03/impressions/* のいずれかに一致。
例2:/201[0-9]/01/*
/2010/01/*、 /2011/01/*、 /2012/01/* 、... 、 /2019/01/* のいずれかに一致。
3、インクリメンタルロード(ファイルの差分更新)
これまでの取り込み履歴をManifestファイルで保管し、フォルダ内のファイルのうち、取り込み履歴にない新しいファイルのみを取得していくことができます。
Manifest fileの中身はこれまで取り込んだファイル情報(ファイルパスやファイルサイズ)が保管されており、リストにないファイルのみを差分処理対象として判別します。
4、日本語ファイル(Shift-JIS)のエンコーディング機能について NEW!!
ファイルの「Source Action」にて「Copy, merge and process」もしくは「Process only new files (Incremental load)」を選択し、「Character encoding」で「Shift JIS」を選択
Destination側の設定
ファイル出力先に対しても、保存先フォルダやファイルについて、ルールに基づく条件設定を行うことが可能です。また保存ファイル名についてPrefixとSuffixにおいて固定値以外にも変数を参照し設定することが可能です。
以下の例では、ファイル名のPrefixとSuffixを変数を使って設定した例になります。パッケージの変数設定を見ると「prefix1」の変数定義は日本時間の今日の日付を動的に求める計算式がセットされています。また「suffix1」は固定値で文字列「.tsv」が埋め込まれています。
*変数「prefix1」の計算式 : ToString(SwitchTimeZone(CurrentTime(),'Asia/Tokyo'),'yyyy-MM-dd')
そのほかのファイル出力オプション:
これ以外にも、CSV形式の場合は区切り文字(タブ、スペース、コンマ)の設定、JSONはもちろんのこと、Parquet形式で保存することも可能です。
最後に
ファイル連携は最もポピュラーなデータ連携方法の1つであり、ETLツールには様々な条件に対応できる昨日の柔軟性が求められます。実際に見てみたいという方は、オンラインデモをお申し込みください。