01. Данные, таблицы и дашборды

Версия 38.1 от Ирина Сафонова на 13.07.2023, 13:26
Предупреждение: Из соображений безопасности документ отображается в ограниченном режиме, поскольку это не текущая версия. Из-за этого могут быть расхождения и ошибки.

Содержание

Можно ли получить доступ к нескольким таблицам одновременно?


Ответ: не совсем. Только не в режиме поиска данных или интерфейсе визуализации. Инструмент Лаборатории SQL позволяет получить доступ только к одной таблице или к представлению. 

При работе с таблицами решение — материализация таблицы  с помощью регулярного запланированного процесса пакетной обработки данных. Таблица при этом должна содержать все необходимые для анализа данных поля.

Представление (View) — это простой логический уровень, абстрагирующий несколько SQL-запросов виртуальной таблицей. Это позволяет объединять несколько таблиц в одну единую и преобразовывать данные с использованием произвольных SQL-запросов. Ограничением является производительность базы данных (БД), поскольку сервис эффективно запускает запрос поверх запроса к представлению. Хорошая практика в этом случае — ограничение соединения основной большой таблицы только к одной или к нескольким небольшим таблицам. В этом случае рекомендуется избегать оператора GROUP BY (где это возможно), поскольку Cloud BI будет выполнять свою собственную реализацию запроса GROUP BY, а выполнение работы дважды может снизить производительность.

При использовании таблицы или представления (view) важный фактором является то, достаточно ли быстро работает БД, из которой забираются данные. Быстрая работа БД необходима для обслуживания БД в интерактивном режиме с целью обеспечения хорошего взаимодействия между СУБД и BI. Лучше всего использовать СУБД с "горячим" доступом в качестве организации горячего слоя для BI (например, Clickhouse).

Однако если использовать Лабораторию SQL, то такого ограничения нет. Лаборатория позволяет написать SQL-запроса для объединения нескольких таблиц, если учетная запись БД, через которую подключается Cloud BI, имеет доступ к таблицам.

Насколько большими могут быть данные?


Ответ: очень большого размера. Cloud BI работает как тонкий клиент над БД или средством обработки данных. Основной критерий скорости работы и объема обрабатываемых данных — скорость работы БД,  используемой в качестве хранилища данных и являющейся слоем данных для Cloud BI. Многие распределенные СУБД могут выполнять запросы, работающие с терабайтами данных в интерактивном режиме.

Как добавить динамические фильтры в дашборд?


Ответ: виджет Поле фильтра (Filter Box) позволяет определить запрос для заполнения раскрывающихся списков, которые можно использовать для фильтрации. Чтобы создать список различных значений, нужно запустить запрос и отсортировать результат по предоставленной метрике, сортируя по убыванию.

В виджете также есть флажок Фильтр по дате (Date Filter), который включает возможности фильтрации по времени на панели инструментов. После установки флажка и обновления можно увидеть раскрывающийся список от и до. По умолчанию фильтрация будет применяться ко всем срезам, построенным поверх источника данных, который имеет то же имя столбца, на котором основан фильтр. Также необходимо, чтобы этот столбец был отмечен как фильтруемый на вкладке столбца редактора таблицы.

Если нет необходимости в фильтрации определенных виджетов на панели инструментов, то можно сделать редактирование дашборда и редактирование в форме поле метаданных JSON. Это ключ filter_immune_slices, который получает массив идентификаторов sliceId. На это массив никогда не должна влиять фильтрация на уровне дашборда.

{
    "filter_immune_slices": [324, 65, 92],
    "expanded_slices": {},
    "filter_immune_slice_fields": {
        "177": ["country_name", "__time_range"],
        "32": ["__time_range"]
    },
    "timed_refresh_immune_slices": [324]
}

В этом JSON-объекте указаны срезы 324, 65 и 92, которые не будут затронуты какой-либо фильтрацией на уровне дашборда.

Обратите внимание на ключ filter_immune_slice_fields, который позволяет более конкретно определить для конкретного slice_id, какие поля фильтра следует игнорировать. Ключ time_range зарезервирован для работы с упомянутой выше фильтрацией временных границ. Если имя столбца является общим, то фильтр будет применен.

Как ограничить запланированное обновление дашборда?


По умолчанию функция обновления дашборда по времени позволяет автоматически повторно запрашивать каждый фрагмент дашборда в соответствии с установленным расписанием. Однако иногда нет необходимости обновлять все срезы, особенно если некоторые данные перемещаются медленно или выполняются тяжелые запросы. Чтобы исключить определенные фрагменты из процесса синхронизированного обновления, добавьте ключ timed_refresh_immune_slices в поле метаданных JSON дашборда:

{
    "filter_immune_slices": [],
    "expanded_slices": {},
    "filter_immune_slice_fields": {},
    "timed_refresh_immune_slices": [324]
}

В приведенном выше примере, если для дашборда задано обновление по времени, каждый срез, кроме 324, будет автоматически повторно запрашиваться по расписанию. Обновление фрагмента также будет происходить в течение указанного периода. Можно отключить это смещение, установив для stagger_refresh значение false, и изменить период сдвига, установив для stagger_time значение в миллисекундах в поле метаданных JSON:

{
    "stagger_refresh": false,
    "stagger_time": 2500
}

В этом примере весь дашборд будет обновляться сразу, если периодическое обновление включено. Время смещения 2,5 секунды игнорируется.

Что будет, если схема таблицы изменится?


Схемы таблиц могут изменяться, и Cloud BI это отражает. В жизненном цикле дашборда довольно часто возникает необходимость добавить новое измерение или показатель. Чтобы заставить Cloud BI обнаруживать новые столбцы:

1. Перейдите в Данные -> Наборы данных.
2. Щелкните значок редактирования рядом с набором данных, схема которого изменилась, и нажмите Синхронизировать столбцы из источника на вкладке Столбцы. В результате столбцы  будут объединены.
3. При необходимости повторно отредактируйте таблицу, чтобы настроить вкладку Столбцы, установите соответствующие флажки и снова сохраните.

Как задать стандартный фильтр на дашборде?


Ответ: можно применить фильтр и сохранить дашборд, пока фильтр активен.

В начало 🡱
К следующему разделу 🡲
К предыдущему разделу 🡰