SQL 세그먼트 확장
Snowflake 데이터의 Snowflake SQL 쿼리를 사용하여 세그먼트 확장을 생성할 수 있습니다. SQL은 다른 세분화 기능으로는 달성할 수 없는 방식으로 데이터 간의 관계를 설명할 수 있는 유연성을 제공하기 때문에 새로운 세그먼트 사용 사례를 발굴하는 데 도움이 됩니다.
표준 세그먼트 확장과 마찬가지로 SQL 세그먼트 확장에서 최대 2년(730일)까지의 이벤트를 쿼리할 수 있습니다. 표준 세그먼트 확장과 달리 SQL 세그먼트 확장은 크레딧을 소모합니다.
사전 요구 사항
SQL 세그먼트 확장을 사용하려면 워크스페이스에 대해 다음 권한이 필요합니다.
| 권한 | 허용되는 작업 |
|---|---|
| “Segments 보기” | 세그먼트 확장을 열고 SQL 세그먼트 확장 보기 |
| “Segments 편집” | SQL 세그먼트 확장 생성, 편집 및 새로 고침 |
| “PII 보기” | 고객 데이터를 반환할 수 있는 SQL 미리보기 쿼리 실행 |
세그먼트 확장 만들기
1단계: 편집기 선택
SQL 세그먼트 확장을 만들 때 선택할 수 있는 SQL 편집기는 SQL 편집기와 증분 SQL 편집기, 두 가지입니다.
- 전체 새로 고침: Segment가 새로 고침될 때마다 Braze는 사용 가능한 모든 데이터를 쿼리하여 Segment를 업데이트합니다. 따라서 증분 새로 고침보다 크레딧을 더 많이 사용합니다. 전체 새로 고침 확장은 멤버십을 매일 자동으로 재생성할 수 있지만, 증분 새로 고침 방식으로는 새로 고칠 수 없습니다.
- 증분 새로 고침: 증분 새로 고침은 쿼리를 설정하는 더 비용 효율적인 방법이지만, 설정에 몇 가지 단계가 더 필요합니다. Segment를 구성할 때 이러한 추가 단계를 완료할 수 있다면, 더 적은 크레딧으로 쿼리가 실행되므로 이 옵션을 선택하는 것이 좋습니다.
Operator가 SQL을 대신 작성하도록 하려면 두 편집기 중 하나에서 Operator에게 질문하기를 선택하고 오디언스를 일상적인 언어로 설명하세요. 자세한 내용은 Operator로 할 수 있는 작업을 참조하세요.

두 SQL 편집기 중 어느 쪽에서 만든 SQL Segments든 수동으로 전체 새로 고침을 실행할 수 있습니다.
전체 새로 고침 SQL 세그먼트 확장을 만들려면 다음을 수행합니다.
- 오디언스 > 세그먼트 확장으로 이동합니다.
- 새 확장 만들기를 선택한 다음 전체 새로 고침을 선택합니다.

- 세그먼트 확장의 이름을 추가하고 SQL을 입력합니다. 요구 사항과 리소스는 2단계를 참조하세요.

- 세그먼트 확장을 저장합니다.
증분 새로 고침 SQL 세그먼트 확장을 만들려면 다음을 수행합니다.
- 오디언스 > 세그먼트 확장으로 이동합니다.
- 새 확장 만들기를 선택하고 증분 새로 고침을 선택합니다.

- 세그먼트 확장의 이름을 추가하고 SQL을 입력합니다. 요구 사항과 리소스는 2단계를 참조하세요.

- 원하는 경우 매일 확장 재생성을 선택합니다.

이 옵션을 선택하면 Braze가 매일 Segment 멤버십을 자동으로 업데이트합니다. 즉, 매일 회사 시간대 기준 자정에(최대 1시간 지연될 수 있음) Braze가 Segment에 해당하는 새 사용자를 확인하고 자동으로 Segment에 추가합니다. 세그먼트 확장이 7일 동안 사용되지 않으면 Braze는 매일 재생성을 자동으로 일시 중지합니다. 사용되지 않은 세그먼트 확장이란 Campaign이나 Canvas에 포함되지 않은 확장을 말합니다(확장이 “사용됨”으로 간주되기 위해 Campaign이나 Canvas가 활성 상태일 필요는 없습니다). - 세그먼트 확장을 저장합니다.

실행 시간이 20분을 초과하는 SQL 쿼리는 시간 초과됩니다.
확장 처리가 완료되면 세그먼트 확장을 사용하여 Segment를 만들고 Campaigns 및 Canvases에서 이 새 Segment를 타겟팅할 수 있습니다.
2단계: SQL 작성
SQL 쿼리는 Snowflake 구문을 사용하여 작성해야 합니다. 쿼리할 수 있는 테이블과 열의 전체 목록은 테이블 참조를 확인하세요.

쿼리할 수 있는 테이블에는 이벤트 데이터만 포함되어 있다는 점에 유의하세요. 사용자 속성을 쿼리하려면 SQL Segment를 클래식 세그먼터의 커스텀 속성 필터와 함께 사용해야 합니다.
SQL은 다음 규칙도 추가로 준수해야 합니다.
- 단일 SQL 문을 작성하세요. 세미콜론은 포함하지 마세요.
- SQL은
user_id열 하나만 선택해야 합니다. 즉, SQL에 다음이 포함되어야 합니다.
SELECT DISTINCT user_id FROM "INSERT TABLE NAME"
- 이벤트가 0회인 사용자는 쿼리할 수 없으므로, 이벤트를 X회 미만 수행한 사용자를 쿼리하려면 다음 해결 방법을 따라야 합니다.
- 이벤트를 X회 초과로 수행한 사용자를 선택하는 쿼리를 작성합니다.
- Segment에서 세그먼트 확장을 참조할 때
포함하지 않음을 선택하여 결과를 반전합니다.
user_id 열 요구 사항
user_id 열은 소스 테이블의 user_id를 변경 없이 직접 참조해야 합니다. 최종 user_id 열이 다음에 해당하는 쿼리는 Braze에서 거부됩니다.
- 별칭이 지정된 계산 열(예:
COALESCE(m.orphaned_by_id, c.user_id) AS user_id) user_id로 이름을 바꾼 다른 열(예:m.orphaned_by_id AS user_id)user_id로 별칭이 지정된 하위 쿼리 열(예: 계산된user_id를 반환하는 하위 쿼리에서 선택하는 경우)
쿼리에서 이미 user_id 열을 선택하고 있는데도 “sql - Please select only the following columns: user_id” 오류가 표시되면, 쿼리에 이러한 패턴이 사용되었는지 확인하세요. 쿼리 저장에 실패하더라도 미리보기는 작동할 수 있습니다.

user_id 열에 별칭을 지정하거나 계산하는 대신, 소스 테이블에서 직접 GROUP BY c.user_id 또는 DISTINCT c.user_id를 사용하세요.
추가 규칙
또한 표준 SQL 쿼리는 다음 규칙을 준수해야 합니다.
DECLARE문은 사용할 수 없습니다.
모든 증분 새로 고침 쿼리는 쿼리와 스키마 세부 정보, 두 부분으로 구성됩니다.
- 편집기에서 원하는 테이블의
user_id를 선택하는 쿼리를 작성합니다. - 편집기 상단의 필드에서 연산자, 횟수, 기간을 선택하여 스키마 세부 정보를 추가합니다. 쿼리는 집계 열의 합계가 이 필드에서 설정한 조건을 충족하는지 확인합니다. 이는 클래식 세그먼트 확장을 만드는 워크플로와 비슷하게 작동합니다.
- 연산자: 이벤트 발생 횟수가 특정 횟수보다 많은지, 적은지, 같은지를 지정합니다.

- 횟수: 연산자를 기준으로 이벤트를 평가할 횟수입니다.

- 기간: 이벤트 인스턴스를 확인할 기간으로, 1~730일 사이의 일수입니다. 이 기간은 현재 날짜를 기준으로 한 과거 일수를 의미합니다. 다음 예시는 지난 365일 동안 이벤트를 5회 초과로 수행한 사용자를 쿼리하는 경우를 보여줍니다.

- 연산자: 이벤트 발생 횟수가 특정 횟수보다 많은지, 적은지, 같은지를 지정합니다.
다음 예시에서 결과 Segment에는 지정된 날짜 이후 지난 30일 동안 favorited 이벤트를 3회 초과로 수행한 사용자가 포함됩니다.



증분 새로 고침은 지연 이벤트, 즉 캡처 시점에 전송되지 않은 SDK 이벤트처럼 일일 새로 고침 기간 이후에 도착하는 이벤트를 고려합니다. Segment가 새로 고침되면 Braze는 이러한 지연 이벤트가 속한 날짜를 다시 처리합니다.
증분 새로 고침이 시간 경과에 따라 사용자를 추적하는 방식
증분 새로 고침을 사용하면 Braze는 각 사용자의 일일 횟수를 내부 횟수 테이블에 저장합니다. 덕분에 매일 모든 과거 데이터를 다시 쿼리하지 않고도 전체 기간에 걸쳐 Segment를 평가할 수 있습니다.
저장되는 항목: Braze는 일일 사용자 자격 횟수를 (date, user_id, count) 형식으로 누적하는 횟수 테이블(Segment 코호트 테이블과 유사)을 유지합니다. 이 테이블은 2일 롤링 새로 고침 기간 밖의 과거 데이터를 보존합니다.
새로 고침할 때마다 일어나는 일: 증분 새로 고침이 실행되면 Braze는 횟수 테이블에서 2일 롤링 새로 고침 기간에 해당하는 레코드만 지웁니다. 그런 다음 업데이트된 시간 매개변수($start_date 사용)로 SQL 쿼리를 다시 실행하여 해당 날짜의 새 행을 삽입합니다. 2일 롤링 새로 고침 기간 밖의 과거 행은 횟수 테이블에 그대로 유지됩니다.
Braze가 Segment 포함 대상을 결정하는 방식: Braze는 가장 최근의 2일 롤링 새로 고침 결과만이 아니라 누적된 횟수 테이블 전체를 기준으로 Segment 멤버십 기준을 평가합니다. 즉, 2일보다 이전에 자격을 갖춘 사용자는 집계된 횟수가 더 이상 기준을 충족하지 않는 경우를 제외하고 Segment에 계속 포함됩니다.
안정적으로 새로 고침되는 SQL 작성하기: 증분 새로 고침용 SQL을 작성할 때는 부분 새로 고침 중에 일관되지 않은 결과를 낼 수 있는 쿼리 패턴을 피하세요. 예를 들어 $start_date 경계를 넘나드는 데이터에 의존하는 MAX(time) 같은 윈도우 집계는 일부 날짜만 다시 계산될 때 행 상태를 예기치 않게 바꿀 수 있습니다. 각 날짜의 출력이 해당 날짜의 이벤트에만 의존하도록 쿼리를 구성하면, 쿼리가 2일 분량을 처리하든 730일 분량을 처리하든 일관된 결과를 유지할 수 있습니다.
추가 규칙
또한 증분 새로 고침 쿼리는 다음 규칙을 준수해야 합니다.
- 단일 SQL 문을 작성하세요. 세미콜론은 포함하지 마세요.
- 증분 SQL Segment는 하나의 이벤트만 참조할 수 있습니다. 날짜 및 횟수 드롭다운은 해당 이벤트에 적용됩니다.
- SQL에는
$date()별칭(예:$date(time))이 포함되어야 하며,user_id와COUNT()집계를 선택하고, 날짜와user_id로 그룹화하고, 시간 열에$start_date필터(예:time > $start_date)를 적용해야 합니다.$date()또는 이러한 필드 없이 SQL을 저장하면 오류가 반환됩니다. DECLARE문은 사용할 수 없습니다.

CATALOGS_ITEMS_SHARED 테이블을 사용하는 SQL Segment를 만드는 경우 카탈로그 ID를 지정해야 합니다. 예를 들면 다음과 같습니다.
SELECT * FROM CATALOGS_ITEMS_SHARED
WHERE CATALOG_ID = 'XYZ'
LIMIT 10
3단계: 쿼리 미리보기
저장하기 전에 쿼리 미리보기를 실행할 수 있습니다. 쿼리 미리보기는 자동으로 100개 행으로 제한되며 60초 후에 시간 초과됩니다. 미리보기를 실행할 때는 user_id 열 요구 사항이 적용되지 않습니다.
증분 SQL 세그먼트 확장의 경우, 미리보기에는 연산자, 횟수, 기간 필드의 추가 기준이 포함되지 않습니다.
4단계: SQL 반전 필요 여부 결정
다음으로 SQL을 반전해야 하는지 결정합니다. 이벤트가 0회인 사용자를 직접 쿼리할 수는 없지만, SQL 반전을 사용하면 이러한 사용자를 타겟팅할 수 있습니다.

기본값으로 SQL 반전은 꺼져 있습니다. 그러나 AI SQL 생성기를 사용해 부정해야 하는 SQL 문을 생성하면, ChatGPT가 이 기능을 자동으로 켜는 출력을 반환할 수 있습니다.
예를 들어 구매 횟수가 3회 미만인 사용자를 타겟팅하려면, 먼저 구매 횟수가 3회 이상인 사용자를 선택하는 쿼리를 작성합니다. 그런 다음 SQL 반전을 선택하여 구매 횟수가 3회 미만인 사용자(구매 횟수가 0회인 사용자 포함)를 타겟팅합니다.

이벤트가 0회인 사용자를 특별히 타겟팅하려는 경우가 아니라면 SQL을 반전할 필요가 없습니다. SQL 반전이 선택되어 있다면 이 기능이 정말 필요한지, Segment가 원하는 오디언스와 일치하는지 확인하세요. 예를 들어 이벤트를 1회 이상 수행한 사용자를 타겟팅하는 쿼리를 반전하면, 이벤트가 0회인 사용자만 타겟팅하게 됩니다.

Segment 멤버십 새로 고침
SQL을 사용하여 만든 세그먼트 확장의 Segment 멤버십을 새로 고치려면 해당 세그먼트 확장을 열고 새로 고침을 선택하세요.

사용자가 정기적으로 진입하고 이탈할 것으로 예상되는 Segment를 만들었다면, Campaign 또는 Canvas에서 해당 Segment를 타겟팅하기 전에 그 Segment가 사용하는 세그먼트 확장을 수동으로 새로 고치세요.
세그먼트 확장 관리
세그먼트 확장 페이지에서 SQL로 생성된 세그먼트는 이름 옆에 아이콘이 표시됩니다.
SQL 세그먼트 확장을 선택하면 확장이 사용되는 위치를 확인하거나, 확장을 보관하거나, 세그먼트 멤버십을 수동으로 새로 고칠 수 있습니다.

새로 고침 설정 지정
정기적으로 확장을 새로고침할 필요가 없는 경우 새로고침 설정을 사용하지 않고 저장할 수 있으며, Braze는 해당 시점의 사용자 멤버십을 기반으로 세그먼트 확장을 생성하는 기본값을 적용합니다. 오디언스를 한 번만 생성한 다음 일회성 Campaign으로 타겟팅하려는 경우 기본 동작을 사용하세요.
세그먼트는 항상 최초 저장 후 처리가 시작됩니다. 세그먼트가 새로고침될 때마다 Braze는 세그먼트를 다시 실행하고 새로고침 시점의 사용자를 반영하도록 세그먼트 멤버십을 업데이트합니다. 이를 통해 반복 Campaign이 가장 관련성 높은 사용자에게 도달하는 데 도움이 됩니다.
반복 새로고침 설정하기
새로고침 설정을 지정하여 반복 스케줄을 설정하려면 새로고침 활성화를 선택합니다. 새로고침 설정을 지정하는 옵션은 SQL 세그먼트, CDI 세그먼트 확장 및 간단한 양식 기반 세그먼트 확장을 포함한 모든 유형의 세그먼트 확장에 사용할 수 있습니다.

데이터 관리를 최적화하기 위해 사용되지 않는 세그먼트 확장에 대해서는 새로고침 설정이 자동으로 해제됩니다. 세그먼트 확장은 다음과 같은 경우 사용되지 않는 것으로 간주됩니다:
- 활성 또는 비활성(초안, 중지됨, 아카이브됨) Campaigns, Canvases 또는 Segments에서 사용되지 않는 경우
- 7일 이상 수정되지 않은 경우
이 설정이 해제되면 Braze는 회사 연락처 및 확장 생성자에게 알림을 보냅니다. 매일 확장을 재생성하는 옵션은 언제든지 다시 활성화할 수 있습니다.
새로고침 설정 선택하기

새로고침 간격 설정 패널에서 이 세그먼트 확장을 새로고침할 주기를 시간별, 일별, 주별 또는 월별 중에서 선택할 수 있습니다. 또한 새로고침이 수행될 특정 시간(회사 시간대 기준)을 선택해야 합니다. 예를 들면 다음과 같습니다:
- 매주 월요일 오전 11시(회사 시간 기준)에 발송되는 이메일 Campaign이 있고, 발송 직전에 세그먼트를 새로고침하려면 매주 월요일 오전 10시로 새로고침 스케줄을 선택해야 합니다.
- 세그먼트를 매일 새로고침하려면 일별 새로고침 주기를 선택한 다음 새로고침할 시간을 선택하세요.

양식 기반 세그먼트 확장에서는 시간별 새로고침 스케줄을 설정하는 기능을 사용할 수 없습니다(일별, 주별 또는 월별 스케줄은 설정할 수 있습니다).
크레딧 소비 및 추가 비용
새로고침은 세그먼트의 쿼리를 다시 실행하기 때문에 SQL 세그먼트의 각 새로고침은 SQL 세그먼트 크레딧을 소비하고, CDI 세그먼트 확장의 각 새로고침은 서드파티 데이터 웨어하우스 내에서 비용을 발생시킵니다.

데이터 처리 시간으로 인해 세그먼트를 새로고침하는 데 최대 60분이 소요될 수 있습니다. 현재 새로고침 중인 세그먼트는 세그먼트 확장 목록에서 “처리 중” 상태로 표시됩니다. 이에 따른 몇 가지 참고 사항이 있습니다:
- 특정 시간 전에 세그먼트 처리를 완료하려면 새로고침 시간을 60분 더 일찍 선택하세요.
- 특정 세그먼트 확장에 대해 한 번에 하나의 새로고침만 수행할 수 있습니다. 기존 새로고침이 이미 처리를 시작한 상태에서 새 새로고침이 시작되는 충돌이 발생하면 Braze는 새 새로고침 요청을 취소하고 진행 중인 처리를 계속합니다.
오래된 확장을 자동으로 비활성화하는 기준
세그먼트 확장이 오래되면 스케줄된 새로고침이 자동으로 비활성화됩니다. 세그먼트 확장은 다음 기준을 충족하는 경우 오래된 것으로 간주됩니다:
- 활성 Campaigns이나 Canvases에서 사용되지 않음
- 활성 Campaign 또는 Canvas에 있는 Segment에서 사용되지 않음
- 분석 추적이 켜져 있는 Segment에서 사용되지 않음
- 7일 이상 수정되지 않음
- 7일 이상 Campaign이나 Canvas(초안 포함) 또는 Segment에 추가되지 않음
세그먼트 확장에 대해 스케줄된 새로고침이 비활성화되면 해당 확장에 이를 알리는 알림이 표시됩니다.

오래된 세그먼트 확장을 사용할 준비가 되면 새로고침 설정을 검토하고 사용 사례에 맞는 새로고침 스케줄을 선택한 다음 수정 사항을 저장하세요.
Snowflake 크레딧
각 Braze 워크스페이스에는 한 달에 5개의 Snowflake 크레딧이 제공됩니다. 크레딧이 더 필요한 경우 계정 매니저에게 문의하세요. 크레딧은 SQL Segment의 멤버십을 새로고침하거나 저장 후 새로고침할 때마다 사용됩니다. SQL Segment 내에서 미리보기를 실행하거나 기존 세그먼트 확장을 저장하거나 새로고침할 때는 크레딧이 사용되지 않습니다.

Snowflake 크레딧은 기능 간에 공유되지 않습니다. 예를 들어 SQL 세그먼트 확장과 쿼리 빌더의 크레딧은 서로 독립적입니다.
크레딧 사용량은 SQL 쿼리의 실행 시간과 상관관계가 있습니다. 실행 시간이 길수록 쿼리 비용이 더 많이 듭니다. 실행 시간은 시간이 지남에 따라 쿼리의 복잡성과 크기에 따라 달라질 수 있습니다. 쿼리를 더 복잡하고 자주 실행할수록 리소스 할당이 커지고 실행 시간이 빨라집니다.
크레딧을 절약하려면 SQL 세그먼트 확장을 저장하기 전에 쿼리를 미리보기하여 올바른지 확인하세요.
크레딧은 매월 1일 오전 12시(UTC)에 5로 초기화됩니다. 크레딧 사용량 패널에서 한 달 동안의 크레딧 사용량을 모니터링할 수 있습니다. 세그먼트 확장 페이지에서 SQL 크레딧 사용량 보기를 클릭합니다.

크레딧이 0이 되면 다음과 같은 일이 발생합니다:
- 자동으로 새로고침되도록 설정된 모든 SQL 세그먼트 확장은 새로고침을 중지하여 이러한 세그먼트의 멤버십과 이러한 세그먼트를 타겟팅하는 모든 Campaign 또는 Canvases에 영향을 미칩니다.
- 새 SQL 세그먼트 확장은 남은 한 달 동안 초안으로만 저장할 수 있습니다.
SQL Segment를 생성한 모든 회사 사용자와 회사 관리자는 크레딧의 50%, 80%, 100%를 사용하면 알림 이메일을 받게 됩니다. 다음 달 초에 크레딧이 초기화되면 더 많은 SQL Segments를 만들 수 있으며 자동 새로고침이 다시 시작됩니다.
SQL Segment 크레딧을 더 구매하거나 세그먼트 확장을 추가로 구매하려면 계정 매니저에게 문의하세요.