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.
Google BigQuery
Amplitude UIを使用してAmplitudeイベントデータをBigQueryに定期的に同期するように設定するか、履歴データの同期を手動で開始してください。この記事では、AmplitudeアカウントとBigQueryアカウントを接続し、データを同期する方法について説明します。
考慮事項
- クエリコストを節約するため、Amplitudeはイベントテーブルを
event_timeの日付でパーティション分割します。テーブルのパーティショニングの詳細については、BigQueryのドキュメントを参照してください。 - Amplitudeはエクスポートの整合性チェックを毎日実行します。 Amplitudeは毎日、過去数日間にエクスポートされたイベントの数を確認します。 カウントが予想カウントと一致しない場合、Amplitudeはその日付に対して自動的にバックフィルを実行します。
- イベントエクスポートの重複が発生する可能性があります。特に、すでにエクスポート済みのデータのバックフィル時に発生する場合があります。これを支援するために、Amplitudeは提供されたデータセットに、
deduplicated_<appid>という名前のテーブル関数を作成します。このテーブル機能は、重複除外されたデータのビューを提供します。
重複除外テーブル機能の例
SELECT * FROM `testProject.testDataset.deduplicated_EVENTS_12345`('2022-01-01', '2022-02-10');
会社のネットワークポリシーによっては、AmplitudeのサーバーがBigQueryインスタンスにアクセスできるようにするために、許可リストに次のIPアドレスを追加する必要がある場合があります。
- Amplitude米国のIPアドレス:
- 52.33.3.219
- 35.162.216.242
- 52.27.10.221
- Amplitude EU の IP アドレス:
- 3.124.22.25
- 18.157.59.125
- 18.192.47.195
- Amplitude米国のIPアドレス:
前提条件
BigQuery へのエクスポートを開始するには、以下が必要です。
- BigQuery Transfer サービスが有効になっている BigQuery プロジェクト。
- Amplitudeのサービスアカウントです。これにより、AmplitudeはデータをGoogle Cloudプロジェクトにエクスポートできます。サービスアカウントでは、次のロールを有効にする必要があります。
- BigQueryユーザー
- BigQueryデータエディター
- 次の権限が有効になっているカスタムロールです。
bigquery.transfers.getbigquery.transfers.updatebigquery.datasets.update
サービスアカウントを作成したら、サービスアカウントキーファイルを生成してダウンロードし、Amplitudeにアップロードしてください。 AmplitudeのアカウントキーをJSON形式でエクスポートします。
連携を設定する
繰り返しデータエクスポートの作成には、3つのステップが必要です。各同期は10分以内に完了し、すべてのジョブがAmplitudeに表示されます。
AmplitudeデータをBigQueryに繰り返しエクスポートするように設定するには、以下の手順に従ってください。
- Amplitudeデータで、**[カタログ]をクリックし、[宛先]**タブを選択します。
- [Warehouse 送信先] セクションで、BigQuery をクリックします。
- 「はじめに」タブで、エクスポートするデータとエクスポートの頻度を選択します。 今日取り込まれたイベントを今後エクスポートするか、マージされたすべてのAmplitude IDをエクスポートするか、またはその両方を行うことができます。 イベントに対しては、特定の基準を満たすイベントのみをエクスポートするようにフィルタリング条件を指定することもできます。
- EventテーブルとMerge IDsテーブルのスキーマを確認し、次へをクリックします。
- Amplitude データを受信する BigQuery データセットを指定し、サービスアカウントキーファイルをアップロードします。 このファイルはJSON形式である必要があります。
- 次へ をクリックします。 Amplitudeは認証情報をテストするためにテストアップロードを試みます。 アップロードが成功したら、完了をクリックして BigQuery の送信先の設定と有効化を完了します。
Amplitude は、将来のイベントとマージされたユーザーを自動的に BigQuery に送信します。 Amplitudeは、ベストエフォートベースでファイルをお客様のBigQueryアカウントにエクスポートします。エクスポートは通常、1 時間ごとに実行され、1 時間のデータが含まれますが、実行頻度が低く、複数時間のデータが含まれている場合もあります。
イベントテーブルスキーマ
イベントテーブルのスキーマには、次の列が含まれています。
| 列 | タイプ | 概要 |
|---|---|---|
Adid | 文字列 | (Android)Google Playサービスの広告ID(ADID)。例:AEBE52E7-03EE-455A-B3C4-E57283966239 |
amplitude_id | BIGNUMERIC | ユーザーのオリジナルAmplitude ID。このフィールドを使用して、マージされたユーザーを自動的に処理できます。 例:2234540891 |
app | 整数 | プロジェクトの [設定] ページにあるプロジェクト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 | JSON | 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 | 整数 | イベントを区別するカウンタ。 例: 1 |
event_properties | JSON | |
event_time | タイムスタンプ | Amplitudeタイムスタンプ(UTC)は、server_received_timeとclient_upload_timeの差によって調整されたclient_event_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 |
followed_an_identify | ブール値 | この現在の SDK イベントと最後に認識された SDK イベントとの間に識別イベントがあった場合は True です。 例:True |
group_properties | JSON | |
groups | JSON | グループのタイプ。 詳細については、アカウントに関するドキュメントを参照してください。 |
idfa | 文字列 | (iOS)広告主の識別子です。 例:AEBE52E7-03EE-455A-B3C4-E57283966239 |
ip_address | 文字列 | IP アドレス。 例:「123.11.111.11」 |
is_attribution_event | ブール値 | |
language | 文字列 | |
library | 文字列 | |
location_lat | フロート | 緯度。 例:12.3456789 |
location_lng | フロート | 経度。 例: -123.4567890 |
os_name | 文字列 | OS名。例:ios |
os_version | 文字列 | OS バージョン。 |
paying | 文字列 | ユーザーが収益を記録したことがある場合は True で、そうでない場合は (none) です。 注:プロパティ値は、Identify APIを使用して変更できます。 例:true |
platform | 文字列 | |
processed_time | タイムスタンプ | |
region | 文字列 | 地域例:カリフォルニア州 |
sample_rate | BIGNUMERIC | |
server_received_time | タイムスタンプ | |
server_upload_time | タイムスタンプ | Amplitudeサーバーがイベントを受信した時のAmplitudeタイムスタンプ(UTC)。 例: 2015-08-10T12:00:00.000000 |
session_id | BIGNUMERIC | エポックからのセッション開始時刻(ミリ秒単位)。 例: 1396381378123 |
start_version | 文字列 | ユーザーが最初に追跡されたアプリのバージョン。 例:1.0.0 |
user_id | 文字列 | あなたが指定した、読み取り可能なID。変更のないものを使用してください。そのため、ユーザーのメールアドレスを使用することは推奨されません。 |
user_properties | JSON | |
uuid | 文字列 | 行ごとに一意の識別子(送信されたイベント)。 例:bf0b9b2a-304d-11e6-934f-22000b56058f |
version_name | 文字列 | アプリのバージョン。 例:1.0.0 |
マージされたユーザーのテーブルスキーマ
マージされたユーザーのテーブルスキーマには、次のものが含まれています。
| 列 | タイプ | 概要 |
|---|---|---|
amplitude_id | NUMBER(38,0) | Amplitude IDはユーザーのオリジナルAmplitude IDにマージされます。 |
merge_event_time | タイムスタンプ | ユーザーの新しいAmplitude IDが元のAmplitude IDに関連付けられたイベントが発生した時刻。 |
merge_server_time | タイムスタンプ | ユーザーの新しいAmplitude IDが元のAmplitude IDに関連付けられたときのイベントのサーバー時間。 |
merged_amplitude_id | NUMBER(38,0) | ユーザーが最初に作成されたときに最初に割り当てられたAmplitude ID。 |
BigQueryの重複排除テーブル
BigQueryで重複排除テーブルを作成するには:
CREATE OR REPLACE TABLE FUNCTION `amplitude_bq_ingestion`.deduplicated_EVENTS(start_date DATE, end_date DATE)
AS
SELECT *
FROM (SELECT *,
ROW_NUMBER() OVER (
PARTITION BY uuid
) rn
FROM `amplitude_bq_ingestion`.`EVENTS`
WHERE DATE(event_time) >= start_date
and DATE(event_time) <= end_date) t
WHERE rn = 1;
これは役に立ちましたか?