For AI agents: a documentation index is available at /docs/llms.txt. Append .md to any page URL for markdown, or send Accept: text/markdown.
Amazon S3
ビジネスニーズにより、Amplitudeでキャプチャされていない他の組織データソースとともに行動データを分析することがしばしば必要になります。 AmplitudeをAmazon S3と統合することで、AmplitudeデータをAmazon S3バケットにエクスポートできます。 これにより、Amplitudeデータセットを残りのデータと並べて分析できます。
エクスポートはプロジェクトごとに機能するため、1 つのプロジェクトから複数のバケットにデータを配信するように設定できます。 また、同じ組織内の複数のプロジェクトを使用して、イベントデータを単一の Amazon S3 バケットにエクスポートすることもできます。 Amplitudeはバケットへのアクセスを単一の組織に制限します。
考慮事項
- ポートフォリオプロジェクトをAmazon S3エクスポートのデータソースとして使用することはできません。
- Amplitudeの組織全体でバケット名を再利用することはできませんが、同じ組織内のプロジェクト全体でバケット名を再利用することはできます。 組織を移行する場合、新しい組織にそのAmazon S3の送信先を作成する前に、古い組織でAmazon S3の送信先を無効化または削除してください。
- Amplitudeは1時間あたり500万件のイベントをエクスポートすることを目指していますが、このレートはデータをエクスポートする顧客の総数によって異なります。
- 唯一起こり得るエラーはアクセシビリティエラーです。 これは、受信側で何らかの設定を変更したためにAmplitudeがバケットにアクセスできなくなった場合に発生することがあります。この場合、エクスポートは何度か試行した後に失敗し、Amplitudeはエクスポートを作成した管理者とユーザーにメールで通知します。
- エラーメールには、トラブルシューティングに関する情報が含まれています。この情報はAmplitude UIでは利用できません。 アクセシビリティが唯一考えられるエラーであるため、メールにはどの権限が不足しているかに関する情報が含まれています。
- 手動エクスポートを使用して履歴イベントをバックフィルする場合、サイズや日付範囲に制限はありません。 特定の日付範囲をエクスポートできない場合は、まずその日付範囲のイベントデータがあることを確認してください。 その後、サポートチームにチケットを送信してください。
連携を設定する
Amazon S3との連携を設定するには:
- Amplitudeデータで、**[カタログ]をクリックし、[宛先]**タブを選択します。
- [ウェアハウス送信先] セクションで、Amazon S3 をクリックします。
- このエクスポートに含めるデータを選択します。現在取得したイベントと今後のイベントをエクスポートするか、マージされたすべてのAmplitude IDをエクスポートするか、または両方をエクスポートします。 イベントに対しては、特定の基準を満たすイベントのみをエクスポートするようにフィルタリング条件を指定することもできます。
- [次へ] をクリックします。
- **「バケットポリシーの設定」**タブで、「バケットを作成」および「バケットポリシーを追加」セクションに記載されている手順に従います。 次に、「S3 バケット情報」セクションに必要な情報を入力します。
- [バケットポリシーの生成] をクリックし、[次へ] をクリックします。
Amplitudeはバケットへのアクセスを検証し、ベストエフォートベースで1時間ごとのエクスポートを開始します。 エクスポートは通常、1 時間ごとに実行され、1 時間のデータが含まれますが、実行頻度が低く、複数時間のデータが含まれている場合もあります。
セットアップが完了したら、連携からのエクスポートのステータスを確認してください。
手動エクスポートを実行する
データを手動でエクスポートすることで、履歴データをS3にバックフィルできます。
- 作成した Amazon S3 エクスポート接続ページに移動します。
- [バックフィル] タブに移動します。
- 必要な日付範囲を選択してください。
- [バックフィルの開始] をクリックします。
バックフィルの範囲がすでにエクスポートされたデータの範囲と重複する場合、Amplitudeは重複データを重複除外します。
自動エクスポートを無効にする
自動エクスポートを無効にするには、連携を開き、**[管理]**をクリックします。[エクスポート設定の管理] モーダルからエクスポートを切り替えることができます。
エクスポートされたデータ形式
イベントテーブルスキーマ
| 列 | タイプ | 概要 |
|---|---|---|
$insert_id | 文字列 | イベントの一意の識別子です。 Amplitudeは、過去7日以内に同じdevice_idとinsert_idで送信された後続のイベントを重複排除します。 |
amplitude_attribution_ids | 配列 | イベントのハッシュ化されたアトリビューション ID。 |
amplitude_id | long | ユーザーのオリジナルAmplitude ID。このフィールドを使用して、マージされたユーザーを自動的に処理できます。 例:2234540891 |
app | int | プロジェクトの [設定] ページにあるプロジェクト ID。 例:123456 |
city | 文字列 | 市区町村例:「サンフランシスコ」 |
client_event_time | タイムスタンプ | デバイスがイベントを記録した時点のローカルタイムスタンプ(UTC)。例:2015-08-10T12:00:00.000000 |
client_upload_time | タイムスタンプ | デバイスがイベントをアップロードした時点のローカルタイムスタンプ(UTC)。 例:2015-08-10T12:00:00.000000 |
country | 文字列 | 国。例:「アメリカ合衆国」 |
data | ディクト | first_eventや merged_amplitude_idなどの特定のフィールドが格納されているディクショナリ |
device_carrier | 文字列 | デバイスキャリア。例:Verizon |
device_family | 文字列 | デバイスファミリ。例:アップルのiPhone |
device_id | 文字列 | デバイス固有の識別子。 例:C8F9E604-F01A-4BD9-95C6-8E5357DF265D |
device_type | 文字列 | デバイスのタイプ。 例:アップルのiPhone 5s |
dma | 文字列 | 指定マーケティングエリア(DMA)。例: サンフランシスコ – オークランド – サンノゼ(カリフォルニア州) |
event_id | int | イベントを区別するカウンタ。 例: 1 |
event_properties | ディクト | イベントとともに送信するデータを表すキーと値のペアの辞書。 プロパティ値は配列に格納できます。 |
event_time | タイムスタンプ | Amplitudeタイムスタンプ(UTC)は、client_event_timeをserver_received_timeとclient_upload_timeの差で調整したものです。具体的には、event_time = client_event_time + (server_received_time - client_upload_time) です。Amplitudeはこのタイムスタンプを使用して、Amplitudeチャート上のイベントを整理します。注意: server_received_time と client_upload_time の差が 60 秒未満の場合、event_time は調整されず、client_event_time と等しくなります。例:2015-08-10T12:00:00.000000 |
event_type | 文字列 | イベントタイプ |
group_properties | ディクト | 「groups」フィールドにリストされているグループに関連付けられたプロパティを表すキーと値のペアの辞書です。 この機能はアカウントアドオンをお持ちのお客様が利用できます |
groups | ディクト | グループのタイプ。 詳細については、アカウントに関するドキュメントを参照してください。 |
idfa | 文字列 | (iOS)広告主の識別子 |
ip_address | 文字列 | IP アドレス。 例:「123.11.111.11」 |
language | 文字列 | ユーザーが設定した言語です。 |
library | 文字列 | イベントの送信に使用されたライブラリ。 例: amplitude-ios/3.2.1、 http/1.0 |
location_lat | float | 緯度。 例:12.3456789 |
location_lng | float | 経度。 例: -123.4567890 |
os_name | 文字列 | OS名。例:ios |
os_version | 文字列 | OS バージョン。 |
paying | ブール値 | ユーザーが収益を記録したことがある場合は True で、そうでない場合は (なし) です。 このプロパティーは、Identify APIを使用して変更してください。 |
platform | 文字列 | デバイスのプラットフォーム |
processed_time | タイムスタンプ | イベントがAmplitudeの処理システムによって処理された時のAmplitudeタイムスタンプ |
region | 文字列 | 地域例:カリフォルニア州 |
sample_rate | null | 採取されたサンプルの数。 この機能は、Scaleアドオンをご契約のお客様がご利用いただけます |
server_received_time | タイムスタンプ | Amplitudeのサーバーがイベントを受信した時のAmplitudeのタイムスタンプ (UTC)。 |
server_upload_time | タイムスタンプ | Amplitudeの取り込みシステムがイベントを取り込むときのAmplitudeタイムスタンプ(UTC)。 例: 2015-08-10T12:00:00.000000 |
session_id | long | エポックからのセッション開始時刻(ミリ秒単位)。 例: 1396381378123 |
start_version | 文字列 | ユーザーが最初に追跡されたアプリのバージョン。 例:1.0.0 |
user_id | 文字列 | あなたが指定した、読み取り可能なID。これは変更されないものでなければなりません。そのため、ユーザーのメールアドレスを使用することは推奨されません。 |
user_properties | ディクト | ユーザーに関連付けられたデータを表すキーと値のペアの辞書。 プロパティ値は配列に格納できます。 |
uuid | UUID | 行ごとに一意の識別子(送信されたイベント)。 例:bf0b9b2a-304d-11e6-934f-22000b56058f |
version_name | 文字列 | アプリのバージョン。 例:1.0.0 |
生のイベントファイルとデータ形式
AmplitudeはデータをJSONファイルの圧縮アーカイブとしてエクスポートします。JSONファイルは時間ごとに1つ以上のファイルで分割されています。 各ファイルには、1 行あたり 1 つのイベント JSON オブジェクトが含まれています。
ファイル名の構文は次のとおりです。ここで、時刻はデータがAmplitudeサーバーにアップロードされた時刻をUTCで表します(例:server_upload_time)。
projectID_yyyy-MM-dd_H#partitionInteger.json.gz
たとえば、2020年1月25日の午前5時から午後6時(UTC)の間にこのプロジェクトにアップロードされたデータの最初のパーティションは、次のファイルにあります。
187520_2020-01-25_17#1.json.gz
エクスポートされたデータの JSON オブジェクトスキーマは次のとおりです。
{
"server_received_time": UTC ISO-8601 timestamp,
"app": int,
"device_carrier": string,
"$schema":int,
"city": string,
"user_id": string,
"uuid": UUID,
"event_time": UTC ISO-8601 timestamp,
"platform": string,
"os_version": string,
"amplitude_id": long,
"processed_time": UTC ISO-8601 timestamp,
"version_name": string,
"ip_address": string,
"paying": boolean,
"dma": string,
"group_properties": dict,
"user_properties": dict,
"client_upload_time": UTC ISO-8601 timestamp,
"$insert_id": string,
"event_type": string,
"library":string,
"amplitude_attribution_ids": string,
"device_type": string,
"device_manufacturer": string,
"start_version": string,
"location_lng": float,
"server_upload_time": UTC ISO-8601 timestamp,
"event_id": int,
"location_lat": float,
"os_name": string,
"amplitude_event_type": string,
"device_brand": string,
"groups": dict,
"event_properties": dict,
"data": dict,
"device_id": string,
"language": string,
"device_model": string,
"country": string,
"region": string,
"is_attribution_event": bool,
"adid": string,
"session_id": long,
"device_family": string,
"sample_rate": null,
"idfa": string,
"client_event_time": UTC ISO-8601 timestamp,
}
エクスポートされたデータサイズ
エクスポートされるデータのサイズと量は、データの計測方法とAmplitudeに送信するイベントの数によって異なります。 Amplitudeは正確な見積もりを提供できませんが、平均イベントサイズを使用して大まかな見積もりを提供できます。
- エクスポート API を使用して、数時間ごとのファイルをダウンロードしてください。
- イベント数とzipファイルのサイズを比較して、平均イベントサイズを推定します。
- イベントセグメンテーションチャートを作成し、平均イベントサイズを掛け合わせて、1か月あたりのイベント総数を推定します。
「完了」ファイル
Amplitudeはエクスポートの一部のファイルに「complete」というラベルを付けることがあります。 これらのラベルは、その期間内にデータが存在しないかどうか、またはその期間内のデータがエクスポートされなかったかどうかを判断するのに役立ちます。
データがない時間枠のcompleteファイルが表示された場合、選択した時間枠でエクスポートするデータはありません。
completeファイルを無効にするには、Amplitude サポートまでお問い合わせください。
マージされたAmplitude IDのファイルとデータ形式
AmplitudeはデータをJSONファイルの圧縮アーカイブとしてエクスポートします。 各ファイルには、1行につき1つのマージされたAmplitude ID JSONオブジェクトが含まれています。
ファイル名の構文は次のとおりです。ここで、時刻はデータがAmplitudeサーバーにアップロードされた時刻をUTCで表します(例: server_upload_time)。
-OrgID_yyyy-MM-dd_H.json.gz
たとえば、このプロジェクトにアップロードされたデータを2020年1月25日の午後5時から6時(UTC)の間に見つけるには、次のファイルを確認してください:
-189524_2020-01-25_17.json.gz
マージされた ID JSON オブジェクトには、次のスキーマがあります。
{
"scope": int,
"merge_time": long,
"merge_server_time": long,
"amplitude_id": long,
"merged_amplitude_id": long
}
S3エクスポートのバケットポリシーを更新してKMS暗号化を使用する手順
以下は、既存のエクスポート接続に対してAWSS3バケットでKMS暗号化を有効にする手順の概要です。この暗号化により、セキュリティ体制が向上します。
移行手順
移行を開始する前に、ユーザーは次のものにアクセスできる必要があります。
- 既存のAmplitudeエクスポートにアクセスするための認証情報。
- S3バケット設定を更新したり、KMSキーを作成したりするための適切な権限。
既存のエクスポートをKMS暗号化を使用するように更新する方法:
- AWS KMS開発者ガイドに従って、AWSアカウントでKMSキーを作成してください。
- Amplitudeアカウントにログインし、移行したい既存のS3エクスポートに移動します。
- 設定の管理モーダルでトグルを無効に変更すると、エクスポートをオフにできます。新しい S3 エクスポート接続を作成するときに予期しない結果が発生しないように、進行中のすべてのエクスポートジョブが完了するまで待ちます。
- Amplitude S3エクスポートセットアップガイドに従って、新しいS3エクスポートを作成してください。
- エクスポート接続設定フローで、更新されたバケットポリシーとKMSポリシーを生成します。更新されたポリシーには、信頼すべき新しい AWS IAM ロールプリンシパルが含まれています。
- 必要に応じてロールバック手順のために、AWS の S3 バケット内の現在のバケットポリシーをバックアップしてください。
- ステップ 5 で生成したS3バケットポリシーとKMSキーポリシーをAWSアカウントで更新します。
- AWS S3 開発者ガイドに記載されているように、S3バケットをKMS暗号化を使用するように更新してください。
Nextをクリックして、バケットへのアクセスを検証し、エクスポート設定フローで新しい接続を作成します。- 新しいエクスポートが完了するまで待ちます。 完了後、データが新しいポリシーを使用して指定された S3 バケットにエクスポートされていることを確認できます。
- データエクスポートが正常に完了したことを確認したら、ステップ 2 で無効にした古いS3エクスポート接続を削除してください。
ロールバック手順
古い S3 エクスポート接続を削除した後は、以下に説明するロールバックプロセスは適用されません。
上記の移行手順の途中で問題が発生した場合、次の手順を実行してください。
- 新しく作成された S3 エクスポート接続が削除されていることを確認します。
- バケットポリシーを元に戻して、AWS アカウントのルートプリンシパルを信頼します(このポリシーは上記の手順 6 でバックアップされています)。
- バケット暗号化をステップ 8 で変更した前の設定に戻します。
- ステップ 3 で無効化していた現在の S3 エクスポート接続を再度有効にします。
- (オプション)ステップ 1 で作成した KMS キーを削除します。
よくある質問
移行後にエクスポートデータが失われることはありますか?
S3 エクスポート接続を無効にして削除した後も、S3 送信先バケットにすでにエクスポートされているデータは削除されません。
ただし、エクスポートジョブ履歴などのメタデータは失われます。
移行中にデータエクスポートにギャップはありますか?
古いS3エクスポート接続が無効になってから 24 時間以内に新しいS3エクスポート接続が作成される限り、データエクスポートにギャップが発生することはありません。
古い接続が無効になってから 24 時間後に新しいエクスポート接続が作成された場合はどうすればよいですか?
古い接続が無効になってから 24 時間後に新しいエクスポート接続が作成され、データエクスポートにギャップがある場合は、手動でバックフィル機能を使用して、不足している日付範囲のデータを埋めます。 バックフィルエクスポートを使用すると、バックフィルの日付範囲が以前にエクスポートされた日付範囲と重複する場合でも、エクスポートされたデータの重複を防止できます。
移行しなかった場合の影響はどうなりますか?
(将来の状態) AWS IAM ロールプリンシパルではなく (現在の状態) AWS アカウントルートプリンシパルを信頼することによる、送信先 S3 バケットのアクセス範囲の制限の緩さ。この AWS IAM ロールは、Amplitude プロジェクト ID に固有のものであり、このプロジェクト ID で新しい S3 エクスポート接続が作成されます。
以前のバケットポリシーにロールバックすることはできますか?
いいえ。古い S3 エクスポート接続が削除された後は、AWS アカウントのルートプリンシパルをバケットポリシーのトラスティとして使用して S3 エクスポートを設定することはできません。
これは役に立ちましたか?