概览
OneSignal + ClickHouse集成支持从您的ClickHouse分析数据库自动同步自定义事件到OneSignal。这让您能够基于存储在高性能列式数据库中的用户行为数据触发自动化旅程和个性化消息活动。要求
- 访问自定义事件(目前处于测试阶段)
- 升级账户计划(免费应用不可用)。
ClickHouse要求
- ClickHouse服务器(自托管或云端)
- 数据库凭据,具有对事件表的读取权限
- 事件数据表,包含具有合适架构的行为数据
设置
1
为OneSignal创建ClickHouse用户
为OneSignal创建专用用户账户,具有对事件表的只读访问权限:
2
配置网络访问
确保OneSignal能够连接到您的ClickHouse实例:
- 自托管:允许来自OneSignal IP地址的连接
- ClickHouse云:将OneSignal IP添加到您的允许列表
- 端口:默认ClickHouse端口为8123(HTTP)或9000(原生)
3
在OneSignal中添加集成
在 OneSignal 中,前往 数据 > 集成,然后点击 添加集成。选择ClickHouse并提供:
- 主机:您的ClickHouse服务器主机名或IP
- 端口:ClickHouse端口(默认:HTTP为8123,原生为9000)
- 数据库:包含事件表的数据库名称
- 用户名:
onesignal_reader
(或您选择的用户名) - 密码:ClickHouse用户的密码
- 协议:HTTP或原生(建议使用HTTP简化操作)
4
配置事件数据源
指定包含事件数据的ClickHouse表:
- 表:包含事件记录的表名(例如,
user_events
) - 事件查询:可选SQL查询,用于过滤或转换事件数据
- 事件名称/类型(String)
- 用户标识符(String)
- 事件时间戳(DateTime)
- 其他事件属性(JSON或单独列)
5
测试连接
点击测试连接以验证OneSignal能够访问您的ClickHouse数据库并读取事件数据。
事件数据映射
将您的 映射到 OneSignal 的自定义事件格式:OneSignal 字段 | 描述 | 必需 | |
---|---|---|---|
name | event_name | 事件标识符 | 是 |
external_id | user_id | 用户标识符 | 是 |
timestamp | event_timestamp | 事件发生时间 | 否 |
properties | event_data | 否 |
高级配置
自定义SQL查询
在同步到OneSignal之前使用自定义SQL过滤或转换事件数据:性能优化
ClickHouse针对分析查询进行了优化。考虑以下方面:- 分区:在事件时间戳上使用基于日期的分区
- 索引:在user_id和event_name上创建适当的索引
- 物化视图:预聚合事件数据以提高查询速度
ClickHouse针对仅追加工作负载进行了优化。确保您的事件数据遵循此模式以获得最佳性能。