Исходный код вики Данные, таблицы и дашборды
Версия 1.1 от Ирина Сафонова на 01.03.2024, 01:44
Скрыть последних авторов
| author | version | line-number | content |
|---|---|---|---|
| |
1.1 | 1 | {{box cssClass="floatinginfobox" title="**Содержание**"}} |
| 2 | {{toc/}} | ||
| 3 | {{/box}} | ||
| 4 | |||
| 5 | (% data-xwiki-non-generated-content="java.util.List" %) | ||
| 6 | ((( | ||
| 7 | = Можно ли получить доступ к нескольким таблицам одновременно? = | ||
| 8 | ))) | ||
| 9 | |||
| 10 | ---- | ||
| 11 | |||
| 12 | **Ответ:** можно, но только не в режиме поиска данных или интерфейсе визуализации. [[Лаборатория SQL>>https://wiki.dfcloud.ru/bin/view/Big%20Data/%D0%A1%D0%B5%D1%80%D0%B2%D0%B8%D1%81%20Cloud%20BI/2.%20%D0%98%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%86%D0%B8%D1%8F/02.%20%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE%20%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0/I.%20SQL%20%20-%D1%80%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%BE%D1%80/]] позволяет получить доступ только к одной таблице или представлению. | ||
| 13 | |||
| 14 | Материализуйте таблицу с помощью регулярного запланированного процесса пакетной обработки данных. Таблица при этом должна содержать все необходимые для анализа данных поля. | ||
| 15 | |||
| 16 | **Представление (View)** — простой логический уровень, абстрагирующий несколько SQL-запросов виртуальной таблицей. Представление объединяет несколько таблиц в одну единую и преобразовывает данные с использованием произвольных [[SQL-запросов>>https://wiki.dfcloud.ru/bin/view/%D0%A1%D0%B5%D1%80%D0%B2%D0%B8%D1%81%20Cloud%20BI/2.%20%D0%98%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%86%D0%B8%D1%8F/02.%20%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE%20%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0/I.%20SQL%20%20-%D1%80%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%BE%D1%80/I1.%20%D0%9B%D0%B0%D0%B1%D0%BE%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B8%D1%8F%20SQL/]]. Ограничением является производительность базы данных (БД), поскольку сервис эффективно запускает запрос поверх запроса к представлению. Хорошая практика в этом случае — ограничение соединения основной большой таблицы только к одной или к нескольким небольшим таблицам. Старайтесь избегать оператор {{code language="none"}}GROUP BY{{/code}} , поскольку **Cloud BI** выполняет свою реализацию запроса {{code language="none"}}GROUP BY{{/code}}. Двукратное выполнение запроса снижает производительность. | ||
| 17 | |||
| 18 | При использовании таблицы или представления важным фактором является то, достаточно ли быстро работает БД, из которой забираются данные. Быстрая работа необходима для обслуживания БД в интерактивном режиме для обеспечения взаимодействия между СУБД и **Cloud BI**. | ||
| 19 | |||
| 20 | {{info}} | ||
| 21 | Используйте СУБД с "горячим" доступом в качестве организации "горячего" слоя для **Cloud BI**. Пример СУБД — [[Clickhouse>>https://wiki.dfcloud.ru/bin/view/Big%20Data/%D0%A1%D0%B5%D1%80%D0%B2%D0%B8%D1%81%20Cloud%20BI/2.%20%D0%98%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%86%D0%B8%D1%8F/02.%20%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE%20%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0/A.%20%D0%A1%D0%BE%D0%B5%D0%B4%D0%B8%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5%20%D1%81%20%D0%B1%D0%B0%D0%B7%D0%B0%D0%BC%D0%B8%20%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85/ClickHouse/]]. | ||
| 22 | {{/info}} | ||
| 23 | |||
| 24 | При использовании Лаборатории SQL такого ограничения нет. Вы можете [[написать SQL-запрос>>https://wiki.dfcloud.ru/bin/view/Big%20Data/%D0%A1%D0%B5%D1%80%D0%B2%D0%B8%D1%81%20Cloud%20BI/2.%20%D0%98%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%86%D0%B8%D1%8F/02.%20%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE%20%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0/I.%20SQL%20%20-%D1%80%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%BE%D1%80/I1.%20%D0%9B%D0%B0%D0%B1%D0%BE%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B8%D1%8F%20SQL/]] для объединения нескольких таблиц. Функционал объединения работает, если учетная запись БД, через которую подключается **Cloud BI**, получает доступ к таблицам. | ||
| 25 | |||
| 26 | = Насколько большими могут быть данные? = | ||
| 27 | |||
| 28 | ---- | ||
| 29 | |||
| 30 | **Ответ:** большого размера. **Cloud BI** работает как тонкий клиент над БД или средством обработки данных. Основной критерий скорости работы и объема обрабатываемых данных — скорость работы БД, используемой в качестве хранилища данных и являющейся слоем данных для **Cloud BI**. Многие распределенные СУБД выполняют запросы, работающие с терабайтами данных в интерактивном режиме. | ||
| 31 | |||
| 32 | = Как добавить динамические фильтры в дашборд? = | ||
| 33 | |||
| 34 | ---- | ||
| 35 | |||
| 36 | **Ответ:** виджет **Filter Box** определяет запрос для заполнения раскрывающихся списков, которые можно использовать для фильтрации. Чтобы создать список различных значений, запустите запрос и отсортируйте результат по убыванию. | ||
| 37 | |||
| 38 | Флажок **Date Filter **включает фильтрацию по времени на панели инструментов. После установки флажка и обновления ознакомьтесь с раскрывающимся списком **от** и **до**. По умолчанию фильтрация применяется ко всем срезам, построенным поверх [[источника данных>>https://wiki.dfcloud.ru/bin/view/Big%20Data/%D0%A1%D0%B5%D1%80%D0%B2%D0%B8%D1%81%20Cloud%20BI/2.%20%D0%98%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%86%D0%B8%D1%8F/02.%20%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE%20%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%BE%D1%80%D0%B0/K.%20%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5%20%D0%B8%20%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0%20%D0%B8%D1%81%D1%82%D0%BE%D1%87%D0%BD%D0%B8%D0%BA%D0%BE%D0%B2%20%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85/]]. Источник имеет то же имя столбца, на котором основан фильтр. Также необходимо, чтобы этот столбец был отмечен как фильтруемый на вкладке столбца редактора таблицы. | ||
| 39 | |||
| 40 | Если нет необходимости в фильтрации определенных виджетов на панели инструментов, отредактируйте дашборд в поле метаданных JSON. Это ключ{{code language="none"}}filter_immune_slices{{/code}}, который получает массив идентификаторов {{code language="none"}}sliceId{{/code}}. На это массив не влияет фильтрация на уровне [[дашборда>>https://wiki.dfcloud.ru/bin/view/Big%20Data/%D0%A1%D0%B5%D1%80%D0%B2%D0%B8%D1%81%20Cloud%20BI/2.%20%D0%98%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%86%D0%B8%D1%8F/%D0%98%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%86%D0%B8%D1%8F%20%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F/B.%20%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5%20%D0%B4%D0%B8%D0%B0%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%20%D0%B8%20%D0%B4%D0%B0%D1%88%D0%B1%D0%BE%D0%B0%D1%80%D0%B4%D0%BE%D0%B2/%D0%A1%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5%20%D0%B4%D0%B8%D0%B0%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%20%D0%B8%20%D0%B4%D0%B0%D1%88%D0%B1%D0%BE%D0%B0%D1%80%D0%B4%D0%BE%D0%B2/]]. | ||
| 41 | |||
| 42 | {{code language="none"}} | ||
| 43 | { | ||
| 44 | "filter_immune_slices": [324, 65, 92], | ||
| 45 | "expanded_slices": {}, | ||
| 46 | "filter_immune_slice_fields": { | ||
| 47 | "177": ["country_name", "__time_range"], | ||
| 48 | "32": ["__time_range"] | ||
| 49 | }, | ||
| 50 | "timed_refresh_immune_slices": [324] | ||
| 51 | } | ||
| 52 | {{/code}} | ||
| 53 | |||
| 54 | JSON-объект из примера содержит срезы 324, 65 и 92, которые не затрагиваются фильтрацией на уровне дашборда. | ||
| 55 | |||
| 56 | Обратите внимание на ключ {{code language="none"}}filter_immune_slice_fields{{/code}}. Он определяет, какие поля фильтра следует игнорировать для конкретного {{code language="none"}}slice_id{{/code}}. Ключ {{code language="none"}}time_range{{/code}} зарезервирован для работы с упомянутой выше фильтрацией временных границ. Если имя столбца является общим — фильтр применяется. | ||
| 57 | |||
| 58 | = Как ограничить запланированное обновление дашборда? = | ||
| 59 | |||
| 60 | ---- | ||
| 61 | |||
| 62 | **Ответ:** по умолчанию функция обновления дашборда по времени автоматически повторно запрашивает каждый фрагмент дашборда в соответствии с установленным расписанием. Однако иногда нет необходимости обновлять все срезы, особенно если некоторые данные перемещаются медленно или выполняются тяжелые запросы. Чтобы исключить определенные фрагменты из процесса синхронизированного обновления, добавьте ключ {{code language="none"}}timed_refresh_immune_slices{{/code}} в поле метаданных JSON дашборда: | ||
| 63 | |||
| 64 | {{code language="none"}} | ||
| 65 | { | ||
| 66 | "filter_immune_slices": [], | ||
| 67 | "expanded_slices": {}, | ||
| 68 | "filter_immune_slice_fields": {}, | ||
| 69 | "timed_refresh_immune_slices": [324] | ||
| 70 | } | ||
| 71 | {{/code}} | ||
| 72 | |||
| 73 | В приведенном выше примере, если для дашборда задано обновление по времени, каждый срез, кроме 324, автоматически повторно запрашивается по расписанию. Обновление фрагмента происходит в течение указанного периода. При необходимости отключите это смещение, установив для {{code language="none"}}stagger_refresh{{/code}} значение// false//, и измените период сдвига, указав для {{code language="none"}}stagger_time{{/code}} значение в миллисекундах в поле метаданных JSON: | ||
| 74 | |||
| 75 | {{code language="none"}} | ||
| 76 | { | ||
| 77 | "stagger_refresh": false, | ||
| 78 | "stagger_time": 2500 | ||
| 79 | } | ||
| 80 | {{/code}} | ||
| 81 | |||
| 82 | В примере дашборд обновляется сразу, если периодическое обновление включено. | ||
| 83 | |||
| 84 | {{warning}} | ||
| 85 | Время смещения 2,5 секунды **игнорируется**. | ||
| 86 | {{/warning}} | ||
| 87 | |||
| 88 | = Что произойдет при изменении схемы таблиц? = | ||
| 89 | |||
| 90 | ---- | ||
| 91 | |||
| 92 | **Ответ:** **Cloud BI** отражает изменение схем таблиц. В жизненном цикле дашборда периодически необходимо добавить новое измерение или показатель. Для настройки обнаружения новых столбцов: | ||
| 93 | |||
| 94 | ~1. Перейдите в **Данные** -> **Наборы данных**. | ||
| 95 | |||
| 96 | 2. Щелкните значок редактирования рядом с набором данных, схема которого изменилась, и нажмите **Синхронизировать столбцы** из источника на вкладке **Столбцы**. В результате столбцы объединяются. | ||
| 97 | |||
| 98 | 3. При необходимости повторно отредактируйте таблицу, установите соответствующие флажки и снова сохраните данные. | ||
| 99 | |||
| 100 | = Как задать стандартный фильтр на дашборде? = | ||
| 101 | |||
| 102 | ---- | ||
| 103 | |||
| 104 | **Ответ:** можно применить фильтр и сохранить дашборд, пока фильтр активен. |