CSA Data Uploaderで『組み込み変数/関数』を使ってファイルパスに動的な日時を設定する

2022.07.07

はじめに

クラスメソッドが展開しているデータ統合基盤サービス『CSアナリティクス』(以降"CSA")のプロダクト群の1つ、『Data Uploader』には、アップロードするファイルパスに動的な日時を設定する機能としてがあります。

この機能は『Data Uploader』内で『組み込み変数/関数』と呼んでおります。今回はこの『組み込み変数/関数』について紹介致します。

『Data Uploader』そのものについてや、アップロードなどについては以下の記事を参考にしてください。

『組み込み変数/関数』について

先にも書いたように、アップロードするファイルパスに動的な日時を指定する機能となります。パスを指定するテキストボックスで入力可能で、{{today}}のような書式を記述すると、この例では当日日付のパスを動的に指定できます。以下、使用できる変数/関数の詳細となります。

組み込み変数

S3アップロードジョブを例に書いていきたいと思います。『パス』テキストボックスの横に『[組み込み変数/関数が利用可能です]』のリンクがあります。また『ファイル名』の横にも同様のリンクがあります。このリンクをクリックすると、『組み込み変数/関数』の使用方法について記載したヘルプが表示されます。

『組み込み変数』として使用可能な変数は以下のものがあります。

変数名 説明 サンプル値
today ジョブ実行日付 2022-07-05
today_nodash ジョブ実行日付(「-」無し) 20220705
today_slash ジョブ実行日付(「/」区切り) 2022/07/05
yesterday ジョブ実行日付の前日 2022-07-04
yesterday_nodash ジョブ実行日付の前日(「-」無し) 20220704
yesterday_slash ジョブ実行日付の前日(「/」区切り) 2022/07/04
tomorrow ジョブ実行日付の翌日 2022-07-06
tomorrow_nodash ジョブ実行日付の翌日(「-」無し) 20220706
tomorrow_slash ジョブ実行日付の翌日(「/」区切り) 2022/07/06
now ジョブ実行日時 2022-07-05 15:41:27
now_nodash ジョブ実行日時(区切り無し) 20220705154127
now_slash ジョブ実行日時(「/」区切り) 2022/07/05 15:41:27
current_year ジョブ実行年 2022
current_month ジョブ実行月 07
current_date ジョブ実行日 05
current_hour ジョブ実行時間 15
current_minute ジョブ実行分 41
current_second ジョブ実行秒 27
job_name 実行ジョブ名 サンプルジョブ

当日(ジョブ実行日時)を取得する「today〜」、前日を取得する「yesterday〜」、翌日を取得する「tomorrow〜」、年月日や時刻を独立して取得する「current〜」の変数を使用することができます。また日時ではないですが、ジョブ名を取得する「job_name」も使用できます。

例えばアップロード先パスとして実行年月日と時刻より「年/月/日/時」形式で指定したい場合、『組み込み変数』を使うと以下のようになります。

{{today_slash}}/{{current_hour}}

『DataUploader』で使用すると以下のようになります。『パス』に『組み込み変数』を入力し、アップロード先のパスとして 『アップロード先 URIイメージ』に動的に取得した日時が表示されます。

この『組み込み変数』だけでは取得したいパスを指定できない場合、次に書く『組み込み関数』の使用も検討してみてください。

組み込み関数

『組み込み関数』を使うと、現在日時を基準としてN日前の取得や、フォーマットの指定などを細かくすることができます。また取得したい日時のタイムゾーンを指定することもできます。『組み込み関数』についても『パス』テキストボックスの横に『[組み込み変数/関数が利用可能です]』のリンクからヘルプを表示することができます。

書式と引数

『組み込み関数』として使用できる関数は、現在は『now_format』のみとなります。この『now_format』に引数を組み合わせて取得したい日時のパターンを指定します。引数を含めると、以下のような書式となります。

書式
{{now_format format}}
{{now_format format timezone}}
{{now_format format timezone interval}}

指定できる引数としては、「format」「tiemzone」「interval」の3種となります。以下にそれぞれについて書きたいと思います。

format

日時のフォーマットを文字列で指定します。以下のフォーマットが利用可能です。

フォーマット 説明
%Y 西暦年(4桁)
%m 月(01..12)
%d 日(01..31)
%H 時(00..23)
%M 分(00..59)
%S 秒(00..60)

timezone

タイムゾーン名を指定します。省略時、または""が指定された場合、『Data Uploader』がインストールされているマシンのタイムゾーンを利用します。

interval

現在時刻からの時間間隔を指定します。「1 hour」のように整数と単位を表す文字列を組み合わせて指定します。以下が利用可能です。

単位 単位を表す文字列
year, years, y の何れか
month, months の何れか
day, days, d の何れか
hour, hours, h の何れか
minute, minutes, m の何れか
second, seconds, s の何れか

使用例

例えば現在時刻の2時間30分前の時分秒を、America/New_Yorkタイムゾーンで取得する場合は以下のような書式となります。

{{now_format "%H%M%S" "America/New_York" "-2 hours, 30 m"}}

また前日の年月をスラッシュ区切りで指定した場合は以下のような書式となります。

{{now_format "%Y" "" "-1 days"}}/{{now_format "%m" "" "-1 days"}}

『DataUploader』で使用すると以下のようになります。『パス』に『組み込み関数』を入力し、アップロード先のパスとして 『アップロード先 URIイメージ』に動的に取得した日時が表示されます。

まとめ

CSA Data Uploaderでファイルパスに動的な日時を指定する機能の紹介でした。CSA Data Uploaderは1ヶ月間のトライアル利用が可能となっています。興味をお持ち頂いた方は是非無料版ダウンロードページからインストーラを入手頂き、お試し頂けますと幸いです。