ユーザープロファイル属性
このページは、Snowflakeにおけるデフォルト属性ビューとカスタム属性ビューのリファレンスです。デフォルト属性用に3つのビュー、カスタム属性用に3つのビューがあり、それぞれ特定のユースケース向けに設計され、固有のパフォーマンス上の考慮事項があります。
ダッシュボードとのデータの一致
まれに、このページの Snowflake ビューにおけるデフォルト属性およびカスタム属性の値が、Braze ダッシュボードのユーザープロファイルに表示される値と一致しない場合があります。
たとえば、ダッシュボードではそのユーザーの値が表示されているにもかかわらず、Snowflake では属性が NULL として表示されることがあります。
広範囲にわたって不一致が見られる場合は、カスタマーサクセスマネージャーまたは Braze サポートにお問い合わせください。
外部ユーザー ID の可用性

EXTERNAL_USER_ID がすべてのユーザープロファイルレコードに存在するとは限りません。可用性は、ワークスペース固有の設定と、ユーザープロファイルの更新方法によって異なります。このフィールドは多くのプロファイルで NULL になる場合があります。特に、ワークスペースで特定のフィーチャーフラグが有効になっていない場合に該当します。ユーザーデータをクエリする際は、EXTERNAL_USER_ID が null である可能性を考慮し、SQL クエリで適切な null 処理を行ってください (たとえば、INNER JOIN の代わりに LEFT JOIN を使用する、または external ID が必須の場合は IS NOT NULL でフィルタリングするなど)。
利用可能なビュー
| タイプ | ビュー | 説明 |
|---|---|---|
| デフォルト属性 | 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 | 独自のユーザー識別子 (設定されている場合)。ワークスペースの設定によっては、多くのプロファイルで NULL になることがあります。 |
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 | ユーザープロファイルがアーカイブされているかどうか |

The ARCHIVED field has been populated in Snowflake since May 1, 2026. Users archived before that date don’t have the flag set, so ARCHIVED is NULL for those profiles. No backfill is available for earlier archives. Segment Extensions and queries that filter on ARCHIVED don’t include those users in archived-status results.
USER_CUSTOM_ATTRIBUTES_VIEW_SHARED スキーマ
| 列名 | データ型 | 説明 |
|---|---|---|
APP_GROUP_ID |
VARCHAR | Braze ワークスペースの識別子 |
APP_ID |
VARCHAR | ワークスペース内の特定のアプリ |
USER_ID |
VARCHAR | 一意の Braze ユーザー識別子 |
EXTERNAL_USER_ID |
VARCHAR | 独自のユーザー識別子 (設定されている場合)。ワークスペースの設定によっては、多くのプロファイルで NULL になることがあります。 |
TIME |
NUMBER | プロファイル更新の Unix タイムスタンプ (秒) |
TIME_MS |
NUMBER | プロファイル更新の Unix タイムスタンプ (ミリ秒) |
UPDATE_SOURCE |
VARCHAR | 属性更新のソース (API、SDK、ダッシュボードなど) |
SF_UPDATED_AT |
TIMESTAMP_NTZ | Snowflake でデータが最後に更新された日時 |
CUSTOM_ATTRIBUTES |
VARIANT | すべてのカスタム属性 (キーと値のペア) を含む JSON オブジェクト |
ARCHIVED |
BOOLEAN | ユーザープロファイルがアーカイブされているかどうか |

The ARCHIVED field has been populated in Snowflake since May 1, 2026. Users archived before that date don’t have the flag set, so ARCHIVED is NULL for those profiles. No backfill is available for earlier archives. Segment Extensions and queries that filter on ARCHIVED don’t include those users in archived-status results.
CUSTOM_ATTRIBUTES の操作
CUSTOM_ATTRIBUTES 列には、すべてのカスタム属性が JSON オブジェクトとして格納されます。Snowflake の JSON 関数を使用して、個々の属性にアクセスできます。
例: 特定のカスタム属性をクエリする
-- 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;
例: カスタム属性データを分析する
-- 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 | 独自のユーザー識別子 (設定されている場合)。ワークスペースの設定によっては、多くのプロファイルで NULL になる場合があります。 |
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 | ユーザーのタイムゾーン |

The ARCHIVED field has been populated in Snowflake since May 1, 2026. Users archived before that date don’t have the flag set, so ARCHIVED is NULL for those profiles. No backfill is available for earlier archives. Segment Extensions and queries that filter on ARCHIVED don’t include those users in archived-status results.
USER_LATEST_STATE_CUSTOM_ATTRIBUTE_VIEW_SHARED スキーマ
| Column name | Data type | Description |
|---|---|---|
APP_GROUP_ID |
VARCHAR | Your Braze workspace identifier |
USER_ID |
VARCHAR | The unique Braze user identifier |
EXTERNAL_USER_ID |
VARCHAR | Your own user identifier (if set) |
TIME |
NUMBER | Unix timestamp (seconds) of the profile update |
TIME_MS |
NUMBER | Unix timestamp (milliseconds) of the profile update |
UPDATE_SOURCE |
VARCHAR | The source of the attribute update (API, SDK, dashboard, etc.) |
ARCHIVED |
BOOLEAN | Whether the user profile is archived |
SF_UPDATED_AT |
TIMESTAMP_NTZ | When the data was last updated in Snowflake |
APP_ID |
VARCHAR | The specific app within your workspace |
CUSTOM_ATTRIBUTES |
OBJECT | JSON object containing all custom attributes (key-value pairs) |
Note:
This view uses OBJECT type for CUSTOM_ATTRIBUTES instead of VARIANT. Use the same JSON accessor syntax (:attribute_name::TYPE) to query individual attributes.
履歴変更ログ
これらのビューには、ユーザー属性の履歴変更ログが保存され、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 | 独自のユーザー識別子 (設定されている場合)。ワークスペースの設定によっては、多くのプロファイルで NULL になる場合があります。 |
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 スキーマ
| Column name | Data type | Description |
|---|---|---|
APP_GROUP_ID |
VARCHAR | Your Braze workspace identifier |
USER_ID |
VARCHAR | The unique Braze user identifier |
APP_ID |
VARCHAR | The specific app within your workspace |
EXTERNAL_USER_ID |
VARCHAR | Your own user identifier (if set) |
TIME |
NUMBER | Unix timestamp (seconds) of the profile update |
TIME_MS |
NUMBER | Unix timestamp (milliseconds) of the profile update |
UPDATE_SOURCE |
VARCHAR | The source of the attribute update (API, SDK, dashboard, etc.) |
SF_UPDATED_AT |
TIMESTAMP_NTZ | When the data was last updated in Snowflake |
CUSTOM_ATTRIBUTES |
VARIANT | JSON object containing all custom attributes (key-value pairs) |
ARCHIVED |
BOOLEAN | Whether the user profile is archived |
EFF_DT |
TIMESTAMP_NTZ | Effective date: when this attribute state began |
END_DT |
TIMESTAMP_NTZ | End date: when this attribute state ended (NULL for current state) |
一般的なユースケース
ユーザーセグメントの構築
-- 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);
経時的なユーザー行動の分析
-- 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;
デフォルト属性とカスタム属性の組み合わせ
-- 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';
高価値顧客の特定
-- 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 億人を超えるユーザーを対象としたクエリは、ユーザーごとの集計処理のため、数分かかる場合があります。