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

# MotherDuck

> Kullanıcı davranışına dayalı otomatik Journey'leri ve kişiselleştirilmiş mesajlaşma kampanyalarını tetiklemek için özel olayları MotherDuck'tan OneSignal'e senkronize edin.

export const PLATFORM_0 = "MotherDuck"

export const DATA_TYPE_0 = "table columns"

export const COLUMN_HEADER_0 = "MotherDuck Column"

export const PROPERTIES_DESCRIPTION_0 = "JSON object with event metadata"

## Genel bakış

OneSignal + MotherDuck entegrasyonu, kullanıcı davranışına dayalı otomatik mesajlaşma kampanyalarını ve Journey'leri tetiklemek için MotherDuck veritabanlarınızdan OneSignal'e özel olayların otomatik senkronizasyonunu sağlar.

MotherDuck, SQL basitliği ile hızlı OLAP (Çevrimiçi Analitik İşleme) yetenekleri sağlayan bir bulutta-DuckDB hizmetidir.

***

## Gereksinimler

* Access to [Event Streams](/docs/en/event-streams) for outbound message events (Plan limitations and overages apply)
* Access to [Custom Events](/docs/en/custom-events) for inbound event syncing (Plan limitations and overages apply)
* [Updated Account Plan](https://onesignal.com/pricing) (not available on free apps)

### MotherDuck

* Veritabanı erişimi olan **MotherDuck hesabı**
* Kimlik doğrulama için **Service token**
* Olay verileri içeren **Veritabanı**
* Yapılandırılmış olay bilgileri içeren **Tablolar veya görünümler**

***

## Kurulum

<Steps>
  <Step title="Create MotherDuck service token">
    OneSignal'in MotherDuck'a bağlanması için bir erişim token'ı oluşturun:

    1. `app.motherduck.com` adresindeki MotherDuck Web UI'sına giriş yapın
    2. Sol üst köşedeki profilinize tıklayın
    3. **Settings** > **General** > **Access Tokens**'a gidin
    4. **Create Token**'a tıklayın
    5. Son kullanma tarihini ayarlayın (veya sınırsız bırakın)
    6. Oluşturulan service token'ı kopyalayın
  </Step>

  <Step title="Prepare your event data">
    MotherDuck veritabanınızın düzgün yapılandırılmış olay tabloları içerdiğinden emin olun:

    ```sql theme={null}
    -- Örnek olay tablosu yapısı
    CREATE TABLE user_events (
        event_name VARCHAR,
        user_id VARCHAR,
        event_timestamp TIMESTAMP,
        event_properties JSON,
        session_id VARCHAR
    );
    ```
  </Step>

  <Step title="Connect to OneSignal">
    In OneSignal, go to **Data > Integrations** and click **Add Integration**.

    **MotherDuck**'ı seçin ve şunları sağlayın:

    * **Service Token:** Adım 1'den token
    * **Database Name:** MotherDuck veritabanı adınız
    * **Connection String:** `md:your_database_name`
  </Step>

  <Step title="Configure data sync">
    Hangi olay verilerini senkronize edeceğinizi tanımlamak için tabloları seçin veya özel SQL sorguları yazın:

    ```sql theme={null}
    SELECT
        event_name,
        user_id,
        event_timestamp,
        event_properties
    FROM user_events
    WHERE event_timestamp >= CURRENT_DATE - INTERVAL 7 DAYS
    ```
  </Step>
</Steps>

***

### Event data mapping

Map your {PLATFORM_0} {DATA_TYPE_0} to OneSignal's custom events format:

| OneSignal Field | {COLUMN_HEADER_0} | Description                | Required |
| --------------- | ----------------- | -------------------------- | -------- |
| `name`          | `event_name`      | Event identifier           | Yes      |
| `external_id`   | `user_id`         | User identifier            | Yes      |
| `timestamp`     | `event_timestamp` | When event occurred        | No       |
| `properties`    | `event_data`      | {PROPERTIES_DESCRIPTION_0} | No       |

### Example Event Query

```sql theme={null}
-- Optimized event query for OneSignal sync
SELECT
    event_name,
    user_id,
    event_timestamp,
    {
        'source': 'motherduck',
        'session_id': session_id,
        'device_type': device_type,
        'value': event_value
    }::JSON as event_properties
FROM analytics.user_events
WHERE event_timestamp >= CURRENT_TIMESTAMP - INTERVAL 1 DAY
ORDER BY event_timestamp DESC
```

***

## İşleme Modları

### Tablo Modu

Tüm tabloları doğrudan MotherDuck veritabanınızdan senkronize edin. OneSignal, sütunları otomatik olarak olay alanlarına eşleyecektir.

### SQL Sorgu Modu

Olay verilerinizi dönüştürmek ve filtrelemek için özel DuckDB SQL sorguları yazın:

```sql theme={null}
-- Gelişmiş olay toplama
SELECT
    'daily_summary' as event_name,
    user_id,
    DATE_TRUNC('day', event_timestamp) as event_timestamp,
    {
        'total_events': COUNT(*),
        'unique_sessions': COUNT(DISTINCT session_id),
        'last_activity': MAX(event_timestamp)
    }::JSON as event_properties
FROM user_events
WHERE event_timestamp >= CURRENT_DATE - INTERVAL 7 DAYS
GROUP BY user_id, DATE_TRUNC('day', event_timestamp)
```

***

## Sınırlamalar

* Sorgu karmaşıklığı senkronizasyon performansını etkiler
* Büyük sonuç kümeleri senkronizasyon hızını etkileyebilir
* JSON ayrıştırma, uygun sütun tipi gerektir

***

## SSS

### MotherDuck'ta sorgu performansını nasıl optimize ederim?

Yalnızca gerekli sütunları seçerek ve sorguların başında filtreleri uygulayarak DuckDB'nin sütunsal depolama avantajlarını kullanın.

### Birden fazla MotherDuck veritabanından senkronize edebilir miyim?

Evet, hesabınızdaki her MotherDuck veritabanı için ayrı entegrasyonlar oluşturabilirsiniz.

***
