翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
販売者配送データフィードサービス
AWS Marketplace は、構造化された最新の製品および顧客情報を AWS Marketplace システムから販売者の Amazon S3 バケットに送信し、販売者が所有するビジネスインテリジェンスツール間の ETL (抽出、変換、ロード) を行うためのメカニズムとしてデータフィードを提供します。
取引データは双時構造で配信および追加されるため、販売者は両方のタイムスタンプ付きの 2 つのタイムラインに沿ってデータを保存し、クエリを実行できます。
-
有効時間: 現実世界で事実が発生した日時 (「知っていること」)
-
システム時間: その事実がデータベースに記録された日時 (「知ったとき」)
データフィードは、前日の 24 時間分のデータを含む前日の更新の後、毎日午後 4 時 (太平洋標準時) (UTC) に配信されます。更新内容は、購読している顧客、請求を受ける顧客、または支払いを行う AWS によって定義できます。
このセクションでは、データフィードの概要を示し、データフィードにアクセスして使用する方法について説明します。以降のセクションでは、各データフィードについて説明します。
データフィードの保存と構造
データフィードは、カンマ区切り値 (CSV) ファイルを収集し、これを指定先の暗号化された Amazon S3 バケットに配信します。CSV ファイルの特性は次のとおりです。
-
4180 標準
に準拠しています。 -
文字エンコーディングは UTF-8 (BOM なし) です。
-
カンマは、値間の区切り文字として使用されます。
-
フィールドは二重引用符でエスケープ
-
\n
は改行文字です。 -
日付は UTC タイムゾーンで報告され、日時形式は ISO 8601 に従い、精度は 1 秒以内です。
-
すべての
*_period_start_date
値および*_period_end_date
値は包括的です。つまり、23:59:59
は任意の日の最後のタイムスタンプです。 -
すべての金銭情報フィールドの先頭に通貨フィールドが付きます。
-
金銭情報フィールドでは、小数点の区切り文字としてピリオド (
.
) を使用し、3 桁の区切り文字としてカンマ (,) を使用しません。
データフィードは次のように生成されて保存されます。
-
データフィードは 1 日以内に生成され、前日の 24 時間のデータが含まれます。
-
Amazon S3 バケットの場合、データフィードは次の形式を使用して月別に整理されます。
bucket-name
/data-feed-name_version
/year=YYYY
/month=MM
/data.csv -
毎日のデータフィードが生成されると、当月の既存の CSV ファイルに追加されます。新しい月が始まると、データフィードごとに新しい CSV ファイルが生成されます。
-
データフィードの情報は、2010 年 1 月 1 日から 2020 年 4 月 30 日 (含む) にバックフィルされ、
year=2010/month=01
サブフォルダの CSV ファイルで確認できます。特定のデータフィードの当月のファイルに列ヘッダーのみが含まれ、データが含まれていない場合があります。これは、当月のフィードに新しいエントリがなかったことを意味します。製品フィードなど、更新頻度が低いデータフィードで発生する場合があります。このような場合、データはバックフィルされたフォルダで利用できます。
-
Amazon S3 では、Amazon S3 ライフサイクルポリシーを作成して、バケットにファイルを保持する期間を管理できます。
-
暗号化された S3 バケットにデータが配信されたときに通知するように Amazon SNS を設定できます。通知を設定する方法の詳細については、「Amazon Simple Notification Service デベロッパーガイド」の「Amazon SNS の開始方法」を参照してください。
データの履歴化
各データフィードには、データの履歴を示す列があります。valid_to
を除き、これらの列はすべてのデータフィードに共通です。これらは共通の履歴スキーマとして含まれており、データのクエリに役立ちます。
列名 | 説明 |
---|---|
valid_from | 主キーの値が他のフィールドの値に関連して有効である最初の日付。 |
valid_to | この列は住所データフィードにのみ表示され、常に空白です。 |
insert_date | レコードがデータフィードに挿入された日付。 |
update_date | レコードが最後に更新された日付。 |
delete_date | この列は常に空白です。 |
これらの列の例を次に示します。
valid_from | valid_to | insert_date | update_date | delete_date |
---|---|---|---|---|
2018-12-12T02:00:00Z | 2018-12-12T02:00:00Z | 2018-12-12T02:00:00Z | ||
2019-03-29T03:00:00Z | 2019-03-29T03:00:00Z | 2019-03-29T03:00:00Z | ||
2019-03-29T03:00:00Z | 2019-03-29T03:00:00Z | 2019-04-28T03:00:00Z |
valid_from
と update_date
フィールドが一緒になって双時データモデルを形成します。valid_from
フィールドは、その名のとおり、アイテムがいつ有効になるかがわかります。項目が編集された場合、フィードにはそれぞれ、update_date
が異なり、valid_from
の日付が同じレコードが複数含まれている可能性があります。例えば、ある項目の現在の値を調べるには、最新の update_date
の日付があるレコードのリストから最新の valid_from
のレコードを検索します。
上の例では、レコードは元々 2018 年 12 月 12 日に作成されたものです。その後、2019 年 3 月 29 日に変更されました (レコード内のアドレスが変更された場合など)。その後、2019 年 4 月 28 日に、アドレスの変更が修正されました (valid_from
は変更されず、update_date
は変更されました)。アドレスを修正すると (まれなイベント)、レコードが元の valid_from
の日付から遡って変更されるため、そのフィールドは変更されませんでした。最新のレコードを検索するクエリでは、valid_from
が 2 つのレコードを返し、最新の update_date
からは、現在の実際のレコードが得られます。
データフィードへのアクセス
データフィードにアクセスするには、暗号化された Amazon S3 バケットをデータフィードの送信先とするように環境を設定する必要があります。AWS Marketplace には、設定を簡素化するために使用できる AWS CloudFormation テンプレート
AWS CloudFormation テンプレートを使用してデータフィードを受信するように環境を設定するには
-
ウェブブラウザを開いて AWS Marketplace 管理ポータル
にサインインし、「顧客データストレージの設定 」に進みます。 -
[Create resources with AWS CloudFormation (CloudFormatiion テンプレートを使用してリソースを作成する)] を選択して、AWS CloudFormation コンソールの別のウィンドウでテンプレートを開きます。
-
テンプレートで以下を指定し、[Next (次へ)] を選択します。
-
スタック名 - データフィードへのアクセスを有効にするために作成するリソースのコレクション。
-
Amazon S3 バケット名 - データフィードを保存する先のバケット。
-
(オプション) Amazon SNS トピック名 - AWS が新しいデータを Amazon S3 バケットに配信したときに、通知を受信するためのトピック。
-
-
[Review (確認)] ページで入力内容を確認し、[Create stack (スタックの作成)] を選択します。これにより、CloudFormation のステータスと詳細が記載された新しいページが開きます。
-
[リソース] タブから、次のリソースの Amazon リソースネーム (ARN) を CloudFormation ページから AWS Marketplace の [顧客データストレージの設定]
ページのフィールド内にコピーします。 -
データフィードを保存する先の Amazon S3 バケット
-
Amazon S3 バケットを暗号化するための AWS KMS キー
-
(オプション) AWS が新しいデータを Amazon S3 バケットに配信したときに、通知を受信するための Amazon SNS トピック。
-
-
[Set up customer data storage (顧客データストレージの設定)] ページで、[Submit (送信)] を選択します。
-
(オプション) CloudFormation テンプレートによって作成されたポリシーを編集します。詳細については、「データフィードポリシー」を参照してください。
これで、データフィードにサブスクライブしました。次回にデータフィードが生成されると、データにアクセスできます。
AWS CloudFormation テンプレートの詳細については、「AWS CloudFormation ユーザーガイド」にある「AWS CloudFormation テンプレートの使用」を参照してください。
データフィードポリシー
Amazon S3 バケットが CloudFormation テンプレートによって作成されると、そのバケット、AWS KMS キー、および Amazon SNS トピックにアタッチされたアクセスに関するポリシーが作成されます。このポリシーにより、AWS Marketplace レポートサービスはデータフィード情報をバケットと SNS トピックに書き込むことができます。各ポリシーには次のようなセクションがあります (この例は Amazon S3 バケットのものです)。
{ "Sid": "AwsMarketplaceDataFeedsAccess", "Effect": "Allow", "Principal": { "Service": "reports.marketplace.amazonaws.com" }, "Action": [ "s3:ListBucket", "s3:GetObject", "s3:PutObject", "s3:GetEncryptionConfiguration", "s3:GetBucketAcl", "s3:PutObjectAcl" ], "Resource": [ "arn:aws:s3:::
datafeed-bucket
", "arn:aws:s3:::datafeed-bucket
/*" ] },
このポリシーでは、reports.marketplace.amazonaws.com
は AWS Marketplace が Amazon S3 バケットにデータをプッシュするために使用するサービスプリンシパルです。datafeed-bucket
は CloudFormation テンプレートで指定したバケットです。
AWS Marketplace レポートサービスが Amazon S3、AWS KMS、または Amazon SNS を呼び出すと、その際にバケットに書き込む予定のデータの ARN が提供されます。バケットに書き込まれるデータが、ユーザーに代わって書き込まれるデータだけになるようにするには、ポリシーの条件に aws:SourceArn
を指定します。次の例では、account-id
を自分の AWS アカウント の ID に置き換える必要があります。
{ "Sid": "AwsMarketplaceDataFeedsAccess", "Effect": "Allow", "Principal": { "Service": "reports.marketplace.amazonaws.com" }, "Action": [ "s3:ListBucket", "s3:GetObject", "s3:PutObject", "s3:GetEncryptionConfiguration", "s3:GetBucketAcl", "s3:PutObjectAcl" ], "Resource": [ "arn:aws:s3:::datafeed-test-bucket", "arn:aws:s3:::datafeed-test-bucket/*" , "Condition": { "StringEquals": { "aws:SourceAccount": "
account-id
", "aws:SourceArn": ["arn:aws:marketplace::account-id
:AWSMarketplace/SellerDataSubscription/DataFeeds_V1", "arn:aws:marketplace::account-id
:AWSMarketplace/SellerDataSubscription/Example-Report
"] } } },
データフィードからのサブスクリプションの解除
ウェブブラウザを開き、AWS Marketplace 管理ポータル
データフィードの使用
Amazon S3 バケットのデータが使用可能な場合、次の方法でデータフィードを使用できます。
-
データフィードへのアクセス で作成した Amazon S3 バケットから .CSV ファイルをダウンロードして、スプレッドシートでデータを表示できるようにします。
-
ETL (抽出、変換、ロード)、SQLクエリ、ビジネス分析ツールを使用して、データを収集して分析します。
データを収集して分析するには、AWS のサービスを使用するか、.CSV ベースのデータセットの分析を実行できるサードパーティー製のツールを使用できます。
例: AWS のサービスを使用してデータを収集して分析する
次の手順では、データフィードの送信先を Amazon S3 バケットとするように環境を設定済みであり、バケットにデータフィードが含まれていることを前提としています。
データフィードからデータを収集して分析するには
-
AWS Glue コンソール
から、データフィードを格納する Amazon S3 バケットに接続するクローラーを作成し、必要なデータを抽出して、AWS Glue Data Catalog にメタデータテーブルを作成します。 AWS Glue の詳細については、「AWS Glue デベロッパーガイド」を参照してください。
-
Athena コンソール
から、AWS Glue Data Catalog のデータに対して SQL クエリを実行します。 Athena の詳細については、「Amazon Athena ユーザーガイド」を参照してください。
-
Amazon QuickSight コンソール
から、分析を作成し、データのビジュアルを作成します。 詳細については、「Amazon QuickSight ユーザーガイド」を参照してください。
AWS サービスを使用してデータフィード内のデータを収集および分析する方法の詳細な例については、「AWS Marketplace ブログ」の「Using Seller Data Feed Delivery Service, Amazon Athena, and Amazon QuickSight to create seller reports