> ## 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.

# Starburst Galaxy

> 将自定义事件从 Starburst Galaxy 同步到 OneSignal，以基于用户行为触发自动化旅程和个性化消息活动。

export const PLATFORM_0 = "Starburst Galaxy"

export const DATA_TYPE_0 = "event data"

export const COLUMN_HEADER_0 = "Galaxy Column"

export const PROPERTIES_DESCRIPTION_0 = "Event metadata as JSON"

## 概述

OneSignal + Starburst Galaxy 集成使您能够将自定义事件从 Starburst Galaxy 集群同步到 OneSignal，以基于用户行为触发自动化消息活动和旅程。

Starburst Galaxy 是一个基于 Trino 的全托管云分析平台，专为在云数据湖和数据仓库中进行快速 SQL 查询而设计。

***

## 要求

* 访问自定义事件（目前处于测试阶段）
* [升级账户计划](https://onesignal.com/pricing)（免费应用不可用）。

### Starburst Galaxy

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

***

## 设置

<Steps>
  <Step title="获取 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
    ```

    <Info>
      OneSignal 使用 JDBC 连接到 Starburst Galaxy。您只需要 Galaxy JDBC URL 的主机名部分。
    </Info>
  </Step>

  <Step title="配置 Starburst Galaxy 连接">
    在 OneSignal 中，前往 **数据 > 集成**，然后点击 **添加集成**。

    选择 **Starburst Galaxy** 并提供以下连接详细信息：

    * **主机：** 您的 Galaxy 集群主机名（来自步骤 1）
    * **用户名：** 您的 Galaxy 用户名
    * **密码：** 您的 Galaxy 密码
    * **端口：** 443（Galaxy 默认）
  </Step>

  <Step title="配置高级同步引擎（可选）">
    为了提高性能，在 Galaxy 中设置专用的 CENSUS 目录：

    1. 创建一个名为 `CENSUS` 的目录，包含一个名为 `CENSUS` 的模式
    2. 确保您的连接器支持：
       * `CREATE TABLE` 和 `DROP TABLE` 操作
       * 表写入（INSERT、DELETE、UPDATE）
       * `CREATE OR REPLACE TABLE` 语句
    3. 向您的 OneSignal 用户授予 `CENSUS.CENSUS` 模式的完全权限

    <Info>
      测试配置包括 MySQL、PostgreSQL、Snowflake、Iceberg 和 Starburst Galaxy 目录。
    </Info>
  </Step>
</Steps>

***

### 事件数据映射

将您的 {PLATFORM_0} {DATA_TYPE_0} 映射到 OneSignal 的自定义事件格式：

| OneSignal 字段  | {COLUMN_HEADER_0} | 描述                         | 必需 |
| ------------- | ----------------- | -------------------------- | -- |
| `name`        | `event_name`      | 事件标识符                      | 是  |
| `external_id` | `user_id`         | 用户标识符                      | 是  |
| `timestamp`   | `event_timestamp` | 事件发生时间                     | 否  |
| `properties`  | `event_data`      | {PROPERTIES_DESCRIPTION_0} | 否  |

### 事件查询示例

```sql theme={null}
-- 示例：跨 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;
```

### 云数据湖查询

```sql theme={null}
-- 示例：跨云数据源的联合查询
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 事件处理的最佳性能，无需手动干预。
