Documentation Index
Fetch the complete documentation index at: https://documentation.onesignal.com/llms.txt
Use this file to discover all available pages before exploring further.
OneSignal + Azure Synapse 集成可以将您的 Azure Synapse Analytics 工作区中的自定义事件同步到 OneSignal,以基于用户行为触发自动化消息活动和旅程。
Azure Synapse Analytics 是微软基于云的分析服务,结合了数据集成、数据仓库和分析功能。
- 访问自定义事件(目前处于测试阶段)
- 升级账户计划(免费应用不可用)。
Azure Synapse 要求
- 具有 SQL 池访问权限的 Azure Synapse 工作区
- 具有适当权限的数据库用户
- 包含结构化行为数据的事件表
- OneSignal IP 地址的防火墙访问权限
为 OneSignal 创建专用登录
使用强密码和唯一密码创建专用登录和用户账户:USE <your-database>;
-- Create census login with the ability to sign in with a password
CREATE LOGIN CENSUS WITH PASSWORD = '<strong-unique-password>';
-- Create user for the login
CREATE USER CENSUS FOR LOGIN CENSUS;
-- Give the census user the ability to connect to database
GRANT CONNECT TO CENSUS;
将 <your-database> 替换为包含事件数据的实际数据库名称。
授予读取权限
为您的事件数据提供只读访问权限:-- Give the census user the ability to read all tables
EXEC sp_addrolemember 'db_datareader', CENSUS;
-- Grant census user ability to read schema and data
-- Run this for each schema you intend OneSignal to access
GRANT SELECT, VIEW DEFINITION ON SCHEMA::<your-schema> TO CENSUS;
将 <your-schema> 替换为包含事件数据的实际模式名称。为每个您希望 OneSignal 访问的模式重复此命令。
配置防火墙访问
配置 Azure Synapse 防火墙以允许 OneSignal IP 地址。使用 Windows Azure 管理门户或在主数据库上运行 sp_set_firewall_rule:-- Example: Add firewall rule for OneSignal IP range
EXEC sp_set_firewall_rule
N'OneSignal Access',
'ONESIGNAL_IP_START',
'ONESIGNAL_IP_END';
请联系 OneSignal 支持获取您所在地区的当前 IP 地址范围。
连接到 OneSignal
在 OneSignal 中,前往 数据 > 集成,然后点击 添加集成。选择 Azure Synapse 并提供以下连接详细信息:
- 主机: 您的 Synapse SQL 端点主机名
- 端口: 1433(默认值)
- 数据库: 您的数据库名称
- 用户名:
CENSUS
- 密码: 步骤 1 中的密码
事件数据映射
将您的 映射到 OneSignal 的自定义事件格式:
| OneSignal 字段 | 描述 | 必需 | |
|---|
name | event_name | 事件标识符 | 是 |
external_id | user_id | 用户标识符 | 是 |
timestamp | event_timestamp | 事件发生时间 | 否 |
properties | event_data | 否 | |
示例事件表架构
-- Example Azure Synapse event table
CREATE TABLE analytics.user_events (
event_id BIGINT IDENTITY(1,1) PRIMARY KEY,
event_name NVARCHAR(100) NOT NULL,
user_id NVARCHAR(255) NOT NULL,
event_timestamp DATETIME2 DEFAULT GETUTCDATE(),
event_data NVARCHAR(MAX),
session_id NVARCHAR(255),
device_type NVARCHAR(50)
)
WITH (DISTRIBUTION = HASH(user_id), CLUSTERED COLUMNSTORE INDEX);
SQL 查询模式
编写自定义 SQL 查询来转换您的事件数据:
-- Example: Recent high-value events
SELECT
event_name,
user_id,
event_timestamp,
event_data
FROM analytics.user_events
WHERE event_timestamp >= DATEADD(day, -7, GETUTCDATE())
AND JSON_VALUE(event_data, '$.value') > 100
ORDER BY event_timestamp DESC;
Azure 特定功能
分布式架构
- 按
user_id 分布的事件,以获得最优查询性能
- 用于分析工作负载的聚集列存储索引
- 用于大规模事件数据的大规模并行处理 (MPP)
与 Azure 生态系统集成
- 连接到 Azure Data Factory 以实现自动化事件管道
- 与 Azure Event Hubs 集成实现实时事件流
- 利用 Azure Active Directory 进行身份验证
高级网络配置
OneSignal 可以成功连接到使用高级网络控制的 Azure Synapse 实例,包括区域限制、IP 地址允许列表或 SSH 隧道。
有关配置网络访问的更多信息,请联系您的 Azure Synapse 管理员或 OneSignal 支持。
- 基于 SQL Server JDBC 驱动程序连接协议
- 需要为 OneSignal IP 地址设置显式防火墙规则
- 复杂查询可能影响 SQL 池性能和成本
- JSON 操作需要仔细的索引以获得最佳性能
常见问题
我可以连接到多个 Azure Synapse 模式吗?
是的,您可以通过为每个包含事件数据的模式运行 GRANT SELECT, VIEW DEFINITION ON SCHEMA::<schema> 语句来授予 CENSUS 用户访问多个模式的权限。
如何为 OneSignal 配置防火墙访问权限?
使用 Azure 管理门户或 sp_set_firewall_rule 添加 OneSignal 的 IP 地址。请联系 OneSignal 支持获取当前的 IP 范围。
Azure Synapse 和 SQL Server 集成有什么区别?
Azure Synapse 使用相同的 SQL Server JDBC 驱动程序,但包含分布式架构功能,并需要特定的防火墙配置以进行云访问。