개요
OneSignal + Greenplum 통합은 Greenplum 데이터베이스에서 OneSignal로 사용자 지정 이벤트를 동기화하여 사용자 행동을 기반으로 자동화된 메시징 캠페인과 저니를 트리거할 수 있게 합니다. Greenplum은 PostgreSQL을 기반으로 구축된 대규모 병렬 처리(MPP) 데이터베이스로, 대규모 분석 워크로드를 위해 설계되었습니다.요구 사항
- Access to Event Streams for outbound message events (Plan limitations and overages apply)
- Access to Custom Events for inbound event syncing (Plan limitations and overages apply)
- Updated Account Plan (not available on free apps)
Greenplum
- 네트워크 액세스가 가능한 Greenplum 인스턴스
- 적절한 권한이 있는 데이터베이스 사용자
- 구조화된 행동 데이터가 포함된 이벤트 테이블
동기화 엔진 및 권한
OneSignal은 Greenplum의 테이블과 뷰에서 데이터를 읽고 이를 동기화하여 자동화된 메시징 캠페인을 트리거합니다. 데이터베이스의 부하를 제한하기 위해 OneSignal은 마지막 동기화 이후 수정된 데이터만 동기화할 수 있도록 하는 상태 추적 테이블을 유지합니다(증분 동기화). Greenplum 연결을 구성할 때 상태 추적이 처리되는 방식을 결정하는 동기화 엔진을 선택합니다. Basic Sync Engine은 OneSignal 소유 인프라에 상태 추적 테이블을 유지하며 읽기 액세스만 필요하므로 구성이 더 간단합니다. Advanced Sync Engine은 자체 Greenplum 인스턴스 내의 전용 스키마에 상태 추적 테이블을 유지하여 향상된 성능을 제공합니다.설정
1
Census 사용자 생성
OneSignal이 사용할 전용 데이터베이스 사용자를 생성합니다:
2
동기화 엔진 선택 및 권한 구성
Basic Sync Engine의 경우 (읽기 전용 액세스):이벤트 데이터 스키마에 대한 읽기 액세스를 부여합니다. Advanced Sync Engine의 경우 (향상된 성능):먼저 위의 Basic Sync Engine 단계를 완료한 다음 추가합니다:
<your schema>를 스키마 이름으로 바꿉니다:3
OneSignal에 연결
OneSignal에서 Data > Integrations으로 이동하여 Add Integration을 클릭합니다.Greenplum을 선택하고 다음을 제공합니다:
- Host: Greenplum 마스터 호스트
- Port: 5432 (또는 사용자 지정 포트)
- Database: 데이터베이스 이름
- Username:
CENSUS - Password: 1단계의 비밀번호
- Sync Engine: 2단계에 따라 Basic 또는 Advanced 선택
이벤트 데이터 매핑
를 OneSignal의 사용자 지정 이벤트 형식에 매핑합니다:| OneSignal 필드 | 설명 | 필수 | |
|---|---|---|---|
name | event_name | 이벤트 식별자 | Yes |
external_id | user_id | 사용자 식별자 | Yes |
timestamp | event_timestamp | 이벤트가 발생한 시간 | No |
properties | event_data | No |
이벤트 테이블 스키마 예제
처리 모드
테이블 모드
Greenplum 데이터베이스에서 직접 전체 테이블 또는 뷰를 동기화합니다. OneSignal은 자동으로 열을 이벤트 필드에 매핑합니다.SQL 쿼리 모드
이벤트 데이터를 변환하기 위해 PostgreSQL 호환 사용자 지정 쿼리를 작성합니다:MPP 쿼리 최적화
이벤트 쿼리가 분산 실행에 최적화되도록 하여 Greenplum의 병렬 처리를 활용합니다. 더 나은 성능을 위해 적절한 분산 키를 사용하고 세그먼트 간 데이터 이동을 피합니다.고급 네트워크 구성
OneSignal은 지역 제약, IP 주소 허용 목록 또는 SSH 터널링을 포함한 고급 네트워킹 제어를 사용하는 Greenplum 인스턴스에 성공적으로 연결할 수 있습니다. 모든 연결에 TLS v1.2 이상을 사용하도록 Greenplum 인스턴스를 구성하는 것이 좋습니다.제한 사항
- 대규모 분석 쿼리가 클러스터 성능에 영향을 줄 수 있습니다
- JSON/JSONB 작업은 분산을 위해 최적화되어야 합니다
- 성능을 위해 세그먼트 간 조인을 최소화해야 합니다