跳转到主要内容

概述

OneSignal + Starburst Galaxy 集成使您能够将自定义事件从 Starburst Galaxy 集群同步到 OneSignal,以基于用户行为触发自动化消息活动和旅程。 Starburst Galaxy 是一个基于 Trino 的全托管云分析平台,专为在云数据湖和数据仓库中进行快速 SQL 查询而设计。

要求

  • 访问自定义事件(目前处于测试阶段)
  • 升级账户计划(免费应用不可用)。

Starburst Galaxy

  • 具有网络访问权限的 Starburst Galaxy 集群
  • 具有适当权限的用户凭据
  • TLS 连接支持(Galaxy 内置)
  • 可通过 Galaxy 目录访问的事件数据

设置

1

获取 Galaxy JDBC 连接详细信息

在您的 Starburst Galaxy 控制台中,导航到您集群的连接详细信息。JDBC URL 示例:
jdbc:trino://census-example-cluster.trino.galaxy.starburst.io:[email protected]/accountadmin
为 OneSignal 提取主机名:
census-example-cluster.trino.galaxy.starburst.io
OneSignal 使用 JDBC 连接到 Starburst Galaxy。您只需要 Galaxy JDBC URL 的主机名部分。
2

配置 Starburst Galaxy 连接

在 OneSignal 中,前往 数据 > 集成,然后点击 添加集成选择 Starburst Galaxy 并提供以下连接详细信息:
  • 主机: 您的 Galaxy 集群主机名(来自步骤 1)
  • 用户名: 您的 Galaxy 用户名
  • 密码: 您的 Galaxy 密码
  • 端口: 443(Galaxy 默认)
3

配置高级同步引擎(可选)

为了提高性能,在 Galaxy 中设置专用的 CENSUS 目录:
  1. 创建一个名为 CENSUS 的目录,包含一个名为 CENSUS 的模式
  2. 确保您的连接器支持:
    • CREATE TABLEDROP TABLE 操作
    • 表写入(INSERT、DELETE、UPDATE)
    • CREATE OR REPLACE TABLE 语句
  3. 向您的 OneSignal 用户授予 CENSUS.CENSUS 模式的完全权限
测试配置包括 MySQL、PostgreSQL、Snowflake、Iceberg 和 Starburst Galaxy 目录。

事件数据映射

将您的 映射到 OneSignal 的自定义事件格式:
OneSignal 字段描述必需
nameevent_name事件标识符
external_iduser_id用户标识符
timestampevent_timestamp事件发生时间
propertiesevent_data

事件查询示例

-- 示例:跨 Galaxy 目录的近期高价值事件
SELECT
    event_name,
    user_id,
    event_timestamp,
    CAST(event_properties AS JSON) as event_properties
FROM catalog.schema.user_events
WHERE event_timestamp >= current_timestamp - INTERVAL '7' DAY
    AND JSON_EXTRACT_SCALAR(event_properties, '$.value') > '100'
ORDER BY event_timestamp DESC;

云数据湖查询

-- 示例:跨云数据源的联合查询
SELECT
    'cloud_activity' as event_name,
    u.user_id,
    current_timestamp as event_timestamp,
    JSON_FORMAT(JSON_OBJECT(
        's3_interactions', s.interaction_count,
        'snowflake_orders', sf.order_count,
        'bigquery_analytics', bq.score_value
    )) as event_properties
FROM s3_catalog.users.profiles u
LEFT JOIN s3_catalog.interactions.summary s ON u.user_id = s.user_id
LEFT JOIN snowflake_catalog.orders.summary sf ON u.user_id = sf.user_id
LEFT JOIN bigquery_catalog.analytics.scores bq ON u.user_id = bq.user_id
WHERE u.created_date >= current_date - INTERVAL '30' DAY;

同步引擎选项

基本同步引擎

  • 与任何 Galaxy 目录和连接器兼容
  • 状态跟踪由 OneSignal 基础设施管理
  • 更简单的设置,无附加要求

高级同步引擎

  • 通过本地状态跟踪提高性能
  • 需要专用的 CENSUS.CENSUS 目录和模式
  • 支持具有表写入操作的连接器
  • 推荐用于大量云事件处理

支持的连接器

OneSignal 的高级同步引擎已经过以下测试:
  • MySQL 连接器(读写模式)
  • PostgreSQL 连接器(读写模式)
  • Snowflake 连接器(读写模式)
  • Iceberg 连接器(使用 S3 和 AWS Glue)
  • Starburst Galaxy 目录(原生 Galaxy 存储)

云平台功能

多云联合

  • 跨 AWS、Azure 和 GCP 数据源进行查询
  • 结合 S3、Snowflake、BigQuery 和 Azure 数据
  • 跨云提供商的统一事件分析

托管基础设施

  • 具有自动扩展的全托管 Trino 集群
  • 内置的安全和合规功能
  • 无需基础设施管理

Galaxy 原生目录

  • 高性能原生 Galaxy 存储
  • 与 Galaxy 生态系统无缝集成
  • 为云分析工作负载优化

限制

  • 需要 TLS 连接(Galaxy 内置)
  • 高级同步引擎需要 CREATE OR REPLACE TABLE 支持
  • 尚不支持数据仓库写回(即将推出)
  • 无法在 WITH 子句中提供自定义表选项

常见问题

如何获取我的 Galaxy 集群主机名?

在您的 Starburst Galaxy 控制台中,转到您集群的连接详细信息并复制 JDBC URL。提取仅主机名部分(不包含 jdbc:trino:// 前缀)以在 OneSignal 中使用。

我可以查询多个云数据源吗?

可以!Starburst Galaxy 的联合查询功能允许您在单个查询中结合来自多个云源(S3、Snowflake、BigQuery 等)的事件数据。

Galaxy 是否支持 OneSignal 工作负载的自动扩展?

可以,Starburst Galaxy 根据查询负载自动扩展集群,确保您的 OneSignal 事件处理的最佳性能,无需手动干预。
I