---
title: Canny
description: Połącz Canny, poznaj sposób synchronizacji i wysyłaj zapytania do wszystkich zapisywanych tabel i kolumn.
species: reference
---
# Canny

Połącz Canny za pomocą klucza API. Źródło zapisuje 8 stałych tabel w schemacie `titan.canny`.
```sql
select
  id,
  name,
  created
from titan.canny.boards
limit 10
```

## Połącz Canny

1. Otwórz **Aplikacje**, wybierz **Połącz aplikację**, a następnie **Canny**.
2. Podaj klucz API.
3. Sprawdź tabele, a następnie zapisz źródło.
4. Obserwuj **Historię synchronizacji**, aż pierwsze uruchomienie się zakończy.

Dane uwierzytelniające są przechowywane jako sekrety. Nigdy nie stają się kolumnami jeziora ani nie pojawiają się w wynikach zapytań.

## Sposób synchronizacji

Tablice, wpisy, głosy, komentarze, użytkownicy, wpisy dziennika zmian, tagi i zmiany statusu są synchronizowane razem.

Nowe źródło synchronizuje się po połączeniu, a następnie zgodnie z harmonogramem. Domyślny interwał cykliczny wynosi 4 godziny. Przerwane uruchomienie zachowuje ukończone postępy i jest bezpiecznie ponawiane.

Każda tabela jeziora ma też [kolumny systemowe](/docs/concepts/your-lake#kolumny-systemowe) `_synced_at` i `_deleted`; poniższa dokumentacja kolumn obejmuje wyłącznie kolumny źródłowe.

## Dokumentacja tabel

### `boards`

`titan.canny.boards` ma 5 kolumn źródłowych.

```columns table=canny.boards
id                                      string pk           Pole źródłowe `id`.
name                                    string              Pole źródłowe `name`.
created                                 datetime            Pole źródłowe `created`.
url                                     string              Pole źródłowe `url`.
post_count                              integer             Pole źródłowe `postCount`.
```

### `posts`

`titan.canny.posts` ma 9 kolumn źródłowych.

```columns table=canny.posts
id                                      string pk           Pole źródłowe `id`.
title                                   string              Pole źródłowe `title`.
details                                 string              Pole źródłowe `details`.
status                                  string              Pole źródłowe `status`.
score                                   integer             Pole źródłowe `score`.
comment_count                           integer             Pole źródłowe `commentCount`.
author_id                               string              Pole źródłowe `authorID`.
board_id                                string              Pole źródłowe `boardID`.
created                                 datetime            Pole źródłowe `created`.
```

### `votes`

`titan.canny.votes` ma 4 kolumny źródłowe.

```columns table=canny.votes
id                                      string pk           Pole źródłowe `id`.
post_id                                 string              Pole źródłowe `postID`.
voter_id                                string              Pole źródłowe `voterID`.
created                                 datetime            Pole źródłowe `created`.
```

### `comments`

`titan.canny.comments` ma 5 kolumn źródłowych.

```columns table=canny.comments
id                                      string pk           Pole źródłowe `id`.
post_id                                 string              Pole źródłowe `postID`.
author_id                               string              Pole źródłowe `authorID`.
value                                   string              Pole źródłowe `value`.
created                                 datetime            Pole źródłowe `created`.
```

### `users`

`titan.canny.users` ma 5 kolumn źródłowych.

```columns table=canny.users
id                                      string pk           Pole źródłowe `id`.
name                                    string              Pole źródłowe `name`.
email                                   string              Pole źródłowe `email`.
created                                 datetime            Pole źródłowe `created`.
user_id                                 string              Pole źródłowe `userID`.
```

### `changelog_entries`

`titan.canny.changelog_entries` ma 4 kolumny źródłowe.

```columns table=canny.changelog_entries
id                                      string pk           Pole źródłowe `id`.
title                                   string              Pole źródłowe `title`.
status                                  string              Pole źródłowe `status`.
published_at                            datetime            Pole źródłowe `publishedAt`.
```

### `tags`

`titan.canny.tags` ma 4 kolumny źródłowe.

```columns table=canny.tags
id                                      string pk           Pole źródłowe `id`.
name                                    string              Pole źródłowe `name`.
board_id                                string              Pole źródłowe `boardID`.
created                                 datetime            Pole źródłowe `created`.
```

### `status_changes`

`titan.canny.status_changes` ma 5 kolumn źródłowych.

```columns table=canny.status_changes
id                                      string pk           Pole źródłowe `id`.
post_id                                 string              Pole źródłowe `postID`.
status                                  string              Pole źródłowe `status`.
changer_id                              string              Pole źródłowe `changerID`.
created                                 datetime            Pole źródłowe `created`.
```

## Usunięcia i historia

Wiersze są scalane według klucza źródłowego. Gdy źródło może potwierdzić usunięcie wiersza, Supernova zachowuje go i ustawia `_deleted`, dzięki czemu zapytania mogą zdecydować, czy uwzględniać historię. Aby pobierać bieżący stan, filtruj zapytania przez `where not _deleted`.
