Исходный код вики Данные, таблицы и дашборды
Версия 1.1 от Ирина Сафонова на 01.03.2024, 01:44
Последние авторы
author | version | line-number | content |
---|---|---|---|
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 | **Ответ:** можно применить фильтр и сохранить дашборд, пока фильтр активен. |