販売者配送データフィードサービス - AWS Marketplace

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

販売者配送データフィードサービス

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_fromupdate_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 テンプレートを使用してデータフィードを受信するように環境を設定するには
  1. ウェブブラウザを開いて AWS Marketplace 管理ポータル にサインインし、「顧客データストレージの設定」に進みます。

  2. [Create resources with AWS CloudFormation (CloudFormatiion テンプレートを使用してリソースを作成する)] を選択して、AWS CloudFormation コンソールの別のウィンドウでテンプレートを開きます。

  3. テンプレートで以下を指定し、[Next (次へ)] を選択します。

    • スタック名 - データフィードへのアクセスを有効にするために作成するリソースのコレクション。

    • Amazon S3 バケット名 - データフィードを保存する先のバケット。

    • (オプション) Amazon SNS トピック名 - AWS が新しいデータを Amazon S3 バケットに配信したときに、通知を受信するためのトピック。

  4. [Review (確認)] ページで入力内容を確認し、[Create stack (スタックの作成)] を選択します。これにより、CloudFormation のステータスと詳細が記載された新しいページが開きます。

  5. [リソース] タブから、次のリソースの Amazon リソースネーム (ARN) を CloudFormation ページから AWS Marketplace の [顧客データストレージの設定] ページのフィールド内にコピーします。

    • データフィードを保存する先の Amazon S3 バケット

    • Amazon S3 バケットを暗号化するための AWS KMS キー

    • (オプション) AWS が新しいデータを Amazon S3 バケットに配信したときに、通知を受信するための Amazon SNS トピック。

  6. [Set up customer data storage (顧客データストレージの設定)] ページで、[Submit (送信)] を選択します。

  7. (オプション) 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 管理ポータルにサインインします。次に、[お問い合わせ] ページに移動して、AWS Marketplace Seller Operations チームに受信解除のリクエストを送信します。受信解除のリクエストには、最大 10 営業日かかる場合があります。

データフィードの使用

Amazon S3 バケットのデータが使用可能な場合、次の方法でデータフィードを使用できます。

  • データフィードへのアクセス で作成した Amazon S3 バケットから .CSV ファイルをダウンロードして、スプレッドシートでデータを表示できるようにします。

  • ETL (抽出、変換、ロード)、SQLクエリ、ビジネス分析ツールを使用して、データを収集して分析します。

    データを収集して分析するには、AWS のサービスを使用するか、.CSV ベースのデータセットの分析を実行できるサードパーティー製のツールを使用できます。

例: AWS のサービスを使用してデータを収集して分析する

次の手順では、データフィードの送信先を Amazon S3 バケットとするように環境を設定済みであり、バケットにデータフィードが含まれていることを前提としています。

データフィードからデータを収集して分析するには
  1. AWS Glue コンソールから、データフィードを格納する Amazon S3 バケットに接続するクローラーを作成し、必要なデータを抽出して、AWS Glue Data Catalog にメタデータテーブルを作成します。

    AWS Glue の詳細については、「AWS Glue デベロッパーガイド」を参照してください。

  2. Athena コンソールから、AWS Glue Data Catalog のデータに対して SQL クエリを実行します。

    Athena の詳細については、「Amazon Athena ユーザーガイド」を参照してください。

  3. Amazon QuickSight コンソールから、分析を作成し、データのビジュアルを作成します。

    詳細については、「Amazon QuickSight ユーザーガイド」を参照してください。

AWS サービスを使用してデータフィード内のデータを収集および分析する方法の詳細な例については、「AWS Marketplace ブログ」の「Using Seller Data Feed Delivery Service, Amazon Athena, and Amazon QuickSight to create seller reports」を参照してください。