ユーザープロファイル属性
このページは、Snowflakeのデフォルトおよびカスタム属性ビューのリファレンスです。デフォルト属性用に3つのビュー、カスタム属性用に3つのビューがあり、それぞれ固有のパフォーマンス上の考慮事項を持つ特定のユースケース向けに設計されています。
ダッシュボードとのデータ整合性
まれに、このページのSnowflakeビューにおけるデフォルトおよびカスタム属性の値が、Brazeダッシュボードのユーザープロファイルに表示される内容と一致しない場合があります。
たとえば、ダッシュボードではそのユーザーに値が表示されているにもかかわらず、Snowflakeでは属性がNULLと表示される場合があります。
広範な不一致が見られる場合は、カスタマーサクセスマネージャーまたはBrazeサポートにお問い合わせください。
利用可能なビュー
| タイプ | ビュー | 説明 |
|---|---|---|
| デフォルト属性 | USER_DEFAULT_ATTRIBUTES_VIEW_SHARED |
ユーザープロファイルスナップショット |
USER_LATEST_STATE_DEFAULT_ATTRIBUTES_VIEW_SHARED |
リアルタイムユーザープロファイル | |
USER_DEFAULT_ATTRIBUTES_HISTORY_VIEW_SHARED |
変更履歴ログ | |
| カスタム属性 | USER_CUSTOM_ATTRIBUTES_VIEW_SHARED |
ユーザープロファイルスナップショット |
USER_LATEST_STATE_CUSTOM_ATTRIBUTE_VIEW_SHARED |
リアルタイムユーザープロファイル | |
USER_CUSTOM_ATTRIBUTES_HISTORY_VIEW_SHARED |
変更履歴ログ |
ユーザープロファイルスナップショット
これらのビューは、ユーザープロファイル属性の定期的なスナップショットを提供します。データは最大12時間遅延するため、リアルタイムの更新を必要としないクエリに適しています。
USER_DEFAULT_ATTRIBUTES_VIEW_SHAREDUSER_CUSTOM_ATTRIBUTES_VIEW_SHARED
使用方法
- 最大12時間の遅延を伴うユーザー属性のスナップショットを提供します。
- リアルタイムの正確性を必要としないクエリに適しています。
- 特に
USER_ID以外の属性でフィルタリングする場合、クエリの実行が高速です。 - 制限事項: データはリアルタイムで更新されません。

Understanding date fields:
TIMEandTIME_MS: Represent the time the user profile update occurred in Braze (in seconds and milliseconds, respectively). For backfilled data, these values are the time of the backfill.SF_UPDATED_AT: Represents the time the data was last persisted in Snowflake. This field is most useful for determining data freshness—the time the row was most recently synced to your data warehouse.
USER_DEFAULT_ATTRIBUTES_VIEW_SHAREDスキーマ
| 列名 | データタイプ | 説明 |
|---|---|---|
APP_GROUP_ID |
VARCHAR | Brazeワークスペースの識別子 |
APP_ID |
VARCHAR | ワークスペース内の特定のアプリ |
USER_ID |
VARCHAR | Brazeの一意のユーザー識別子 |
TIME |
NUMBER | プロファイル更新のUnixタイムスタンプ(秒) |
TIME_MS |
NUMBER | プロファイル更新のUnixタイムスタンプ(ミリ秒) |
UPDATE_SOURCE |
VARCHAR | 属性更新のソース(API、SDK、ダッシュボードなど) |
SF_UPDATED_AT |
TIMESTAMP_NTZ | Snowflakeでデータが最後に更新された日時 |
EXTERNAL_USER_ID |
VARCHAR | 独自のユーザー識別子(設定されている場合) |
FIRST_NAME |
VARCHAR | ユーザーの名 |
LAST_NAME |
VARCHAR | ユーザーの姓 |
EMAIL_ADDRESS |
VARCHAR | ユーザーのメールアドレス |
GENDER |
VARCHAR | ユーザーの性別 |
PHONE_NUMBER |
VARCHAR | ユーザーの電話番号 |
DOB |
VARCHAR | ユーザーの生年月日 |
TIME_ZONE |
VARCHAR | ユーザーのタイムゾーン |
HOME_CITY |
VARCHAR | ユーザーの居住都市 |
COUNTRY |
VARCHAR | ユーザーの国 |
LANGUAGE |
VARCHAR | ユーザーの言語設定 |
ARCHIVED |
BOOLEAN | ユーザープロファイルがアーカイブされているかどうか |
USER_CUSTOM_ATTRIBUTES_VIEW_SHAREDスキーマ
| 列名 | データタイプ | 説明 |
|---|---|---|
APP_GROUP_ID |
VARCHAR | Brazeワークスペースの識別子 |
APP_ID |
VARCHAR | ワークスペース内の特定のアプリ |
USER_ID |
VARCHAR | Brazeの一意のユーザー識別子 |
EXTERNAL_USER_ID |
VARCHAR | 独自のユーザー識別子(設定されている場合) |
TIME |
NUMBER | プロファイル更新のUnixタイムスタンプ(秒) |
TIME_MS |
NUMBER | プロファイル更新のUnixタイムスタンプ(ミリ秒) |
UPDATE_SOURCE |
VARCHAR | 属性更新のソース(API、SDK、ダッシュボードなど) |
SF_UPDATED_AT |
TIMESTAMP_NTZ | Snowflakeでデータが最後に更新された日時 |
CUSTOM_ATTRIBUTES |
VARIANT | すべてのカスタム属性を含むJSONオブジェクト(キーと値のペア) |
ARCHIVED |
BOOLEAN | ユーザープロファイルがアーカイブされているかどうか |
CUSTOM_ATTRIBUTESの操作
CUSTOM_ATTRIBUTES列は、すべてのカスタム属性をJSONオブジェクトとして格納します。SnowflakeのJSON関数を使用して個々の属性にアクセスできます。
例: 特定のカスタム属性のクエリ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
-- Get users with a specific loyalty tier
SELECT
USER_ID,
EXTERNAL_USER_ID,
CUSTOM_ATTRIBUTES:loyalty_tier::STRING as loyalty_tier,
CUSTOM_ATTRIBUTES:points::NUMBER as points
FROM USER_CUSTOM_ATTRIBUTES_VIEW_SHARED
WHERE CUSTOM_ATTRIBUTES:loyalty_tier::STRING = 'gold';
-- Get users who made a purchase above a certain amount
SELECT
USER_ID,
CUSTOM_ATTRIBUTES:last_purchase_amount::NUMBER as last_purchase_amount
FROM USER_CUSTOM_ATTRIBUTES_VIEW_SHARED
WHERE CUSTOM_ATTRIBUTES:last_purchase_amount::NUMBER > 100;
例: カスタム属性データの分析
1
2
3
4
5
6
7
8
9
10
11
12
13
14
-- Count users by subscription status
SELECT
CUSTOM_ATTRIBUTES:subscription_status::STRING as subscription_status,
COUNT(*) as user_count
FROM USER_CUSTOM_ATTRIBUTES_VIEW_SHARED
GROUP BY CUSTOM_ATTRIBUTES:subscription_status::STRING;
-- Find average order value by customer segment
SELECT
CUSTOM_ATTRIBUTES:customer_segment::STRING as segment,
AVG(CUSTOM_ATTRIBUTES:lifetime_value::NUMBER) as avg_lifetime_value
FROM USER_CUSTOM_ATTRIBUTES_VIEW_SHARED
WHERE CUSTOM_ATTRIBUTES:customer_segment IS NOT NULL
GROUP BY CUSTOM_ATTRIBUTES:customer_segment::STRING;
リアルタイムユーザープロファイルビュー
これらのビューは、ユーザープロファイル属性のほぼリアルタイムの更新を提供します。データはBrazeで更新が行われてから最大10分遅延します。
USER_LATEST_STATE_DEFAULT_ATTRIBUTES_VIEW_SHAREDUSER_LATEST_STATE_CUSTOM_ATTRIBUTE_VIEW_SHARED
使用方法
- 最小限の遅延(約10分)で最新のユーザー属性を提供します。
- リアルタイム分析や最新のデータが必要なシナリオに適しています。
- パフォーマンスに関する考慮事項:
- 個々のユーザーに対するクエリは高速です(大規模なウェアハウスを使用して1分以内)。
- USER_IDフィルターを使用しないクエリは全ユーザーの集計が必要となるため、実行時間が大幅に長くなります。
- 大規模なデータセット(1億人以上のユーザーなど)に対するクエリは数分かかる場合があります。

Understanding date fields:
TIMEandTIME_MS: Represent the time the user profile update occurred in Braze (in seconds and milliseconds, respectively). For backfilled data, these values are the time of the backfill.SF_UPDATED_AT: Represents the time the data was last persisted in Snowflake. This field is most useful for determining data freshness—the time the row was most recently synced to your data warehouse.
USER_LATEST_STATE_DEFAULT_ATTRIBUTES_VIEW_SHAREDスキーマ
| 列名 | データタイプ | 説明 |
|---|---|---|
APP_GROUP_ID |
VARCHAR | Brazeワークスペースの識別子 |
APP_ID |
VARCHAR | ワークスペース内の特定のアプリ |
USER_ID |
VARCHAR | Brazeの一意のユーザー識別子 |
TIME |
NUMBER | プロファイル更新のUnixタイムスタンプ(秒) |
TIME_MS |
NUMBER | プロファイル更新のUnixタイムスタンプ(ミリ秒) |
UPDATE_SOURCE |
VARCHAR | 属性更新のソース(API、SDK、ダッシュボードなど) |
ARCHIVED |
BOOLEAN | ユーザープロファイルがアーカイブされているかどうか |
SF_UPDATED_AT |
TIMESTAMP_LTZ | Snowflakeでデータが最後に更新された日時 |
EXTERNAL_USER_ID |
VARCHAR | 独自のユーザー識別子(設定されている場合) |
FIRST_NAME |
VARCHAR | ユーザーの名 |
LAST_NAME |
VARCHAR | ユーザーの姓 |
EMAIL_ADDRESS |
VARCHAR | ユーザーのメールアドレス |
GENDER |
VARCHAR | ユーザーの性別 |
PHONE_NUMBER |
VARCHAR | ユーザーの電話番号 |
DOB |
VARCHAR | ユーザーの生年月日 |
HOME_CITY |
VARCHAR | ユーザーの居住都市 |
COUNTRY |
VARCHAR | ユーザーの国 |
LANGUAGE |
VARCHAR | ユーザーの言語設定 |
TIME_ZONE |
VARCHAR | ユーザーのタイムゾーン |
USER_LATEST_STATE_CUSTOM_ATTRIBUTE_VIEW_SHAREDスキーマ
| 列名 | データタイプ | 説明 |
|---|---|---|
APP_GROUP_ID |
VARCHAR | Brazeワークスペースの識別子 |
USER_ID |
VARCHAR | Brazeの一意のユーザー識別子 |
EXTERNAL_USER_ID |
VARCHAR | 独自のユーザー識別子(設定されている場合) |
TIME |
NUMBER | プロファイル更新のUnixタイムスタンプ(秒) |
TIME_MS |
NUMBER | プロファイル更新のUnixタイムスタンプ(ミリ秒) |
UPDATE_SOURCE |
VARCHAR | 属性更新のソース(API、SDK、ダッシュボードなど) |
ARCHIVED |
BOOLEAN | ユーザープロファイルがアーカイブされているかどうか |
SF_UPDATED_AT |
TIMESTAMP_NTZ | Snowflakeでデータが最後に更新された日時 |
APP_ID |
VARCHAR | ワークスペース内の特定のアプリ |
CUSTOM_ATTRIBUTES |
OBJECT | すべてのカスタム属性を含むJSONオブジェクト(キーと値のペア) |

このビューでは、CUSTOM_ATTRIBUTESにVARIANTではなくOBJECTタイプを使用します。個々の属性をクエリするには、同じJSONアクセサー構文(:attribute_name::TYPE)を使用してください。
変更履歴ログ
これらのビューは、ユーザー属性の変更履歴ログを保存し、12時間の粒度で変更をキャプチャします。
USER_DEFAULT_ATTRIBUTES_HISTORY_VIEW_SHAREDUSER_CUSTOM_ATTRIBUTES_HISTORY_VIEW_SHARED
使用方法
- 6か月間のローリング期間にわたるユーザー属性の変更履歴の記録を提供します。
- データは12時間ごとにスナップショットされます。つまり、この時間枠内の複数の更新は1つのレコードに統合されます。この期間内の個々の変更は個別に保持されません。
EFF_DTとEND_DTは、ユーザーの属性状態の開始と終了を示します。

Understanding date fields:
TIMEandTIME_MS: Represent the time the user profile update occurred in Braze (in seconds and milliseconds, respectively). For backfilled data, these values are the time of the backfill.SF_UPDATED_AT: Represents the time the data was last persisted in Snowflake. This field is most useful for determining data freshness—the time the row was most recently synced to your data warehouse.
USER_DEFAULT_ATTRIBUTES_HISTORY_VIEW_SHAREDスキーマ
| 列名 | データタイプ | 説明 |
|---|---|---|
APP_GROUP_ID |
VARCHAR | Brazeワークスペースの識別子 |
USER_ID |
VARCHAR | Brazeの一意のユーザー識別子 |
APP_ID |
VARCHAR | ワークスペース内の特定のアプリ |
TIME |
NUMBER | プロファイル更新のUnixタイムスタンプ(秒) |
TIME_MS |
NUMBER | プロファイル更新のUnixタイムスタンプ(ミリ秒) |
UPDATE_SOURCE |
VARCHAR | 属性更新のソース(API、SDK、ダッシュボードなど) |
SF_UPDATED_AT |
TIMESTAMP_NTZ | Snowflakeでデータが最後に更新された日時 |
EXTERNAL_USER_ID |
VARCHAR | 独自のユーザー識別子(設定されている場合) |
FIRST_NAME |
VARCHAR | ユーザーの名 |
LAST_NAME |
VARCHAR | ユーザーの姓 |
EMAIL_ADDRESS |
VARCHAR | ユーザーのメールアドレス |
GENDER |
VARCHAR | ユーザーの性別 |
PHONE_NUMBER |
VARCHAR | ユーザーの電話番号 |
DOB |
VARCHAR | ユーザーの生年月日 |
TIME_ZONE |
VARCHAR | ユーザーのタイムゾーン |
HOME_CITY |
VARCHAR | ユーザーの居住都市 |
COUNTRY |
VARCHAR | ユーザーの国 |
LANGUAGE |
VARCHAR | ユーザーの言語設定 |
EFF_DT |
TIMESTAMP_NTZ | 有効日: この属性状態が開始された日時 |
END_DT |
TIMESTAMP_NTZ | 終了日: この属性状態が終了した日時(現在の状態の場合はNULL) |
USER_CUSTOM_ATTRIBUTES_HISTORY_VIEW_SHAREDスキーマ
| 列名 | データタイプ | 説明 |
|---|---|---|
APP_GROUP_ID |
VARCHAR | Brazeワークスペースの識別子 |
USER_ID |
VARCHAR | Brazeの一意のユーザー識別子 |
APP_ID |
VARCHAR | ワークスペース内の特定のアプリ |
EXTERNAL_USER_ID |
VARCHAR | 独自のユーザー識別子(設定されている場合) |
TIME |
NUMBER | プロファイル更新のUnixタイムスタンプ(秒) |
TIME_MS |
NUMBER | プロファイル更新のUnixタイムスタンプ(ミリ秒) |
UPDATE_SOURCE |
VARCHAR | 属性更新のソース(API、SDK、ダッシュボードなど) |
SF_UPDATED_AT |
TIMESTAMP_NTZ | Snowflakeでデータが最後に更新された日時 |
CUSTOM_ATTRIBUTES |
VARIANT | すべてのカスタム属性を含むJSONオブジェクト(キーと値のペア) |
ARCHIVED |
BOOLEAN | ユーザープロファイルがアーカイブされているかどうか |
EFF_DT |
TIMESTAMP_NTZ | 有効日: この属性状態が開始された日時 |
END_DT |
TIMESTAMP_NTZ | 終了日: この属性状態が終了した日時(現在の状態の場合はNULL) |
一般的なユースケース
ユーザーセグメントの構築
1
2
3
4
5
6
7
8
9
10
11
12
13
-- Find active users in a specific city who haven't received an email recently
SELECT
d.EXTERNAL_USER_ID,
d.EMAIL_ADDRESS,
d.HOME_CITY,
c.CUSTOM_ATTRIBUTES:last_email_sent::TIMESTAMP as last_email_sent
FROM USER_DEFAULT_ATTRIBUTES_VIEW_SHARED d
JOIN USER_CUSTOM_ATTRIBUTES_VIEW_SHARED c
ON d.USER_ID = c.USER_ID
WHERE d.HOME_CITY = 'New York'
AND d.EMAIL_ADDRESS IS NOT NULL
AND (c.CUSTOM_ATTRIBUTES:last_email_sent::TIMESTAMP < DATEADD(day, -30, CURRENT_TIMESTAMP())
OR c.CUSTOM_ATTRIBUTES:last_email_sent IS NULL);
経時的なユーザー行動の分析
1
2
3
4
5
6
7
8
9
10
-- Track how a user's loyalty tier changed over the past 6 months
SELECT
USER_ID,
CUSTOM_ATTRIBUTES:loyalty_tier::STRING as loyalty_tier,
EFF_DT,
END_DT
FROM USER_CUSTOM_ATTRIBUTES_HISTORY_VIEW_SHARED
WHERE USER_ID = 'user_123'
AND EFF_DT >= DATEADD(month, -6, CURRENT_TIMESTAMP())
ORDER BY EFF_DT DESC;
デフォルト属性とカスタム属性の結合
1
2
3
4
5
6
7
8
9
10
11
12
13
14
-- Get a complete user profile with both default and custom attributes
SELECT
d.EXTERNAL_USER_ID,
d.FIRST_NAME,
d.LAST_NAME,
d.EMAIL_ADDRESS,
d.COUNTRY,
c.CUSTOM_ATTRIBUTES:subscription_status::STRING as subscription_status,
c.CUSTOM_ATTRIBUTES:lifetime_value::NUMBER as lifetime_value,
c.CUSTOM_ATTRIBUTES:last_purchase_date::DATE as last_purchase_date
FROM USER_DEFAULT_ATTRIBUTES_VIEW_SHARED d
LEFT JOIN USER_CUSTOM_ATTRIBUTES_VIEW_SHARED c
ON d.USER_ID = c.USER_ID
WHERE d.EXTERNAL_USER_ID = 'customer_456';
高価値顧客の特定
1
2
3
4
5
6
7
8
9
10
11
12
-- Identify users with high lifetime value who are at risk of churning
SELECT
d.EXTERNAL_USER_ID,
d.EMAIL_ADDRESS,
c.CUSTOM_ATTRIBUTES:lifetime_value::NUMBER as lifetime_value,
c.CUSTOM_ATTRIBUTES:days_since_last_purchase::NUMBER as days_since_last_purchase
FROM USER_DEFAULT_ATTRIBUTES_VIEW_SHARED d
JOIN USER_CUSTOM_ATTRIBUTES_VIEW_SHARED c
ON d.USER_ID = c.USER_ID
WHERE c.CUSTOM_ATTRIBUTES:lifetime_value::NUMBER > 1000
AND c.CUSTOM_ATTRIBUTES:days_since_last_purchase::NUMBER > 90
ORDER BY c.CUSTOM_ATTRIBUTES:lifetime_value::NUMBER DESC;
ベストプラクティス
推奨されるクエリの使用方法
| ユースケース | 推奨ビュー | 備考 |
|---|---|---|
| 最近の更新を必要としない一般的なクエリ | USER_DEFAULT_ATTRIBUTES_VIEW_SHAREDとUSER_CUSTOM_ATTRIBUTES_VIEW_SHARED |
高速な実行。データは最大12時間前のものです。 |
| 最新のユーザー属性を必要とするクエリ | USER_LATEST_STATE_DEFAULT_ATTRIBUTES_VIEW_SHAREDとUSER_LATEST_STATE_CUSTOM_ATTRIBUTE_VIEW_SHARED |
ほぼリアルタイムの更新を提供しますが、大規模なデータセットでは低速になる場合があります。 |
| 属性変更の履歴トラッキング | USER_DEFAULT_ATTRIBUTES_HISTORY_VIEW_SHAREDとUSER_CUSTOM_ATTRIBUTES_HISTORY_VIEW_SHARED |
属性の変更を12時間の粒度で保存します。 |
パフォーマンスに関する考慮事項
USER_DEFAULT_ATTRIBUTES_VIEW_SHAREDまたはUSER_CUSTOM_ATTRIBUTES_VIEW_SHAREDに対するクエリは、大規模なウェアハウスの大規模なデータセット(約10億ユーザー)で10秒以内に返されます。- 単一ユーザーに対する
USER_LATEST_STATE_DEFAULT_ATTRIBUTES_VIEW_SHAREDまたはUSER_LATEST_STATE_CUSTOM_ATTRIBUTE_VIEW_SHAREDのクエリは1分以内に返されますが、USER_IDフィルタリングなしではスケーリングが不十分です。 USER_LATEST_STATE_DEFAULT_ATTRIBUTES_VIEW_SHAREDまたはUSER_LATEST_STATE_CUSTOM_ATTRIBUTE_VIEW_SHAREDで1億人を超えるユーザーに対するクエリは、ユーザーごとの集計のため数分かかる場合があります。