# Tableau

Платформа dbt | Starter, Enterprise, Enterprise+

Интеграция с Tableau позволяет использовать рабочие листы для выполнения запросов напрямую к Semantic Layer и создавать дашборды на основе доверенных данных. Она обеспечивает живое подключение к Semantic Layer через Tableau Desktop или Tableau Server.

## Предварительные требования

* Вы [настроили Semantic Layer](https://docs.getdbt.tech/docs/use-dbt-semantic-layer/setup-sl.md) и используете dbt версии 1.6 или выше.
* У вас должен быть [Tableau Desktop](https://www.tableau.com/en-gb/products/desktop) версии 2021.1 или выше, Tableau Server или [Tableau Cloud](https://www.tableau.com/products/cloud-bi).
* Войдите в Tableau Desktop (с учётными данными Cloud или Server) или Tableau Cloud. Вы также можете использовать лицензированное развёртывание Tableau Server.
* Для входа вам понадобятся [хост dbt](https://docs.getdbt.tech/docs/use-dbt-semantic-layer/setup-sl.md#3-view-connection-detail), [идентификатор среды](https://docs.getdbt.tech/docs/use-dbt-semantic-layer/setup-sl.md#administer-the-semantic-layer-1) и [сервисный токен](https://docs.getdbt.tech/docs/dbt-apis/service-tokens.md) или [персональный токен доступа](https://docs.getdbt.tech/docs/dbt-apis/user-tokens.md). Эта учётная запись должна быть настроена для работы с Semantic Layer.
* У вас должна быть [учётная запись](https://www.getdbt.com/pricing) dbt на тарифе Starter или Enterprise. Поддерживаются как многопользовательские (Multi-tenant), так и однопользовательские (Single-tenant) развёртывания.

📹 Узнайте о семантическом слое dbt с помощью видеокурсов по запросу!

Изучите наш [курс по семантическому слою dbt](https://learn.getdbt.com/courses/semantic-layer), чтобы узнать, как определять и запрашивать метрики в вашем проекте dbt.

Кроме того, погрузитесь в мини-курсы по запросам к семантическому слою dbt в ваших любимых инструментах: [Tableau](https://courses.getdbt.com/courses/tableau-querying-the-semantic-layer), [Excel](https://learn.getdbt.com/courses/querying-the-semantic-layer-with-excel), [Hex](https://courses.getdbt.com/courses/hex-querying-the-semantic-layer) и [Mode](https://courses.getdbt.com/courses/mode-querying-the-semantic-layer).

## Установка коннектора

Коннектор Tableau для Semantic Layer доступен для загрузки напрямую на [Tableau Exchange](https://exchange.tableau.com/products/1020). Коннектор поддерживается в Tableau Desktop, Tableau Server и Tableau Cloud.

В качестве альтернативы вы можете выполнить следующие шаги для установки коннектора. Обратите внимание, что эти шаги применимы только к Tableau Desktop и Tableau Server. Коннектор для Tableau Cloud управляется самой Tableau.

1. Загрузите [файл коннектора](https://github.com/dbt-labs/semantic-layer-tableau-connector/releases/latest/download/dbt_semantic_layer.taco) с GitHub локально и добавьте его в вашу папку по умолчанию:

| Операционная система | Tableau Desktop                                                       | Tableau Server                        |
| -------------------- | --------------------------------------------------------------------- | ------------------------------------- |
| Windows              | `C:\Users\\[Windows User]\Documents\My Tableau Repository\Connectors` | `C:\Program Files\Tableau\Connectors` |
| Mac                  | `/Users/[user]/Documents/My Tableau Repository/Connectors`            | Не применимо                          |
| Linux                | `/opt/tableau/connectors`                                             | `/opt/tableau/connectors`             |

2. Установите [драйвер JDBC](https://docs.getdbt.tech/docs/dbt-apis/sl-jdbc.md) в папку, соответствующую вашей операционной системе:

   * Windows: `C:\Program Files\Tableau\Drivers`
   * Mac: `~/Library/Tableau/Drivers` или `/Library/JDBC` или `~/Library/JDBC`
   * Linux: `/opt/tableau/tableau_driver/jdbc`

3. Откройте Tableau Desktop или Tableau Server и найдите коннектор **Semantic Layer by dbt Labs** в левой части окна. Возможно, потребуется перезапустить эти приложения, чтобы коннектор стал доступен.

4. Подключитесь, используя Host, Environment ID и служебный или персональный токен, которые dbt предоставляет при [настройке Semantic Layer](https://docs.getdbt.tech/docs/use-dbt-semantic-layer/setup-sl.md).
   * В Tableau Server на экране аутентификации вместо этого могут отображаться поля "User" и "Password". В этом случае в поле User укажите Environment ID, а в поле Password — Service Token.

## Использование интеграции

1. **Аутентификация** — После аутентификации система перенаправит вас на страницу источника данных.
2. **Доступ ко всем объектам Semantic Layer** — Используйте источник данных **"ALL"**, чтобы получить доступ ко всем метрикам, измерениям и сущностям, настроенным в вашем Semantic Layer. Обратите внимание, что источник данных **"METRICS\_AND\_DIMENSIONS"** был признан устаревшим и заменён на **"ALL"**. Обязательно используйте живое подключение, так как извлечения (extracts) в настоящее время не поддерживаются.
3. **Доступ к сохранённым запросам** — При необходимости вы можете получить доступ к отдельным [сохранённым запросам](https://docs.getdbt.tech/docs/build/saved-queries.md), которые вы определили. Они также будут отображаться как отдельные источники данных при входе в систему.
4. **Доступ к рабочему листу** — На экране выбора источника данных перейдите напрямую к рабочему листу, используя элемент в левом нижнем углу.
5. **Запрос метрик и измерений** — После этого в левой части окна вы увидите все метрики, измерения и сущности, доступные для запросов, в зависимости от выбранного источника.

Посетите [документацию Tableau](https://help.tableau.com/current/pro/desktop/en-us/gettingstarted_overview.htm), чтобы узнать больше о том, как использовать рабочие листы и панели Tableau.

### Публикация из Tableau Desktop на Tableau Server

* **Из Desktop в Server** — Как и в любом рабочем процессе Tableau, вы можете опубликовать свою рабочую книгу из Tableau Desktop в Tableau Server. Для пошаговых инструкций посетите [руководство по публикации](https://help.tableau.com/current/pro/desktop/en-us/publish_workbooks_share.htm) от Tableau.

#### Изменение временной гранулярности

При выборе временных измерений в меню **Group By** отображается список доступных уровней детализации времени. По умолчанию выбран самый низкий уровень детализации. Metric time — временное измерение по умолчанию для группировки метрик.

к сведению

Примечание: [Пользовательские уровни детализации времени](https://docs.getdbt.tech/docs/build/metricflow-time-spine.md#add-custom-granularities) (например, финансовый год) в настоящее время не поддерживаются и недоступны в этой интеграции. Доступны только [стандартные уровни детализации](https://docs.getdbt.tech/docs/build/dimensions.md?dimension=time_gran#time) (например, день, неделя, месяц и так далее). Если вам нужен доступ к пользовательским уровням детализации, рассмотрите возможность использования [API семантического слоя](https://docs.getdbt.tech/docs/dbt-apis/sl-api-overview.md).

## На что следует обратить внимание

**Агрегация**<br />

* Все метрики в интерфейсе Tableau отображаются как использующие тип агрегации «SUM», и это нельзя изменить средствами интерфейса Tableau.
* Тип агрегации на уровне кода контролируется в Semantic Layer и намеренно зафиксирован. При этом важно помнить, что фактическая агрегация в Semantic Layer может быть не «SUM» (так как «SUM» — это значение по умолчанию в Tableau).

**Источники данных и отображение**<br />

* В источнике данных «ALL» Tableau отображает все метрики и измерения из Semantic Layer в левой панели. Обратите внимание, что не все метрики и измерения можно комбинировать между собой. Если конкретное измерение нельзя использовать для разреза метрики (или наоборот), вы получите сообщение об ошибке. Для объединения меньших наборов данных можно использовать сохранённые запросы.
* Чтобы отобразить доступные метрики и измерения, Semantic Layer возвращает метаданные для фиктивной таблицы, в которой измерения и метрики представлены как «столбцы». По этой причине вы не можете выполнять запросы к этой таблице для предпросмотра или создания extract’ов.

**Вычисления и запросы**<br />

* Некоторые табличные вычисления Tableau, такие как «Totals» и «Percent Of», могут быть неточными при использовании метрик с неаддитивной агрегацией (например, count distinct).
* В любом из интерфейсов Semantic Layer (не только в Tableau) при работе с любой кумулятивной метрикой, имеющей временное окно или гранулярность, необходимо включать [time dimension](https://docs.getdbt.tech/docs/build/cumulative.md#limitations).
* Мы поддерживаем вычисляемые поля для создания фильтров на основе параметров или для динамического выбора метрик и измерений. Однако другие сценарии использования вычисляемых полей не поддерживаются.
  * *Примечание: если у вас есть сценарии использования вычисляемых полей, которые в настоящее время не поддерживаются, пожалуйста, свяжитесь с [службой поддержки dbt](<mailto:support@getdbt.com?subject=dbt Semantic Layer feedback>) и опишите их, чтобы мы могли лучше понять ваши потребности.*
* При использовании сохранённых запросов, содержащих фильтры, мы автоматически применяем все фильтры, заданные в этом запросе.

## Неподдерживаемая функциональность

Следующие возможности Tableau в настоящее время не поддерживаются. Однако Semantic Layer может поддержать часть этой функциональности в будущих версиях:

* Обновление страницы источника данных
* Использование режима **"Extract"** для просмотра данных
* Объединение таблиц (Unioning Tables)
* Написание пользовательского SQL / Initial SQL
* Расширения таблиц (Table Extensions)
* Кросс-базовые соединения (Cross-Database Joins)
* Некоторые функции в меню **Analysis --> Create Calculated Field**
* Фильтрация по части даты (Date Part) для метрик кумулятивного типа
* Изменение измерения даты на использование **"Week Number"**
* Выполнение соединений между таблицами, которые создаёт Semantic Layer. Он сам управляет соединениями, поэтому нет необходимости соединять компоненты внутри Semantic Layer. Обратите внимание: вы *можете* соединять таблицы из Semantic Layer с таблицами вне вашей платформы данных.
* Интеграция с Tableau в настоящее время не отображает описательные метки, определённые в конфигурации `metrics`. Это означает, что пользовательские метки не будут видны при импорте или запросе этих метрик в Tableau.

## FAQs

Я получаю ошибку \`Failed ALPN\` при попытке подключения к dbt Semantic Layer

Если при попытке подключить dbt Semantic Layer к различным [инструментам интеграции данных](https://docs.getdbt.tech/docs/platform-integrations/avail-sl-integrations.md) (например, Tableau, DBeaver, Datagrip, ADBC или JDBC) вы получаете ошибку `Failed ALPN`, обычно это происходит при подключении с компьютера, находящегося за корпоративным VPN или прокси-сервером (например, Zscaler или Check Point).

Первопричина обычно заключается в том, что прокси вмешивается в TLS‑рукопожатие, поскольку Semantic Layer использует gRPC/HTTP2 для подключения. Чтобы решить эту проблему:

* Если ваш прокси-сервер поддерживает gRPC/HTTP2, но не настроен на использование ALPN, измените его настройки, чтобы разрешить ALPN. Или создайте исключение для домена dbt.
* Если ваш прокси-сервер не поддерживает gRPC/HTTP2, добавьте в его настройках исключение из перехвата SSL для домена dbt

Это должно помочь успешно установить соединение без ошибки Failed ALPN.
