ASTERIA WarpとAmazon Web Service Redshift・S3連携「Redshiftデータロード」

ASTERIA WarpAWSサービスを連携し、S3の特定バケットのオブジェクト(データ)をRedshiftへロードするフローをSQLCallコンポーネントで作成しました。

Redshiftへデータロードフロー「同一フォルダー配下のファイル」

SQLCallコンポーネントでS3バケットの同一フォルダー配下のファイルをRedshiftitemテーブルへデータロードを行います

SQLCallコンポーネント「一番目」

Redshiftの特定のスキーマにテーブル(item)を作成する

・ロードするデータを対応する列名、データ型等を設定する

・ロードするS3上のデータは以下画像で参照ください。

S3上のファイル一覧とそのファイルのCSV内容

SQLCallコンポーネント「二番目」

S3からRedshit へデータロードするには、COPYコマンドを使用する

・COPYパラメータにロード先のRedshit テーブル名を指定

FROMパラメータにS3上の対象フォルダーのファイルパスを指定

IAM_ROLEパラメータにIAMロールの対象ロールのARN値を指定

※ファイル形式、ヘッダーなどの設定はAWSの公式ドキュメントに参照ください。

実行結果

----------------------------------

Redshiftへデータロードフロー「ファイルを指定してロード」

SQLCallコンポーネントでS3バケットの特定のファイルを指定し、Redshiftmanifest_itemテーブルへデータロードを行います

SQLCallコンポーネント「一番目」

Redshiftの特定のスキーマにテーブル(manifest_item)を作成する

・ロードするデータの対応する列名、データ型等を設定する

・ロードするS3上のデータは以下画像で参照ください。

※今回はmanifest1、manifest2,manifest3フォルダー配下にあるファイルをロードする

SQLCallコンポーネント「二番目」

S3からRedshit へデータロードするには、COPYコマンドを使用する

・ファイルを指定し、Redshiftへロードするにはマニフェストファイル(例:item_manifest.json)を用意する必要がある

・マニフェストファイルとは、ロードするデータファイルのリストを指定する JSON 形式のファイル

・マニフェストファイルの構文は以下画像にご参照ください。

・URLに指定したファイルパスに対象ファイルがない場合エラーを発生されたいので、mandatoryにtrueを設定

・COPYコマンドの構文は以下画像にご参照ください。

COPYパラメータにロード先のRedshit テーブル名を指定

FROMパラメータにS3上のマニフェストファイルパスを指定

・マニフェストファイルでデータロード時にはMANIFESTを必ず指定する

実行結果