# Google Sheets

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

Semantic Layer предоставляет бесшовную интеграцию с Google Sheets через настраиваемое меню. Этот аддон позволяет вам создавать запросы Semantic Layer и получать данные по вашим метрикам непосредственно внутри Google Sheets.

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

* Вы [настроили Semantic Layer](https://docs.getdbt.tech/docs/use-dbt-semantic-layer/setup-sl.md) и используете dbt версии 1.6 или выше. Если вы ещё не создали метрики, начните с [краткого руководства по Semantic Layer](https://docs.getdbt.tech/guides/sl-qs.md).
* Вам нужен аккаунт Google с доступом к Google Sheets и возможностью устанавливать дополнения Google.
* У вас есть [идентификатор окружения dbt](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) для аутентификации с использованием аккаунта dbt.
* У вас должен быть [аккаунт](https://www.getdbt.com/pricing) dbt с тарифом Starter или Enterprise. Поддерживаются как многопользовательские (Multi-tenant), так и однопользовательские (Single-tenant) развёртывания.

Если вы используете [ограничения по IP-адресам](https://docs.getdbt.tech/docs/platform/secure/ip-restrictions.md), убедитесь, что вы добавили [IP-адреса Google](https://www.gstatic.com/ipranges/goog.txt) в список разрешённых IP-адресов. В противном случае подключение к Google Sheets не будет работать.

📹 Узнайте о семантическом слое 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).

## Установка дополнения

1. Перейдите на [страницу приложения Semantic Layer for Sheets](https://gsuite.google.com/marketplace/app/foo/392263010968), чтобы установить дополнение. Его также можно найти в Google Sheets: откройте [**Расширения -> Дополнения -> Установить дополнения**](https://support.google.com/docs/answer/2942256?hl=en\&co=GENIE.Platform%3DDesktop\&oco=0#zippy=%2Cinstall-add-ons%2Cinstall-an-add-on) и воспользуйтесь поиском.

2. После установки откройте меню **Расширения** и выберите **Semantic Layer for Sheets**. В правой части экрана откроется специальное меню.

3. [Найдите](https://docs.getdbt.tech/docs/use-dbt-semantic-layer/setup-sl.md#administer-the-semantic-layer-1) **Host** и **Environment ID** в dbt.

   * Перейдите в **Account Settings** и выберите **Projects** на левой боковой панели.
   * Выберите свой проект, а затем перейдите к настройкам **Semantic Layer**. Эти данные понадобятся для аутентификации в Google Sheets на следующем шаге.
   * Вы можете сгенерировать сервисный токен, нажав **Generate service token** на странице настройки Semantic Layer, или перейдя в раздел **API tokens** в dbt. Также можно создать персональный токен доступа, перейдя в **API tokens** > **Personal tokens**.

     [![Найдите Environment ID, Host и URL-адреса в настройках dbt Semantic Layer. Сгенерируйте сервисный токен в настройках Semantic Layer или в разделе API tokens](/img/docs/dbt-platform/semantic-layer/sl-and-gsheets.png?v=2 "Найдите Environment ID, Host и URL-адреса в настройках dbt Semantic Layer. Сгенерируйте сервисный токен в настройках Semantic Layer или в разделе API tokens")](#)Найдите Environment ID, Host и URL-адреса в настройках dbt Semantic Layer. Сгенерируйте сервисный токен в настройках Semantic Layer или в разделе API tokens

4. В Google Sheets пройдите аутентификацию, используя Host, Environment ID из dbt и сервисный или персональный токен.

5. Начните запрашивать ваши метрики, используя **Конструктор запросов**. Для получения дополнительной информации о функциях меню обратитесь к [функциям Конструктора запросов](#query-builder-functions). Чтобы отменить запрос во время выполнения, нажмите кнопку "Отмена".

При выполнении запроса к вашим данным с помощью Google Sheets:

* Результат записывается в выбранную ячейку.
* Для операции в пользовательском меню установлен тайм-аут в шесть (6) минут.
* Если вы используете это расширение, убедитесь, что вы вошли в Chrome с тем же профилем Google, который использовали для настройки дополнения. Используйте только один профиль Google за раз, так как одновременное использование нескольких профилей Google может вызвать проблемы.
* Обратите внимание: в настоящее время для этой интеграции доступны только стандартные уровни детализации по времени; пользовательские уровни детализации по времени пока не поддерживаются.

## Функции конструктора запросов

Пользовательское меню **Конструктора запросов** Google Sheets обладает следующими возможностями:

| Элементы меню    | Описание                                                                                                                                                                                                     |
| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Метрики          | Поиск и выбор метрик.                                                                                                                                                                                        |
| Группировать по  | Поиск и выбор измерений или сущностей для группировки. Измерения группируются по сущности семантической модели, из которой они происходят. Вы можете выбрать измерения без метрик.                           |
| Диапазон времени | Быстрый выбор временных диапазонов для просмотра данных, который применяется к основной временной серии для метрик (время метрики), или более сложная фильтрация с использованием выбора "Пользовательский". |
| Где              | Фильтрация ваших данных. Это включает категориальные и временные фильтры.                                                                                                                                    |
| Сортировать по   | Возвращает порядок ваших данных.                                                                                                                                                                             |
| Ограничение      | Установите ограничение на количество строк в вашем выводе.                                                                                                                                                   |

Примечание: нажмите кнопку **info** рядом с любой метрикой или измерением, чтобы увидеть описание, определённое в вашем проекте dbt.

#### Изменение временной детализации

При выборе временных измерений в меню **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).

#### Фильтрация данных

Чтобы использовать функцию фильтрации, выберите [измерение](https://docs.getdbt.tech/docs/build/dimensions.md), по которому вы хотите фильтровать, и выберите операцию, по которой вы хотите фильтровать.

* Для категориальных измерений вы можете ввести значение в поиск или выбрать из заполненного списка.
* Для сущностей вы должны ввести значение, которое вы ищете, так как мы не загружаем все из-за большого количества значений.
* Продолжайте добавлять дополнительные фильтры по мере необходимости с помощью AND и OR.
* Для временных измерений вы можете использовать селектор временного диапазона для фильтрации по предустановкам или пользовательским опциям. Селектор временного диапазона применяется только к основной временной размерности (`metric_time`). Для всех других временных размерностей, которые не являются `metric_time`, вы можете использовать опцию "Где" для применения фильтров.

#### Другие настройки

Если вы хотите просто запросить значения данных без заголовков, вы можете выбрать опцию **Исключить названия столбцов**.

Чтобы вернуть ваши результаты и сохранить любые ранее выбранные данные ниже их, снимите флажок **Очистить последующие строки**. По умолчанию мы очистим все последующие строки, если данные устарели.

[![Запустите запрос в Конструкторе запросов. Используйте стрелку рядом с кнопкой Запрос, чтобы выбрать дополнительные настройки.](/img/docs/dbt-platform/semantic-layer/query-builder.png?v=2 "Запустите запрос в Конструкторе запросов. Используйте стрелку рядом с кнопкой Запрос, чтобы выбрать дополнительные настройки.")](#)Запустите запрос в Конструкторе запросов. Используйте стрелку рядом с кнопкой Запрос, чтобы выбрать дополнительные настройки.

## Использование сохраненных выборок

Сохраненные выборки позволяют вам сохранять введенные данные, которые вы создали в **Конструкторе запросов** Google Sheets, и легко получать к ним доступ снова, чтобы не приходилось постоянно создавать общие запросы с нуля. Чтобы создать сохраненную выборку:

1. Запустите запрос в **Конструкторе запросов**.
2. Сохраните выборку, выбрав стрелку рядом с кнопкой **Запрос**, а затем выберите **Запрос и сохранить выборку**.
3. Приложение сохраняет эти выборки, позволяя вам просматривать и редактировать их из меню гамбургера в разделе **Сохраненные выборки**.

Вы также можете сделать эти выборки приватными или общедоступными. Если выборки общедоступны, заданные вами параметры доступны в меню всем пользователям таблицы. Если выборки приватные, заданные вами параметры видны только вам. Обратите внимание: все пользователи, добавленные в таблицу, по-прежнему могут видеть данные из этих приватных выборок, но не смогут взаимодействовать с выборкой в меню или пользоваться автоматическим обновлением.

### Обновление выборок

Настройте ваши сохраненные выборки на автоматическое обновление каждый раз при загрузке дополнения. Вы можете сделать это, выбрав **Обновить при загрузке** при создании сохраненной выборки. Когда вы получите доступ к дополнению и у вас есть сохраненные выборки, которые должны обновляться, вы увидите "Загрузка..." в ячейках, которые обновляются.

Публичные сохраненные выборки будут обновляться для всех, кто редактирует лист.

В чем разница между сохраненными выборками и сохраненными запросами?

* Сохраненные выборки — это сохраненные компоненты, которые вы можете создать только при использовании приложения.
* Сохраненные запросы, объясненные в следующем разделе, — это определенные в коде секции данных, которые вы создаете в вашем проекте dbt и которые вы можете легко получить и использовать для создания выборок. Вы также можете использовать результаты из сохраненного запроса для создания сохраненной выборки.

## Использование сохраненных запросов

Получите доступ к [сохраненным запросам](https://docs.getdbt.tech/docs/build/saved-queries.md), поддерживаемым MetricFlow, в Google Sheets, чтобы быстро получить результаты из предопределенных наборов данных. Чтобы получить доступ к сохраненным запросам в Google Sheets:

1. Откройте меню гамбургера в Google Sheets.
2. Перейдите в **Сохраненные запросы**, чтобы получить доступ к доступным вам.
3. Вы также можете выбрать **Создать выборку**, что позволяет вам исследовать существующий запрос. Это не изменит оригинальный запрос, определенный в коде.
   * Если вы используете фильтр `WHERE` в сохраненном запросе, Google Sheets отображает расширенный синтаксис для этого фильтра.

**Disclosure о политике ограниченного использования**

Использование и передача Semantic Layer для Sheets, а также передача информации, полученной из Google APIs, в другие приложения осуществляется в соответствии с [Google API Services User Data Policy](https://developers.google.com/terms/api-services-user-data-policy), включая требования Limited Use.

## Частые вопросы

Я получаю ошибку \`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.
