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 + SQL Server 集成能够将您的 Microsoft SQL Server 数据库中的自定义事件同步到 OneSignal,以基于用户行为触发自动化消息活动和 Journey。
SQL Server 是微软的关系数据库管理系统,专为企业应用程序和数据仓库而设计。
- 访问自定义事件(目前处于测试阶段)
- 升级账户计划(免费应用不可用)。
SQL Server
- 具有网络访问权限的 SQL Server 实例
- 具有适当权限的数据库用户
- 包含结构化行为数据的事件表
- 从 OneSignal 到您的 SQL Server 实例的网络连接
为 OneSignal 创建专用用户
创建具有强大、唯一密码的专用用户账户:-- Create census user with the ability to sign in with a password
CREATE USER CENSUS WITH PASSWORD = '<strong-unique-password>';
-- Give the census user the ability to connect to database
GRANT CONNECT TO CENSUS;
所有 SQL Server 命令将在运行脚本时指定的数据库内运行。
授予读取权限
为您的事件数据提供只读访问权限:-- Give the census user the ability to read tables within the database
EXEC sp_addrolemember 'db_datareader', CENSUS;
-- Grant census user ability to read data from within a schema
-- Run this for each schema you intend OneSignal to access
GRANT SELECT, VIEW DEFINITION ON SCHEMA::<your-schema> TO CENSUS;
将 <your-schema> 替换为包含事件数据的实际架构名称。对于您希望 OneSignal 访问的每个架构,重复此命令。
配置高级同步引擎(可选)
为提高性能,为 OneSignal 的同步状态创建记账架构:-- Create a private bookkeeping schema where Census can store sync state
CREATE SCHEMA CENSUS AUTHORIZATION CENSUS;
-- Give the census user full access to the bookkeeping schema
GRANT ALTER, DELETE, EXECUTE, INSERT, REFERENCES, SELECT,
UPDATE, VIEW DEFINITION ON SCHEMA::CENSUS TO CENSUS;
-- Give the census user the ability to create tables within the database
GRANT CREATE TABLE TO CENSUS;
连接到 OneSignal
在 OneSignal 中,前往 数据 > 集成,然后点击 添加集成。选择 SQL Server 并提供以下连接详细信息:
- **主机:**您的 SQL Server 实例主机名或 IP 地址
- **端口:**1433(默认)或您的自定义端口
- **数据库:**您的数据库名称
- 用户名:
CENSUS
- **密码:**步骤 1 中的密码
事件数据映射
将您的 映射到 OneSignal 的自定义事件格式:
| OneSignal 字段 | 描述 | 必需 | |
|---|
name | event_name | 事件标识符 | 是 |
external_id | user_id | 用户标识符 | 是 |
timestamp | event_timestamp | 事件发生时间 | 否 |
properties | event_data | 否 | |
示例事件表架构
-- Example SQL Server 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)
);
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;
高级网络配置
OneSignal 可以成功连接到使用高级网络控制的 SQL Server 实例,包括地区限制、IP 地址允许列表或 SSH 隧道。
有关配置网络访问的更多信息,请联系您的 SQL Server 管理员或 OneSignal 支持。
同步引擎选项
基本同步引擎
- 对您的事件数据的只读访问
- 由 OneSignal 基础设施管理的状态跟踪
- 使用最少权限的简单设置
高级同步引擎
- 通过本地状态跟踪提升性能
- 需要额外权限来创建表
- 推荐用于高容量事件处理
- 复杂查询可能在高流量期间影响数据库性能
- JSON 操作需要 SQL Server 2016 或更高版本以获得最佳性能
- 所有权限都在设置期间指定的数据库级别授予
常见问题
我可以连接到多个 SQL Server 架构吗?
可以,您可以通过为包含事件数据的每个架构运行 GRANT SELECT, VIEW DEFINITION ON SCHEMA::<schema> 语句来授予 CENSUS 用户访问多个架构的权限。
支持哪些 SQL Server 版本?
OneSignal 支持现代 SQL Server 版本。对于事件查询中的 JSON 操作,建议使用 SQL Server 2016 或更高版本。
我需要使用高级同步引擎吗?
不需要,基本同步引擎适用于大多数用例。如果您需要增强性能并且可以允许 OneSignal 在您的 SQL Server 实例中创建表,请使用高级同步引擎。