Исходный код вики I01. Данные, таблицы и дашборды
Редактировал(а) Ирина Сафонова 22.03.2024, 15:07
Скрыть последних авторов
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 | |||
![]() |
2.1 | 12 | **Ответ:** можно, но только не в режиме поиска данных или интерфейсе визуализации. Лаборатория SQL позволяет получить доступ только к одной таблице или представлению. |
![]() |
1.1 | 13 | |
14 | Материализуйте таблицу с помощью регулярного запланированного процесса пакетной обработки данных. Таблица при этом должна содержать все необходимые для анализа данных поля. | ||
15 | |||
![]() |
2.1 | 16 | **Представление (View)** — простой логический уровень, абстрагирующий несколько SQL-запросов виртуальной таблицей. Представление объединяет несколько таблиц в одну единую и преобразовывает данные с использованием произвольных SQL-запросов. Ограничением является производительность базы данных (БД), поскольку сервис эффективно запускает запрос поверх запроса к представлению. Хорошая практика в этом случае — ограничение соединения основной большой таблицы только к одной или к нескольким небольшим таблицам. Старайтесь избегать оператор {{code language="none"}}GROUP BY{{/code}} , поскольку **Cloud BI** выполняет свою реализацию запроса {{code language="none"}}GROUP BY{{/code}}. Двукратное выполнение запроса снижает производительность. |
![]() |
1.1 | 17 | |
18 | При использовании таблицы или представления важным фактором является то, достаточно ли быстро работает БД, из которой забираются данные. Быстрая работа необходима для обслуживания БД в интерактивном режиме для обеспечения взаимодействия между СУБД и **Cloud BI**. | ||
19 | |||
20 | {{info}} | ||
![]() |
2.1 | 21 | Используйте СУБД с "горячим" доступом в качестве организации "горячего" слоя для **Cloud BI**. Пример СУБД — Clickhouse. |
![]() |
1.1 | 22 | {{/info}} |
23 | |||
![]() |
2.1 | 24 | При использовании Лаборатории SQL такого ограничения нет. Вы можете написать SQL-запрос для объединения нескольких таблиц. Функционал объединения работает, если учетная запись БД, через которую подключается **Cloud BI**, получает доступ к таблицам. |
![]() |
1.1 | 25 | |
26 | = Насколько большими могут быть данные? = | ||
27 | |||
28 | ---- | ||
29 | |||
30 | **Ответ:** большого размера. **Cloud BI** работает как тонкий клиент над БД или средством обработки данных. Основной критерий скорости работы и объема обрабатываемых данных — скорость работы БД, используемой в качестве хранилища данных и являющейся слоем данных для **Cloud BI**. Многие распределенные СУБД выполняют запросы, работающие с терабайтами данных в интерактивном режиме. | ||
31 | |||
32 | = Как добавить динамические фильтры в дашборд? = | ||
33 | |||
34 | ---- | ||
35 | |||
36 | **Ответ:** виджет **Filter Box** определяет запрос для заполнения раскрывающихся списков, которые можно использовать для фильтрации. Чтобы создать список различных значений, запустите запрос и отсортируйте результат по убыванию. | ||
37 | |||
![]() |
2.1 | 38 | Флажок **Date Filter **включает фильтрацию по времени на панели инструментов. После установки флажка и обновления ознакомьтесь с раскрывающимся списком **от** и **до**. По умолчанию фильтрация применяется ко всем срезам, построенным поверх датасета. Источник имеет то же имя столбца, на котором основан фильтр. Также необходимо, чтобы этот столбец был отмечен как фильтруемый на вкладке столбца редактора таблицы. |
![]() |
1.1 | 39 | |
![]() |
2.1 | 40 | Если нет необходимости в фильтрации определенных виджетов на панели инструментов, отредактируйте дашборд в поле метаданных JSON. Это ключ{{code language="none"}}filter_immune_slices{{/code}}, который получает массив идентификаторов {{code language="none"}}sliceId{{/code}}. На это массив не влияет фильтрация на уровне дашборда. |
![]() |
1.1 | 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 | |||
![]() |
3.1 | 96 | 2. Щелкните значок редактирования рядом с набором данных, схема которого изменилась, и нажмите **Синхронизировать столбцы** из источника на вкладке **Столбцы**. В результате столбцы объединяются. |
![]() |
1.1 | 97 | |
98 | 3. При необходимости повторно отредактируйте таблицу, установите соответствующие флажки и снова сохраните данные. | ||
99 | |||
100 | = Как задать стандартный фильтр на дашборде? = | ||
101 | |||
102 | ---- | ||
103 | |||
104 | **Ответ:** можно применить фильтр и сохранить дашборд, пока фильтр активен. | ||
![]() |
5.1 | 105 | |
106 | **[[В начало>>doc:]] **🡱 | ||
107 | **[[К следующему разделу>>doc:Big Data.Cloud BI_new.8\. Частые вопросы по сервису.Визуализация.WebHome]] **🡲 | ||
108 | **[[К предыдущему разделу>>doc:Big Data.Cloud BI_new.8\. Частые вопросы по сервису.WebHome]] 🡰** |