Перейти к содержанию

Работа с JSON

Фильтрация JSON

В конструкторе запросов Glarus BI не может разбирать JSON в столбцах, поэтому вы можете фильтровать только по «Пусто» или «Не пусто».

Разворачивание JSON

С некоторыми базами данных Glarus BI может разворачивать столбцы JSON на составные поля, по которым затем можно фильтровать в конструкторе запросов.

Вот таблица со столбцом, содержащим JSON.

Таблица со столбцом JSON

Glarus BI может развернуть этот JSON-столбец так, что каждый ключ в JSON-объекте получит свой столбец в таблице. Вот развёрнутые поля таблицы со столбцом JSON из примера выше:

Развёрнутые поля

И здесь видны значения как в таблице:

Развёрнутые значения

Такое разворачивание позволяет фильтровать по значениям из исходного JSON-объекта.

Glarus BI добавит к названиям развёрнутых столбцов префикс с названием исходного столбца, в котором был JSON. Изменить названия столбцов можно в Управление > Метаданные таблиц, либо создав модель и отредактировав метаданные полей.

Включение и отключение разворачивания JSON для базы данных

Если вы заметили снижение производительности из‑за разворачивания JSON, мы рекомендуем отключить эту возможность.

Чтобы отключить разворачивание JSON для базы данных:

  1. Нажмите на шестерёнку в правом верхнем углу.
  2. Выберите Управление.
  3. Откройте вкладку Базы данных.
  4. Выберите нужную базу данных.
  5. Нажмите Отобразить дополнительные параметры.
  6. Переключите Разрешить разворачивание столбцов JSON.
  7. Прокрутите вниз и нажмите Сохранить изменения.
  8. Нажмите Выполнить синхронизацию схемы.
  9. Нажмите Пересканировать значения полей.

Включение и отключение разворачивания JSON для конкретного столбца

Если производительность ухудшилась, или вы предпочитаете хранить JSON в исходном столбце, вы можете отключить разворачивание для отдельных полей в их настройках.

  1. Нажмите шестерёнку в правом верхнем углу.
  2. Выберите Управление.
  3. Откройте вкладку Метаданные таблиц.
  4. Выберите базу данных, в которой находится поле.
  5. Выберите таблицу, в которой находится поле.
  6. Выберите поле с исходным JSON.
  7. В разделе Поведение найдите параметр Разворачивание JSON и выберите Да или Нет. Если столбец был развёрнут, Glarus BI скроет исходный JSON‑столбец. Если вы хотите снова отображать этот столбец, нужно изменить его видимость на Везде.
  8. Прокрутите вверх, нажмите Фильтровать значения и выберите Пересканировать это поле.

Настройки разворачивания JSON

Чтобы разворачивание JSON работало, тип данных столбца должен быть JSON

Например, если вы загрузили CSV с JSON‑значениями, возможно, вам понадобится обновить тип данных в базе данных. Обратите внимание: в Glarus BI нельзя редактировать тип данных столбца, можно только изменить его тип поля. Поэтому даже если тип поля в Glarus BI — Поле, содержащее JSON, но тип данных в базе — не JSON, Glarus BI не предложит опцию разворачивания. В этом случае нужно изменить тип столбца в самой базе данных.

Базы данных, которые поддерживают разворачивание JSON

  • BigQuery: включено автоматически; применяется только к типам STRUCT.

!!! note "Примечание" Если ваши данные хранятся в типе данных STRUCT (cloud.google.com, англ.) в BigQuery, вы можете запрашивать вложенные поля таблицы. Это включено по умолчанию. Однако Glarus BI не будет разворачивать JSON, сохранённый в BigQuery как тип JSON. Это связано с тем, что в BigQuery вложенные поля — часть самого определения таблицы, поэтому когда Glarus BI синхронизируется с вашей базой данных BigQuery, он сможет получить метаданные о любых ваших таблицах, включая таблицы с вложенными полями. Однако запрос вложенных полей не распространяется на массивы (REPEATED (STRUCT)) в BigQuery.