CSA Data Uploaderが「Snowflake内部ステージへのファイル連携」に対応しました

2021.10.13

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

クラスメソッドが展開しているデータ統合基盤サービス『CSアナリティクス』(以降"CSA")のプロダクト群の1つ、『Data Uploader』に、この度Snowflakeの内部ステージへ出力する機能を追加しました。

今回はこのSnowflakeの内部ステージ(以降"内部ステージ")へ接続し、ファイルをアップロードする方法について紹介いたします。

Snowflakeの内部ステージについては、以下の記事などを参考にしてください。

Snowflakeの内部ステージについて調べてみた

事前準備

事前にSnowflakeのアカウントを作成し、以下の情報を控えておいてください。

  • アカウント識別子
  • ユーザー名
  • パスワード

Snowflake内部ステージ接続設定の準備

CSA Data Uploaderで内部ステージにアップロードするためには、まずSnowflakeへの接続情報を設定する必要があります。こちらの設定方法について記載いたします。

「設定」メニューより「接続設定」→「Snowflake内部ステージ」を選択。

Snowflake内部ステージ接続設定画面に遷移します。「追加」ボタンを押下します。

接続に必要な情報を設定します。「Snowflake接続名」には任意の識別文字列を、「アカウント識別子」「ユーザー名」「パスワード」にはアカウント固有の情報をそれぞれ入力、「保存」ボタンを押下します。

Snowflake内部ステージ接続設定が作成出来ました。

ファイルアップロード

ファイルのアップロードはCSA Data Uploaderの「ファイルアップロードジョブ」を使い、出力先として内部ステージを指定することで行います。「ファイルアップロードジョブ」については以下の記事を参考にしてください。

『Data Uploader』で実践!ファイルアップロード(Windowsローカル環境下の動画ファイルをAmazon S3にアップロード) #データ統合基盤 #CSアナリティクス

以下、「ファイルアップロードジョブ」を作成して内部ステージにアップロードする方法となります。

ジョブの作成

CSA Data Uploaderのジョブ一覧画面にて「ジョブを作成」を押下し、ジョブ種別に「ファイルアップロード」を指定する形でジョブを作成します。

ジョブの枠が出来ました。

入力処理の作成

内部ステージにアップロードするファイルを入力ファイルとして指定します。ジョブの入力側のボタンを押下し、表示される画面の入力種別に「ローカル接続」を指定します。

以下のような形で入力ファイルを指定します。

出力処理の作成 : Snowflake内部ステージへアップロード

次に出力処理を作成します。今回はアップロード先に「Snowflake内部ステージアップロード」を指定します。

「Snowflake接続名」では先の「Snowflake内部ステージ接続設定の準備」にて作成したSnowflake接続名を指定します。

アップロードステージ - ユーザーステージ

「アップロードステージ」ではアップロード先の内部ステージとして「ユーザーステージ」「テーブルステージ」「名前付きステージ」のいずれかを選択します。まずは「ユーザーステージ」を選択した場合です。

項目毎の内容は以下の通りです。

  • パス: ユーザーステージ配下のフォルダのパスを記載します。指定内容は既存パス、またアップロード時点では存在していないパスのいずれも指定可能です。パス名にはCSA Data Uploaderで提供している「変数」を使うことも出来ます。
  • ファイル名: アップロード対象のファイル名をどうするかを指定します。「入力時のファイル名を使用する」「任意のファイル名を入力」が選択出来ます。

今回はパスとして当日の値を組み込み、ファイル名はそのままアップロードする形で指定してみました。

アップロードステージ - テーブルステージ

次に「アップロードステージ」にて「テーブルステージ」を選択した場合です。

項目毎の内容は以下の通りです。

  • データベース: アップロード先のテーブルが存在するデータベースを指定します。
  • スキーマ : アップロード先のテーブルが存在するスキーマを指定します。
  • テーブル: アップロード先のテーブルを指定します。

「パス」と「ファイル名」については「ユーザーステージ」などと同じであり、テーブルステージ内の入力したパスに指定したファイル名でアップロードされます。全てに入力すると以下のようになります。

アップロードステージ - 名前付きステージ

最後に「アップロードステージ」にて「名前付きステージ」を選択した場合です。

項目毎の内容は以下の通りです。

  • ステージ名 : アップロードするステージを指定します。

「パス」と「ファイル名」については「ユーザーステージ」などと同じであり、名前付きステージ内の入力したパスに指定したファイル名でアップロードされます。全てに入力すると以下のようになります。

ここまで入力すると「ユーザーステージ」「テーブルステージ」「名前付きステージ」のいずれでも「アップロード先 ファイル名イメージ」に想定されるアップロード先ファイルパスが表示されます。「保存」ボタンを押下します。

ジョブ詳細

これで一連のジョブ設定が出来上がりました。ジョブ詳細画面を開くと作成したジョブが表示されます。

ファイルアップロードジョブの実行&結果確認

ここまでで作成したジョブを実行し、内部ステージへのアップロードを実行してみます。上記の「アップロードステージ」で「ユーザーステージ」を選択して入力した状態で実行してみます。

ジョブ詳細で「保存して実行」を押下し、実行種別は「現在の日時で実行」で試してみます。

処理が完了すると画面右上に完了通知メッセージが表示されます。

実行結果は履歴として確認可能です。メニューの「参照」→「ジョブ実行履歴」に遷移し、対象ジョブの履歴表示アイコンを選択します。以下のように、実行結果を履歴として確認出来ました。

Snowflakeにて「アップロード先 ファイル名イメージ」に出ていたパスのファイルが存在するかを確認します。

まとめ

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