概览
OneSignal + Greenplum 集成允许将自定义事件从您的 Greenplum 数据库同步到 OneSignal,以基于用户行为触发自动化消息推送活动和 Journeys。 Greenplum 是一个基于 PostgreSQL 构建的大規模并行处理 (MPP) 数据库,专为大規模分析工作负载而设计。要求
- 访问自定义事件(目前处于测试阶段)
- 升级账户计划(免费应用不可用)。
Greenplum 要求
- 具有网络访问权限的 Greenplum 实例
- 具有适当权限的 数据库用户
- 包含结构化行为数据的 事件表
同步引擎和权限
OneSignal 从 Greenplum 中的表和视图读取数据,并同步它以触发自动化消息推送活动。为了限制对数据库的负载,OneSignal 维护状态跟踪表,使其只能同步自上次同步以来已修改的数据(增量同步)。在配置 Greenplum 连接时,您将选择一个同步引擎来决定如何处理状态跟踪。 基本同步引擎 在 OneSignal 拥有的基础设施上维护状态跟踪表,配置更简单,只需要读取访问权限。 高级同步引擎 通过在您自己的 Greenplum 实例内的专用架构中维护状态跟踪表来提供增强的性能。设置
1
创建 Census 用户
为 OneSignal 创建一个专用的数据库用户:
2
选择同步引擎并配置权限
对于基本同步引擎(只读访问):向您的事件数据模式授予读取访问权限。将 对于高级同步引擎(增强性能):首先完成上面的基本同步引擎步骤,然后添加:
<your schema>
替换为您的模式名称:3
连接到 OneSignal
在 OneSignal 中,前往 数据 > 集成,然后点击 添加集成。选择 Greenplum 并提供:
- 主机: 您的 Greenplum 主主机
- 端口: 5432(或自定义端口)
- 数据库: 您的数据库名称
- 用户名:
CENSUS
- 密码: 步骤 1 中的密码
- 同步引擎: 根据步骤 2 选择基本或高级
事件数据映射
将您的 映射到 OneSignal 的自定义事件格式:OneSignal 字段 | 描述 | 必需 | |
---|---|---|---|
name | event_name | 事件标识符 | 是 |
external_id | user_id | 用户标识符 | 是 |
timestamp | event_timestamp | 事件发生时间 | 否 |
properties | event_data | 否 |
示例事件表模式
处理模式
表模式
直接从您的 Greenplum 数据库同步整个表或视图。OneSignal 将自动将列映射到事件字段。SQL 查询模式
编写自定义的 PostgreSQL 兼容查询来转换您的事件数据:MPP 查询优化
通过确保您的事件查询针对分布式执行进行了优化,来利用 Greenplum 的并行处理能力。使用适当的分布键并避免跨段数据移动以获得更好的性能。高级网络配置
OneSignal 可以成功连接到使用高级网络控制的 Greenplum 实例,包括区域约束、IP 地址允许列表或 SSH 隧道。 我们建议配置您的 Greenplum 实例使用 TLS v1.2 或更高版本进行所有连接。限制
- 大型分析查询可能影响集群性能
- JSON/JSONB 操作应该针对分布进行优化
- 为了获得性能,应尽量减少跨段连接