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.
スノーフレーク
AmplitudeイベントデータをSnowflakeアカウントにロードします。 Amplitude UIを通じて定期的な同期を設定したり、履歴データの同期を手動で開始したりできます。
考慮事項
会社のネットワークポリシーによっては、AmplitudeのサーバーがSnowflakeインスタンスにアクセスできるように、以下の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アドレス:
制限事項
- 1つのSnowflake SQLクエリの最大実行時間は12時間です。
- 各プロジェクトは、データタイプごとに1つのSnowflakeエクスポート送信先しか指定できません。これは、プロジェクトごとにイベントの送信先が1つ、マージされたIDの送信先が1つであることを意味します。
既存のSnowflake認証情報を再利用する
Snowflakeを新規にエクスポートまたはインポートする場合、Amplitudeを使用すると、以前に保存した認証情報を再入力する代わりに、組織から選択できます。 再利用可能な認証情報には、他のエクスポートやインポートからの接続、および他のプロジェクトで作成された接続が含まれます(権限がある場合)。
共有認証情報は一括で更新されます
Amplitudeは基盤レベルで認証情報を共有します。1つの接続でパスワードまたはキーペアを更新した場合、Amplitudeはそれらの認証情報を共有するすべての接続を更新します。 変更を行う前に、どの接続が認証情報を使用しているかを確認してください。
既存の認証情報を再利用するには、新しい接続を作成する際の認証情報入力ステップで「既存の認証情報を使用」を選択します。Amplitudeは、お客様の組織から保存されたすべての認証情報をリストアップします。 別のプロジェクトの資格情報を再利用するには、両方のプロジェクトでデータウェアハウス接続を作成するための権限が必要です。
連携を設定する
繰り返しデータ エクスポートの作成は 3 つのステップで構成されており、お客様ご自身で実行できます。各同期は通常 5~10 分以内に完了しますが、このタイミングはシステムの負荷とデータ量によって異なります。この方法では、ジョブを監視することもできます。
Amplitude データ用の専用ウェアハウスを使用
Amplitude は、Amplitude データのロードに専用の Snowflake ウェアハウスインスタンスを使用することを強く推奨しています。共有ウェアハウスを使用すると、負荷容量の問題が発生したり、他のSnowflake統合が中断したりする可能性があります。 最適なパフォーマンスを確保し、他のSnowflakeオペレーションとの競合を防ぐために、別個のウェアハウスを構成してください。
AmplitudeデータのSnowflakeへの定期的なエクスポートを設定するには、以下の手順に従ってください。
必要なユーザー権限
Amplitude での管理者/マネージャー権限と、Snowflake でリソースを有効にできる役割が必要です。
Amplitudeデータで、**[カタログ]をクリックし、[宛先]**タブを選択します。
[ウェアハウス送信先] セクションで、**[Snowflake] **をクリックします。
*「データをSnowflakeにエクスポート」*の下で、このエクスポートに含めるデータを選択します。今日取り込まれたイベントと今後のイベントをエクスポートするか、マージされたすべてのAmplitude IDをエクスポートするか、または両方をエクスポートします。イベントに対しては、特定の基準を満たすイベントのみをエクスポートするようにフィルタリング条件を指定することもできます。
イベントテーブルとマージ ID テーブルのスキーマを確認し、[Next]をクリックします。
*[Amplitude の Snowflake 認証情報] *セクションに、次の情報を入力します。
- アカウント識別子: Snowflakeアカウントの識別子(形式は
<org-name>-<account-name>)。 詳細については、Snowflakeのアカウント識別子に関するドキュメント{:target="_blank" rel="noopener noreferrer"}を参照してください。 - ウェアハウス:Amplitudeがデータをロードするために使用するウェアハウスです。Amplitudeデータ用の専用ウェアハウスを使用することで、他のSnowflake統合との負荷容量の問題を回避できます。 ウェアハウスを共有すると、他のSnowflake業務に支障をきたす可能性があります。
- データベース:Amplitudeがデータを保存するデータベースです。このデータベースはAmplitudeデータ専用にしてください。
- ロール:接続がこのデータを書き込むために使用するロールです。ロールのデフォルト値は
AMPLITUDEのみです。 - ユーザー名:AmplitudeがSnowflakeアカウントに接続するために使用するユーザー名です。
Amplitudeは、Snowflake用のパスワードベースの認証とキーペア認証を提供しています。
- アカウント識別子: Snowflakeアカウントの識別子(形式は
Snowflake パスワード認証の廃止
2026年5月以降、Snowflake は単一要素パスワード認証のサポートを廃止します。 これは、AmplitudeからSnowflakeへのデータエクスポートに影響します。 Amplitudeはセキュリティを強化し、将来のSnowflakeとの互換性を確保するためにキーペア認証への移行を推奨しています。 移行に関するガイダンスについては、Snowflakeパスワード認証の廃止に関するよくある質問をご覧ください。
パスワードベースの認証を使用する場合は、パスワードは大文字と小文字を区別することに注意してください。
To use password authentication, select the Password option and enter your password in the Password field. Key pair authentication (Recommended): To use key pair authentication, select the Key pair option and click Generate Key. To use key pair authentication, provide the organization and account names in the format ORGNAME-ACCOUNTNAME.
キーペア認証を使用する場合は、ORGNAME-ACCOUNTNAME という形式を使用する必要があります。 この特定のフォーマットがない場合、Snowflake はJWT token is invalidエラーを生成します。
- 自動生成されたSQLクエリをコピーし、Snowflakeで実行して、Amplitudeに適切な権限を付与します。
- 次へ をクリックします。Amplitudeは入力した認証情報を使用してテストデータをアップロードしようとします。 アップロードが成功したら、[完了] をクリックします。
Amplitudeは今後のイベントをすべて自動的にSnowflakeに送信します。
ここからAmplitudeはマイクロバッチファイルを生成し、ベストエフォートベースで顧客所有のSnowflakeアカウントにそれらをロードします。 エクスポートは通常10分ごとに実行されますが、システムの負荷とデータ量によっては実行頻度が低い場合があります。 通常、Amplitudeがイベントを受信してから20分以内にSnowflakeアカウントのデータを表示できますが、そのタイミングは異なる場合があります。
変換とカスタムイベント定義をエクスポートする
イベントデータと並行して、Amplitudeは変換とカスタムイベント定義をSnowflakeにエクスポートできます。 これにより、Amplitudeで構築したロジックがウェアハウスと同期し続けることができるため、生イベントの独自のコピーにも同じセマンティクスを適用でき、データのドリフトを減らすことができます。
Amplitudeは、変換された行ではなく定義をエクスポートします。 生のイベント テーブルはそのまま残ります。 同期するたびに現在の定義の完全なスナップショットが書き込まれるため、変換済みイベントやカスタムイベントをダウンストリームで再構築したり、それらの定義が時間の経過とともにどのように変化したかを記録したりできます。
提供状況
Amplitude は、この機能を徐々に展開しています。Snowflakeのエクスポート設定にデータ設定が表示されない場合は、Amplitudeアカウントチームに連絡して有効にしてください。
Amplitudeがエクスポートする内容
- イベント変換:マージとマージイベント変換の両方の変換タイプは、Amplitude データがUIに変換として表示します。
- カスタムイベント:カスタムイベント定義。各イベントを定義するフィルタとグループ化が含まれます。
Amplitudeはアクティブな定義のみをエクスポートします。 無効化された変換や削除されたカスタムイベントをエクスポートしません。また、ユーザープロパティ、チャネル分類子、派生プロパティ変換もエクスポートしません。
データ設定エクスポートを設定する
必要なユーザー権限
Amplitude の管理者/マネージャー権限と、ターゲットデータベースのAMPLITUDEスキーマにテーブルを作成できる Snowflake ロールが必要です。接続テストはこの許可を検証しません。そのため、サイレントエクスポートの失敗を避けるために、最初の同期を行う前にこの許可を確認してください。
- Amplitudeデータで、**[カタログ]をクリックし、[宛先]**タブを選択します。
- [ウェアハウス送信先] セクションで、**[Snowflake] **をクリックします。
- エクスポート設定で、[データ設定] を選択し、次に**[イベント変換]、[カスタムイベント]**、またはその両方を選択します。
- Amplitudeがスケジュールピッカーでスナップショットを更新する頻度を設定します。 ほとんどのチームにとって、デイリーはうまく機能します。
- Snowflakeの認証情報を入力または再利用し、生成されたSQL権限をSnowflakeで実行してから、「完了」をクリックします。
Amplitudeは各データ型をAMPLITUDEスキーマ内の独自のテーブルに書き込み、実行ごとに新しいスナップショットを追加します。 現在の定義を読み取るには、最新の snapshot_at を使用して行をクエリします。 過去の状態を検査するには、必要なスナップショットにフィルタリングしますsnapshot_at。 Amplitudeは約1年間分のスナップショットを保持します。
過去のAmplitudeデータをSnowflakeにエクスポートする
Amplitude から Snowflake に履歴データをエクスポートするには、連携に移動し、[データのエクスポート]をクリックして日付範囲を選択します。
このプロセスには1日から数週間かかることがあります。これは、データ量、ウェアハウスのサイズ、クラスタ数、ネットワーク帯域幅、および履歴データの同時エクスポート数などの要素によって異なります。
Snowflakeのコンピューテーションコストを削減
Amplitudeからデータを受信する際のSnowflakeのコンピューテーションコストを削減するには、以下の方法を試してください。
これらの推奨事項の有効性は、Snowflakeインスタンスにエクスポートする頻度によって異なります。他のSnowflake操作でパフォーマンス上の問題を防ぐために、Amplitudeデータ用の専用ウェアハウスを使用することを忘れないでください。
- 専用のAmplitudeウェアハウス用のウェアハウスのサイズとクラスター数を変更できます。 エクスポートの頻度を短くしたい場合(15~30分)、
xsmallまたはsmallから始めてみてください。 その後、必要に応じてアップグレードします。 - データをSnowflakeにバックフィルする場合は、まず小さなウェアハウスから始め、必要に応じてアップグレードしてください。
- また、自動サスペンド時間を60秒に短縮することもできます。 このオプションは、Snowflake UIでは使用できない場合がありますが、Snowflakeの直接クエリを使用して手動で設定できます。
Snowflakeのエクスポート形式
データの場所
Amplitudeは以下の命名規則を使用してデータをSnowflakeアカウントにエクスポートします。
| コンポーネント | フォーマット | 概要 |
|---|---|---|
| データベース | DB_{org_id} | データベース名にAmplitudeの組織IDを使用します。 |
| スキーマ | SCHEMA_{project_id} | スキーマ名にはAmplitudeプロジェクトIDを使用します。 |
| イベント表 | EVENTS_{project_id} | イベントテーブル名にAmplitudeプロジェクトIDを使用します。 |
| 結合ユーザーテーブル | MERGE_IDS_{project_id} | マージされたユーザーテーブル名にAmplitudeプロジェクトIDを使用します。 |
たとえば、組織 ID が 12345 で、プロジェクト ID が 67890 の場合:
- イベント:
DB_12345.SCHEMA_67890.EVENTS_67890。 - マージされたユーザー:
DB_12345.SCHEMA_67890.MERGE_IDS_67890。
各プロジェクトは、データタイプごとに1つのSnowflakeエクスポート送信先しか指定できません。これは、プロジェクトごとにイベントの送信先が1つ、マージされたIDの送信先が1つであることを意味します。
イベントテーブル
イベントテーブルスキーマ
イベントテーブルのスキーマには、次の列が含まれています。
| 列 | タイプ | 概要 |
|---|---|---|
amplitude_attribution_ids | 配列 | イベントのハッシュ化されたアトリビューションID |
amplitude_id | 番号 | ユーザーのオリジナルAmplitude ID。このフィールドを使用して、マージされたユーザーを自動的に処理できます。 例:2234540891 |
app | 番号 | プロジェクトの [設定] ページにあるプロジェクトIDです。例:123456 |
city | VARCHAR | 市区町村例:「サンフランシスコ」 |
client_event_time | TIMESTAMP_NTZ | デバイスがイベントを記録した時点のローカルタイムスタンプ(UTC)。例:2015-08-10T12:00:00.000000 |
client_upload_time | TIMESTAMP_NTZ | デバイスがイベントをアップロードした時点のローカルタイムスタンプ(UTC)。 例:2015-08-10T12:00:00.000000 |
country | VARCHAR | 国。例:「アメリカ合衆国」 |
data | バリアント | Amplitudeがfirst_eventやmerged_amplitude_idなどの特定のフィールドを格納するディクショナリ。 |
device_carrier | VARCHAR | デバイスキャリア。例:Verizon |
device_family | VARCHAR | デバイスファミリ。例:アップルのiPhone |
device_id | VARCHAR | デバイス固有の識別子。 例:C8F9E604-F01A-4BD9-95C6-8E5357DF265D |
device_type | VARCHAR | デバイスのタイプ。 例:アップルのiPhone 5s |
dma | VARCHAR | 指定マーケティングエリア(DMA)。例:サンフランシスコ–オークランド–サンノゼ(カリフォルニア州) |
event_id | 番号 | イベントを区別するカウンタ。 例: 1 |
event_properties | バリアント | |
event_time | TIMESTAMP_NTZ | 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 秒未満の場合、Amplitude は event_time を調整せず、その値は client_event_time と等しくなります。例:2015-08-10T12:00:00.000000 |
event_type | VARCHAR | イベントタイプ |
group_properties | バリアント | |
groups | バリアント | グループのタイプ。 詳細については、アカウントのドキュメントを参照してください。 |
ip_address | VARCHAR | IP アドレス。 例:「123.11.111.11」 |
language | VARCHAR | |
library | VARCHAR | |
location_lat | フロート | 緯度。 例:12.3456789 |
location_lng | フロート | 経度。 例: -123.4567890 |
os_name | VARCHAR | OS名。例:ios |
os_version | VARCHAR | OS バージョン。 |
paying | VARCHAR | ユーザーが収益を記録したことがある場合は True で、そうでない場合は (none) です。 注: プロパティ値は、Identify API を使用して変更できます。 例:true |
platform | VARCHAR | |
processed_time | TIMESTAMP_NTZ | |
region | VARCHAR | 地域例:カリフォルニア州 |
sample_rate | 番号 | |
server_received_time | TIMESTAMP_NTZ | |
server_upload_time | TIMESTAMP_NTZ | Amplitudeサーバーがイベントを受信した時のAmplitudeタイムスタンプ(UTC)。 例: 2015-08-10T12:00:00.000000 |
session_id | 番号 | エポックからのセッション開始時刻(ミリ秒単位)。 例: 1396381378123 |
start_version | VARCHAR | Amplitudeが最初にユーザーを追跡した時のアプリのバージョン。 例:1.0.0 |
user_id | VARCHAR | 指定した読み取り可能なID。 不変のものを使用してください。そのため、ユーザーのメールアドレスを使用することは避けてください。 |
user_properties | バリアント | |
uuid | VARCHAR | 行ごとに一意の識別子(送信されたイベント)。 例:bf0b9b2a-304d-11e6-934f-22000b56058f |
version_name | VARCHAR | アプリのバージョン。 例:1.0.0 |
イベントテーブルのクラスタリング
エクスポートされたイベント テーブルは、デフォルトで次のクラスタリング キーを(順番に)使用します。
TO_DATE(EVENT_TIME)TO_DATE(SERVER_UPLOAD_TIME)EVENT_TYPEAMPLITUDE_ID
これにより、時間ベースのクエリのクエリパフォーマンスが最適化されます。クラスタリングキーは、クエリパターンに合わせて変更できます。
マージされたユーザーテーブル
マージされたユーザーのテーブルスキーマ
マージされたユーザーのテーブルスキーマには、次のものが含まれています。
| 列 | タイプ | 概要 |
|---|---|---|
amplitude_id | NUMBER(38,0) | ユーザーのオリジナルAmplitude IDにマージされるAmplitude ID。 |
merge_event_time | タイムスタンプ | Amplitudeがユーザーの新しいAmplitude IDを元のAmplitude IDに関連付けるイベントの時刻。 |
merge_server_time | タイムスタンプ | Amplitudeがユーザーの新しいAmplitude IDを元のAmplitude IDに関連付けるときのイベントのサーバー時間。 |
merged_amplitude_id | NUMBER(38,0) | Amplitudeが最初にユーザーを作成したときに最初に割り当てられたAmplitude ID。 |
マージされたユーザーテーブルのクラスタリング
Amplitudeは、マージされたIDテーブルを DATE_TRUNC('HOUR', MERGE_SERVER_TIME)でクラスタ化します。これにより、ユーザーのマージが発生した時刻でフィルタリングするクエリが最適化されます。クラスタリングキーは、クエリパターンに合わせて変更できます。
イベント変換テーブル
Amplitudeは変換定義を {database}.AMPLITUDE.EVENT_TRANSFORMATIONS_{project_id}に書き込みます。ここで、{database} は接続したデータベースであり、{project_id} は AmplitudeプロジェクトIDです。各行は、特定のスナップショットにおける1つの変換定義です。
| 列 | タイプ | 概要 |
|---|---|---|
project_id | 番号 | AmplitudeプロジェクトID。 |
snapshot_at | タイムスタンプ | Amplitudeがこのスナップショットを生成したときのことです。 |
export_job_id | 文字列 | このスナップショットを書き込んだエクスポート実行の識別子。 |
transformation_id | 文字列 | 安定した変換識別子。 |
name | 文字列 | UIでの変換表示名。 |
description | 文字列 | 自由形式の説明。 |
transform_type | 文字列 | 変換タイプ(マージされたイベントやマージされたイベントから派生したプロパティなど)。 |
merged_props | バリアント | マージタイプの変換を行う場合、ターゲットプロパティからソースプロパティへのマッピング。 |
merge_priority | バリアント | マージ解決のための符号化された優先順位規則。 |
merged_events | バリアント | 変換を作成するためにどのイベントが結合されるかを定義します。 |
derived_props | バリアント | 変換によって作成されるプロパティ。 これはAmplitudeのスタンドアロンの派生プロパティ機能と同じではありません。 |
derived_props_for_merge_events | バリアント | マージ変換時に使用されるマージイベント固有の派生プロパティマッピング。 |
is_enabled | ブール値 | 変換がアクティブかどうか。 Amplitudeは無効化された変換を適用しません。 |
created_at | タイムスタンプ | 誰かが変換を作成したとき。 |
created_by | 文字列 | 変換を作成したユーザー。 |
last_updated_at | タイムスタンプ | 誰かが変換を最後に変更した日時。 |
last_updated_by | 文字列 | 変換を最後に変更したユーザー。 |
型付きの列には半構造化 JSON VARIANTが保持されます。Snowflakeの半構造化データ関数{:target="_blank" rel="noopener noreferrer""}を使用してクエリを実行してください。
カスタムイベントテーブル
Amplitudeはカスタムイベント定義を {database}.AMPLITUDE.CUSTOM_EVENTS_{project_id} に書き込みます。 各行は、特定のスナップショットにおける 1 つのカスタムイベント定義です。
| 列 | タイプ | 概要 |
|---|---|---|
project_id | 番号 | AmplitudeプロジェクトID。 |
snapshot_at | タイムスタンプ | Amplitudeがこのスナップショットを生成したときのことです。 |
export_job_id | 文字列 | このスナップショットを書き込んだエクスポート実行の識別子。 |
custom_event_id | 文字列 | 安定したカスタムイベント識別子。 |
name | 文字列 | 標準的なカスタムイベント名。 |
display_name | 文字列 | UIに表示される、ユーザーにわかりやすい名前。 |
description | 文字列 | 自由形式の説明。 |
definition | バリアント | カスタムイベントの定義式(フィルタやグループなど)。 |
category | 文字列 | オプションのカテゴリまたはグループ。 |
classifications | 配列 | 追加のタグまたは分類。 |
suggestion_status | 文字列 | 提案の状態(提案済み、承認済み、拒否済みなど)。 |
has_properties | ブール値 | カスタムイベントにカスタムプロパティが定義されているかどうか。 |
is_official | ブール値 | これが組織公式のカスタムイベントかどうか。 |
is_restricted | ブール値 | アクセスが特定のユーザーまたはロールに制限されているかどうか。 |
is_autotrack | ブール値 | 自動タグ付けがこのカスタムイベントを生成したかどうか。 |
is_hidden | ブール値 | カスタムイベントを標準のUIリストから非表示にするかどうか。 |
created_at | タイムスタンプ | 誰かがカスタムイベントを作成したとき。 |
created_by | 文字列 | カスタムイベントを作成したユーザー。 |
last_updated_at | タイムスタンプ | 誰かがカスタムイベントを最後に変更した日時。 |
last_updated_by | 文字列 | カスタムイベントを最後に変更したユーザー。 |
これは役に立ちましたか?