Amazon S3のデータを取り込みたい

はじめに

b→dashへデータを連携するにあたっての全体像や、どのような連携方法があるかを知りたい場合は、まずは以下の記事をご覧ください

S3連携の2つのパターン

S3連携にはb→dashのS3にデータを置く」パターン貴社のS3にデータを置く」パターンの2つの手法があり、それぞれで設定方法が異なります。

 それぞれのパターンごとに、どのような設定が必要かを説明していきます!

b→dashのS3にデータを置くパターン

連携実施に必要な前提作業
b→dashに連携したいデータを基幹システムから抽出し、S3へ転送します。
※基幹システムからデータを抽出する際は、SQLを利用して処理を組むことが一般的です
※抽出/転送方法は環境によって異なるため、本サポートサイトでの説明は省略します

設定方法

データパレット」をクリックします

データを連携」をクリックします

右上にある「新規追加」をクリックします

S3」を選択し、「適用」をクリックします

b→dashのS3にデータを置く」を選択し、「次へ」をクリックします

「接続情報」(AWSアクセスキー/AWSシークレットアクセスキー/バケット名/フォルダパス/ユーザー名)を中間サーバーに登録します

b→dashのS3への接続方法

b→dashのS3にデータを置く場合、AWS社が提供している「AWS CLI」を用いて、b→dashのS3に接続頂く必要があります。以下に「AWS CLI」のインストール方法と接続方法を説明いたします。

インストール
「AWS CLI」をダウンロードし、貴社の中間サーバーにインストールします

こちらのURLに、「AWS CLI」に関する説明とインストール方法が記載されていますので、内容確認の上、貴社の中間サーバーにインストールをお願いします。

ユーザープロファイル作成
「AWS CLI」を開いて以下のコマンドを実行し、「ユーザープロファイル」を作成します
$ aws configure --profile xxxx
AWS Access Key ID [none]: {アクセスキー}
AWS Secret Access Key [none]: {シークレットアクセスキー}
Default region name [none]: {ap-northeast-1}
Default output format [none]: {フォーマット形式}

※「–profile xxxx」の「xxxx」部分には、任意のプロファイル名を入力してください
※「{アクセスキー}」「{シークレットアクセスキー}」の部分は、b→dashの画面に表示される接続情報の『AWSアクセスキー』『AWSシークレットアクセスキー』を参照してください

b→dashへの接続
以下のコマンドを入力し、b→dashに接続します
$ aws s3 ls s3://bdash4-preparation-pub-prd/bd4-dp-xxxxxx-bd-xxxxxx-prd/import/xxxx/ --profile=xxxx

※上記コマンドの「bd4-dp-xxxxxx-bd-xxxxxx-prd/import/xxxx」の部分は「フォルダパス」を表しており、この値はb→dashアカウントに応じて異なるため、b→dashの接続情報に記載する「フォルダパス」を参照してください

※「–profile=xxxx」の「xxxx」部分には、1つ前の手順で作成した「–profile xxxx」と同じ値を入力してください

※b→dashの接続情報の中に「バケット名」がありますが、上記コマンドにおいては「bdash4-preparation-pub-prd」が「バケット名」に該当します

b→dashのS3へデータを送る

b→dashのS3へデータを送るコマンドについては、以下のサイトをご参照ください。
AWS CLI での高レベル (S3) コマンドの使用

b→dashとの連携に必要最低限の「IAMポリシー権限」は、「Getobject」「Listbucket」の2つのみです。
[任意]「パスワード付きファイルのパスワード」を入力し、「次へ」をクリックします

連携対象のデータファイルに、パスワードを設定している場合は、パスワードの入力が必要です。
S3連携において、b→dashに取り込めるデータファイル形式パスワード入力の必要有無
複数のデータファイルにパスワードをつける場合の設定方法
複数のデータファイルにパスワードをつける場合は、全てのデータファイルに同じパスワードをつける必要があります。
連携頻度と時間を設定の上「追加」を選択し、「次へ」をクリックします

ここで設定した内容に基づいて、b→dashの中間サーバーからb→dashの領域のS3へファイルを取りに行く処理が行われます。連携タイミングは複数設定することもできます!
名前を入力し、「保存」をクリックします

新規作成した連携が画面に表示されます

サーバーを制限するために設定するb→dashのIPアドレス

セキュリティ上の理由で、接続できるサーバーを制御する必要がある場合は、b→dashのIPアドレスのみ貴社のサーバーが接続できるように設定をお願いします。b→dashが使用しているIPアドレスに関しては、以下の記事をご確認ください。

取込/出力で設定するIPアドレスを知りたい

これでS3連携の設定は完了です!
最後に、b→dashへファイルが正常に連携されたかどうかの検証を行います。

検証方法

ファイルの取得

b→dash管理画面に設定した「連携タイミング」の時間になると、b→dashの領域のS3に対してファイルを取得する処理が実施されます。

 連携のステータスを確認します

 連携のステータスは、アイコンで把握することができます!
S3連携でb→dashのS3にデータを置く際のステータス
「接続完了」にならない場合はどうすればいい??

ステータスが「接続完了」にならない場合は、何らかの設定が誤っていると考えられます。以下によくある設定誤りを記載しますので、こちらに該当しないかご覧ください。

考えられる原因 改善策
連携対象のファイル形式がb→dashで取込可能な形式とは異なる S3連携での取込に対応していないファイルの場合、データパレットの+ボタンにファイルが連携されません。 連携頂いたファイル形式が、以下のいずれかに当てはまっているかを、ご確認ください。

【取込可能なファイル形式】
・CSVファイル
(データがカンマで区切られている拡張子が.csvのファイル)
・TSVファイル
(データがタブ文字で区切られている拡張子が.tsvのファイル)

【取込可能なファイル圧縮方式】
・zip
・tar.gz
※パスワード付きファイルの取込にも対応しております。パスワード付きファイルを連携頂く場合は、S3連携システム登録時の設定にてファイル解凍用のパスワードをご登録頂けますよう、お願いします。

※複数ファイルをまとめて1ファイルとして圧縮頂いた場合は、取込できずエラーとなります。1ファイル毎に圧縮してデータ連携をお願いします。
ファイルに拡張子がついていない b→dashにS3からファイルを連携する際には、必ず拡張子のついたファイルである必要があります。
アップロード頂くファイルの名称に拡張子がついていることをご確認頂き、拡張子のついていない状態となっておりましたら、拡張子をつけた状態でご連携ください。
なお拡張子は必ず「.csv」もしくは「.tsv」で連携頂きますようお願いします。
連携先フォルダ名が間違っている b→dash側の指定フォルダにファイルを連携頂くことでデータ連携が可能です。

指定のフォルダ以外の箇所にファイルを連携された場合は、連携バッチでの参照ができずデータをb→dashに取り込むことができないため、連携先フォルダ名がb→dashにて指定されているフォルダ名と一致しているかをご確認ください。

【確認方法】
①「データパレット」アプリにて「データを連携」をクリックする
②連携を行うS3の連携システム名をクリックし、「編集」ボタンをクリックする
③表示される接続情報のうち「フォルダパス」の部分に入力されているパスを確認する
シークレットキー及びシークレットアクセスキーが一致していない b→dashへのS3接続時には連携システム作成時に発行されるクレデンシャルを設定頂く必要があります。
入力されている内容が一致していない場合は疎通時のエラーが発生致しますので、
b→dash上に表示されているシークレットキー及びシークレットアクセスキーの内容と、貴社にて設定されている内容が一致してることをご確認ください。

【シークレットキー及びシークレットアクセスキーの確認方法】
①「データパレット」アプリにて「データを連携」をクリックする
②連携を行うS3の連携システム名をクリックし、「編集」ボタンをクリックする
③表示される接続情報のうち「シークレットキー」及び「シークレットアクセスキー」の部分に入力されている内容を確認する
設定している貴社からのファイル連携の時間が間違っている b→dashからのS3連携ファイルの取得はデータパレットでの設定時間にて行われます。
そのタイミングで指定のフォルダに配置されたファイルを取得するため、
貴社からの連携ファイルはデータパレットへの設定時間以前に配置頂く必要があります。
ファイル連携バッチをご確認頂き、データパレットの設定時間と前後していないかご確認ください。

【データの連携タイミングの確認方法】
①「データパレット」アプリにて「データを連携」をクリックする
②連携を行うS3の連携システム名をクリックし、「編集」ボタンをクリックする
③接続情報が表示されるため、「次へ」をクリックする
④表示されているデータの連携タイミングを確認する
ステータスが「接続完了」になった連携設定をクリックします

連携設定をクリックすると連携されているデータを確認でき、「取込設定」を行うことができます

取込設定の詳細については、こちらの記事をご覧ください。
各ファイルのレコード件数は100件までしか表示されません
連携設定をクリックした際に表示されるファイル一覧において、各ファイルにレコード件数が表示されていますが、このレコード件数の上限”表示”は100件までになります。b→dashの仕様上、データを連携しただけの状態では、上限100レコードまでしか読み込まないため、表示の上限も100件までとなりますが、これは、100レコードしか連携されていないというわけではなく、100件を超えたレコードを読み込んでいないことが理由です。
連携されたデータをb→dashに取り込み設定をすれば、ファイル内の全レコードが読み込まれるようになりますのでご安心ください。
Amazon S3連携の「連携対象」

Amazon S3連携は、「前回の連携日時よりも、ファイルの更新日時が新しいファイル」を連携の対象としています。データの連携の際は、連携したいファイルの更新日時をご確認いただくようお願いします。

貴社のS3にデータを置くパターン

「STS」を利用したい場合は、『STSを利用してAmazon S3のデータを取り込みたい』をご参照ください。
連携実施に必要な前提作業
b→dashに連携したいデータを基幹システムから抽出し、S3へ転送します。
※基幹システムからデータを抽出する際は、SQLを利用して処理を組むことが一般的です
※抽出/転送方法は環境によって異なるため、本サポートサイトでの説明は省略します

設定方法

データパレット」をクリックします

データを連携」をクリックします

右上にある「新規追加」をクリックします

S3」を選択し、「適用」をクリックします

貴社のS3にデータを置く」を選択し、「次へ」をクリックします

S3連携に必要な「接続情報」(AWSアクセスキー/AWSシークレットアクセスキー/バケット名/フォルダパス/リージョン)を入力します

「AWSアクセスキー」「AWSシークレットアクセスキー」「バケット名」「フォルダパス」「リージョン」の確認方法

S3の連携に必要な、「AWSアクセスキー」「AWSシークレットアクセスキー」「バケット名」「フォルダパス」「リージョン」の確認方法を説明します。

「AWSアクセスキー」「AWSシークレットアクセスキー」の確認方法
AWS」にアクセスします

サービスメニュー一覧から「IAM」をクリックします

サイドメニューの「ユーザー」をクリックします

ユーザーを追加」をクリックします

ユーザー名」を入力し「プログラムによるアクセス」にチェックを付けた後「次のステップ」をクリックします

ユーザーをグループに追加」をクリックして「グループ」の欄にチェックをいれ「次のステップ:タグ」をクリックします

次のステップ:確認」をクリックします

ユーザーの作成」をクリックします

アクセスキーID(AWSアクセスキー)」と「シークレットアクセスキー(AWSシークレットアクセスキー)」が表示されます

AWSシークレットアクセスキーはこの後表示できなくなるため、必ずcsvファイルでダウンロードしておくかメモをしておきましょう。
「バケット名」「フォルダパス」「リージョン」の確認方法
サービスメニューから「S3」を選択します

AWSリージョン」が確認できます

表示された「バケット名」をクリックします

フォルダパス」が表示されます

[任意]「パスワード付きファイルのパスワード」をb→dashに入力します

連携頻度と時間を設定の上「追加」を選択し、「次へ」をクリックします

ここで設定した内容に基づいて、b→dashの中間サーバーから貴社の領域のS3へファイルを取りに行く処理が行われます。連携タイミングは複数設定することもできます!
名前を入力し、「保存」をクリックします

新規作成した連携が画面に表示されます

サーバーを制限するために設定するb→dashのIPアドレス

セキュリティ上の理由で、接続できるサーバーを制御する必要がある場合は、b→dashのIPアドレスのみ貴社のサーバーが接続できるように設定をお願いします。b→dashが使用しているIPアドレスに関しては、以下の記事をご確認ください。

取込/出力で設定するIPアドレスを知りたい

これでS3連携の設定は完了です!
最後に、b→dashへファイルが正常に連携されたかどうかの検証を行います。

検証方法

ファイルの取得

b→dash管理画面に設定した「連携タイミング」の時間になると、貴社のS3に対してファイルを取得する処理が実施されます。

連携のステータスを確認します

連携のステータスは、アイコンで把握することができます!
S3連携で貴社のS3にデータを置く際のステータス  
「接続完了」にならない場合はどうすればいい??

ステータスが「接続完了」にならない場合は、何らかの設定が誤っていると考えられます。以下によくある設定誤りを記載しますので、こちらに該当しないかご覧ください。

考えられる原因 改善策
b→dashにご登録頂いているS3の接続情報が誤っている b→dash上に表示されている接続情報と、貴社S3の接続情報が一致しているか以下手順にてご確認ください。

【確認方法】
①「データパレット > データを連携する」へ移動
②対象の連携設定を1度クリック
③画面上部の「編集」をクリック
④表示されている、以下の接続情報をご確認下さい  
・AWSアクセスキー  
・AWSシークレットアクセスキー  
・リージョン
S3連携時のバケット名・フォルダパスが誤っている S3連携元のバケット名、フォルダパスに誤りがないか以下手順にてご確認ください。

【確認方法】
①「データパレット > データを連携する」へ移動
②対象の連携設定を1度クリック
③画面上部の「編集」をクリック
④表示されている、以下の情報をご確認下さい  
・バケット名  
・フォルダパス
ご設定頂いているファイルの取得タイミングが想定と異なっている ご設定頂いているファイルの取得タイミングが貴社にて想定頂いているタイミングと異なっている可能性があります。
以下手順にて、取込タイミングをご確認ください。

【確認方法】
①「データパレット > データを連携する」へ移動
②対象の連携設定を1度クリック
③画面上部の「編集」をクリック
④「連携システム登録」に表示されている連携タイミングを確認
b→dash上に設定頂いているバケット名・フォルダパス配下にファイルを配置頂いていない b→dash上でご設定頂いているバケット名・フォルダパス配下に取り込み対象ファイルが配置されいるか、以下手順にてご確認ください。

【確認方法】
①「データパレット > データを連携する」へ移動
②対象の連携設定を1度クリック
③画面上部の「編集」をクリック
④表示されているS3接続情報配下のファイル配置状況をご確認下さい  
・バケット名  
・フォルダパス
配置頂いたファイルのファイルサイズが、取込データ容量上限を超えている ご連携頂くファイルのデータ容量が5GBを超える場合、取込エラーとなる可能性があります。
データ容量の大きいファイルをご連携頂く際は、5GB以下に分割頂けますよう、お願いします。
なお、連携ファイル数の上限はありません。
配置頂いたファイルをb→dashに取込中である データ容量が大きいファイルを連携する場合、b→dashへの取り込みに時間を要する場合があります。
データ連携開始時刻から30分以上経過しても、連携ができていない場合は、弊社サポートまでお問い合わせ下さい。
取込タイミングは以下手順にてご確認下さい。

【確認方法】
①「データパレット > データを連携する」へ移動
②対象の連携設定を1度クリック
③画面上部の「編集」をクリック
④「連携システム登録」に表示されている連携タイミングを確認
フォルダパスの先頭に 「/」を設定している フォルダパスの先頭に「/」を設定している可能性があります。そのため、ディレクトリパスはディレクトリ名で始まり、「/」で終わっていることを、以下手順にてご確認ください。

【確認方法】
①「データパレット > データを連携する」へ移動
②対象の連携設定を1度クリック
③画面上部の「編集」をクリック
④ポップアップ内の「フォルダパス」の先頭に「/」が無いことを確認
フォルダパスの末尾に「/」を設定していない フォルダパスの末尾に、「/」を設定していない可能性があります。 そのため、フォルダパスはディレクトリ名で始まり、「/」で終わっていることを、以下手順にてご確認ください。

【確認方法】
①「データパレット > データを連携する」へ移動
②対象の連携設定を1度クリック
③画面上部の「編集」をクリック
④ポップアップ内の「フォルダパス」の末尾に「/」があることを確認
バケット名の先頭か末尾に「/」を設定している バケット名の先頭か末尾に「/」を設定している場合、接続に失敗してしまいます。そのため、バケット名には記号を含めずに名称の設定をお願いします。

【確認方法】
①「データパレット > データを連携する」へ移動
②対象の連携設定を1度クリック
③画面上部の「編集」をクリック
④ポップアップ内の「バケット名」の先頭に「/」が無いことを確認
連携頂いたファイル形式がb→dashでの取込に対応していない S3連携での取込に対応していないファイルの場合、ファイルが連携されません。 以下の取り込み可能なファイル形式をご確認ください。

【取込可能なファイル形式】
・CSVファイル  
(データがカンマで区切られている拡張子が.csvのファイル)
・TSVファイル  
(データがタブ文字で区切られている拡張子が.tsvのファイル)

【取込可能なファイル圧縮方式】
・zip
・gz
・tar.gz
S3連携しようとしているバケットに制限がかけられている S3連携を行うためには、b→dashと貴社S3システムの疎通の許可を取得頂く必要があります。
以下に記載している手順にてIPアドレスの許可を取得ください。

【設定方法】
①b→dashに連携しているS3のバケット一覧から対象のバケットを選択し、Properties内のPermissionsを選択頂く
②表示されるバケットポリシーエディターのポップアップにて以下の内容をご設定ください。
"Condition": {
"NotIpAddress": {
"aws:SourceIp": [
※こちらに入力するIPアドレスは、下記リンクの記事を参照ください。
]
}
}

取込/出力で設定するIPアドレスを知りたい
ステータスが「接続完了」になったら連携設定をクリックします

連携設定をクリックすると連携されているデータを確認でき、「取込設定」を行うことができます

取込設定の詳細については、こちらの記事をご覧ください
Amazon S3連携の「連携対象」について

Amazon S3連携は、「前回の連携日時よりも、ファイルの更新日時が新しいファイル」を連携の対象としています。データの連携の際は、連携したいファイルの更新日時をご確認いただくようお願いします。

※ファイル名を指定して連携することはできません

各ファイルのレコード件数は100件までしか表示されません
連携設定をクリックした際に表示されるファイル一覧において、各ファイルにレコード件数が表示されていますが、このレコード件数の上限”表示”は100件までになります。b→dashの仕様上、データを連携しただけの状態では、上限100レコードまでしか読み込まないため、表示の上限も100件までとなりますが、これは、100レコードしか連携されていないというわけではなく、100件を超えたレコードを読み込んでいないことが理由です。
連携されたデータをb→dashに取り込み設定をすれば、ファイル内の全レコードが読み込まれるようになりますのでご安心ください。