概述
OneSignal + PostgreSQL 集成允许将自定义事件从 PostgreSQL 数据库同步到 OneSignal,以根据用户行为触发自动化消息活动和 Journey。要求
- 访问自定义事件(目前处于测试阶段)
- 升级账户计划(免费应用不可用)。
PostgreSQL
- PostgreSQL 9.6+ or compatible database
- Database user with appropriate permissions
- Network access from OneSignal to your PostgreSQL instance
- Event tables containing structured behavioral data
我们 强烈不建议 将 OneSignal 连接到生产环境的 PostgreSQL 数据库。事件同步查询本质上是分析性的,可能影响生产性能。仅用于为分析工作负载设置的数据库。
设置
1
为 OneSignal 创建专用用户
使用适当的权限创建专用用户账户:
2
授予事件数据权限
为包含事件数据的架构提供读取权限:
3
连接到 OneSignal
在 OneSignal 中,前往 数据 > 集成,然后点击 添加集成。
- 从列表中选择 PostgreSQL
- 输入您的连接详细信息:
- Host: 您的 PostgreSQL 服务器主机名
- Port: 通常为 5432
- Database: 您的数据库名称
- Username:
CENSUS
- Password: 您创建的密码
- 测试连接
- 配置包含事件数据的表
事件数据映射
将您的 映射到 OneSignal 的自定义事件格式:OneSignal 字段 | 描述 | 必需 | |
---|---|---|---|
name | event_name | 事件标识符 | 是 |
external_id | user_id | 用户标识符 | 是 |
timestamp | event_timestamp | 事件发生时间 | 否 |
properties | event_data | 否 |
示例事件表架构
SQL 查询模式
编写自定义 SQL 查询来转换您的事件数据:高级网络配置
OneSignal 可以使用高级网络控制连接到 PostgreSQL 实例:- IP Allow Lists: 将 OneSignal 的 IP 地址添加到您的防火墙和
pg_hba.conf
- SSH Tunneling: 通过保垒主机连接私有网络
- VPC Configuration: 云环境内的直接连接
- TLS Encryption: 使用 SSL/TLS 的安全连接
SSH 隧道设置
对于私有网络上的 PostgreSQL 实例:- Create SSH user: 在您的 SSH 主机上设置专用用户
- Configure tunnel: 在 OneSignal 集成设置中启用”使用 SSH 隧道”
- Install keypair: 将 OneSignal 的公钥添加到
~/.ssh/authorized_keys
- Test connection: 验证隧道连接性
注意事项
- Multiple Schemas: 为每个包含事件数据的架构重复权限授予
- Views with Cross-Schema References: 在旧版本的 PostgreSQL 中可能需要额外的读取权限
- Azure PostgreSQL: 对于 Azure 实例使用
username@hostname
格式 - AWS RDS: 使用标准的
username
格式 - Performance: 考虑在大规模事件处理时使用只读副本
限制
- 由于分析查询开销,避免连接到生产数据库
- 复杂的跨架构查询可能需要额外的权限
- 对于高频率事件处理建议使用连接池