概述
OneSignal + Amazon Redshift 集成可以将您的 Redshift 数据仓库中的自定义事件同步到 OneSignal,以基于用户行为触发自动化消息活动和旅程。 Amazon Redshift 是一个完全托管的、PB 级的数据仓库服务,使您能够使用现有的商业智能工具经济高效地分析大量数据。要求
- 访问自定义事件(目前处于测试阶段)
- 升级账户计划(免费应用不可用)。
Amazon Redshift 要求
- 具有网络访问权限的 Redshift 集群
- 具有适当权限的数据库用户
- 包含结构化行为数据的事件表
- 从 OneSignal 到您的 Redshift 集群的网络连接
设置
1
为 OneSignal 创建专用用户
创建一个具有适当权限的专用用户账户:
2
授予事件数据权限
为包含事件数据的模式提供读取访问权限:
3
配置网络访问
将 OneSignal 的 IP 地址添加到您的 Redshift 安全组中。Redshift 默认阻止外部访问。您可以在集成设置中找到您所在区域的 OneSignal IP 地址。有关更多信息,请访问 AWS Redshift 帮助中心。
4
连接到 OneSignal
在 OneSignal 中,前往 数据 > 集成,然后点击 添加集成。
- 从列表中选择 Amazon Redshift
- 输入您的连接详细信息:
- **主机:**您的 Redshift 集群端点
- **端口:**通常为 5439
- **数据库:**您的数据库名称
- 用户名:
CENSUS
- **密码:**您创建的密码
- 测试连接
- 配置包含事件数据的表
事件数据映射
将您的 映射到 OneSignal 的自定义事件格式:OneSignal 字段 | 描述 | 必需 | |
---|---|---|---|
name | event_name | 事件标识符 | 是 |
external_id | user_id | 用户标识符 | 是 |
timestamp | event_timestamp | 事件发生时间 | 否 |
properties | event_data | 否 |
示例事件表模式
SQL 查询示例
编写自定义 SQL 查询来转换您的事件数据:dbt 集成
如果您在 Redshift 中使用 dbt,请确保 OneSignal 在每次 dbt 运行后保持访问权限:选项1:细粒度权限
在您的 dbt 项目中添加后置钩子,以在每个模型构建后授予访问权限:选项2:默认权限(推荐)
为您的 dbt 生产用户授予默认权限:高级网络配置
SSH 隧道配置
对于私有网络上的 Redshift 集群:- 创建 SSH 用户:在您的 SSH 主机上设置专用用户
- 配置隧道:在 OneSignal 集成设置中启用“使用 SSH 隧道”
- 安装密钥对:将 OneSignal 的公钥添加到
~/.ssh/authorized_keys
- 测试连接:验证隧道连接
VPC 配置
对于 AWS VPC 内的 Redshift: OneSignal 使用UNLOAD
命令进行高效的批量数据提取。VPC 部署需要 S3 VPC 端点以允许 Redshift 与 S3 通信。
设置 S3 VPC 端点:
- 在 AWS 控制台中导航到 VPC 服务
- 为 S3 服务创建 VPC 端点
- 与您的 Redshift 子网关联
- 配置路由表
性能优化
分布和排序键
为分析工作负载优化您的事件表:列式存储
利用 Redshift 的列式存储进行分析:- 压缩:Redshift 自动压缩列
- 区域映射:通过排序数据提高查询性能
- 面向列:对事件数据的分析查询高效
限制
- 多个模式需要分别授予权限
- 引用跨模式表的视图需要额外权限
- 复杂的存储过程访问可能需要额外设置
- VPC 部署需要 S3 VPC 端点配置
常见问题
OneSignal 如何处理大量事件数据?
OneSignal 使用 Redshift 的UNLOAD
命令进行高效的批量数据提取,该命令为大规模分析工作负载进行了优化。