Версия 39.1 от Ирина Сафонова на 15.07.2023, 00:34

Скрыть последних авторов
Ирина Сафонова 4.1 1 **Содержание**
2
3 {{toc/}}
4
Ирина Сафонова 39.1 5 = Можно ли получить доступ к нескольким таблицам одновременно? =
Ирина Сафонова 1.1 6
Ирина Сафонова 11.1 7 ----
8
Ирина Сафонова 30.1 9 **Ответ:** не совсем. Только не в режиме поиска данных или интерфейсе визуализации. Инструмент [[Лаборатории 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/]] позволяет получить доступ только к одной таблице или к представлению.
Ирина Сафонова 1.1 10
11 При работе с таблицами решение — материализация таблицы с помощью регулярного запланированного процесса пакетной обработки данных. Таблица при этом должна содержать все необходимые для анализа данных поля.
12
Ирина Сафонова 37.1 13 **Представление (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}}, а выполнение работы дважды может снизить производительность.
Ирина Сафонова 1.1 14
Ирина Сафонова 6.1 15 При использовании таблицы или представления (view) важный фактором является то, достаточно ли быстро работает БД, из которой забираются данные. Быстрая работа БД необходима для обслуживания БД в интерактивном режиме с целью обеспечения хорошего взаимодействия между СУБД и BI. Лучше всего использовать СУБД с "горячим" доступом в качестве организации горячего слоя для BI (например, [[Clickhouse>>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/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/]]).
Ирина Сафонова 1.1 16
Ирина Сафонова 34.1 17 Однако если использовать[[ Лабораторию 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/]], то такого ограничения нет. Лаборатория позволяет написать SQL-запроса для объединения нескольких таблиц, если учетная запись БД, через которую подключается Cloud BI, имеет доступ к таблицам.
Ирина Сафонова 3.1 18
Ирина Сафонова 39.1 19 = Насколько большими могут быть данные? =
Ирина Сафонова 3.1 20
Ирина Сафонова 11.1 21 ----
22
Ирина Сафонова 35.1 23 **Ответ:** очень большого размера. Cloud BI работает как тонкий клиент над БД или средством обработки данных. Основной критерий скорости работы и объема обрабатываемых данных — скорость работы БД, используемой в качестве хранилища данных и являющейся слоем данных для Cloud BI. Многие распределенные СУБД могут выполнять запросы, работающие с терабайтами данных в интерактивном режиме.
Ирина Сафонова 12.1 24
Ирина Сафонова 39.1 25 = Как добавить динамические фильтры в дашборд? =
Ирина Сафонова 12.1 26
Ирина Сафонова 13.1 27 ----
28
Ирина Сафонова 14.1 29 **Ответ:** виджет **Поле фильтра** (Filter Box) позволяет определить запрос для заполнения раскрывающихся списков, которые можно использовать для фильтрации. Чтобы создать список различных значений, нужно запустить запрос и отсортировать результат по предоставленной метрике, сортируя по убыванию.
Ирина Сафонова 12.1 30
Ирина Сафонова 38.1 31 В виджете также есть флажок **Фильтр по дате** (Date Filter), который включает возможности фильтрации по времени на панели инструментов. После установки флажка и обновления можно увидеть раскрывающийся список **от** и **до**. По умолчанию фильтрация будет применяться ко всем срезам, построенным поверх источника данных, который имеет то же имя столбца, на котором основан фильтр. Также необходимо, чтобы этот столбец был отмечен как фильтруемый на вкладке столбца редактора таблицы.
Ирина Сафонова 12.1 32
Ирина Сафонова 38.1 33 Если нет необходимости в фильтрации определенных виджетов на панели инструментов, то можно сделать редактирование дашборда и редактирование в форме поле метаданных JSON. Это ключ filter_immune_slices, который получает массив идентификаторов sliceId. На это массив никогда не должна влиять фильтрация на уровне дашборда.
Ирина Сафонова 12.1 34
Ирина Сафонова 16.1 35 {{code language="none"}}
Ирина Сафонова 15.1 36 {
37 "filter_immune_slices": [324, 65, 92],
38 "expanded_slices": {},
39 "filter_immune_slice_fields": {
Ирина Сафонова 16.1 40 "177": ["country_name", "__time_range"],
41 "32": ["__time_range"]
Ирина Сафонова 15.1 42 },
43 "timed_refresh_immune_slices": [324]
44 }
Ирина Сафонова 16.1 45 {{/code}}
Ирина Сафонова 17.1 46
Ирина Сафонова 38.1 47 В этом JSON-объекте указаны срезы 324, 65 и 92, которые не будут затронуты какой-либо фильтрацией на уровне дашборда.
Ирина Сафонова 17.1 48
Ирина Сафонова 38.1 49 Обратите внимание на ключ {{code language="none"}}filter_immune_slice_fields{{/code}}, который позволяет более конкретно определить для конкретного {{code language="none"}}slice_id{{/code}}, какие поля фильтра следует игнорировать. Ключ {{code language="none"}}time_range{{/code}} зарезервирован для работы с упомянутой выше фильтрацией временных границ. Если имя столбца является общим, то фильтр будет применен.
Ирина Сафонова 20.1 50
Ирина Сафонова 39.1 51 = Как ограничить запланированное обновление дашборда? =
Ирина Сафонова 20.1 52
Ирина Сафонова 22.1 53 ----
54
Ирина Сафонова 38.1 55 По умолчанию функция обновления дашборда по времени позволяет автоматически повторно запрашивать каждый фрагмент дашборда в соответствии с установленным расписанием. Однако иногда нет необходимости обновлять все срезы, особенно если некоторые данные перемещаются медленно или выполняются тяжелые запросы. Чтобы исключить определенные фрагменты из процесса синхронизированного обновления, добавьте ключ {{code language="none"}}timed_refresh_immune_slices{{/code}} в поле метаданных JSON дашборда:
Ирина Сафонова 20.1 56
57 {{code language="none"}}
58 {
59 "filter_immune_slices": [],
60 "expanded_slices": {},
61 "filter_immune_slice_fields": {},
62 "timed_refresh_immune_slices": [324]
63 }
64 {{/code}}
65
Ирина Сафонова 38.1 66 В приведенном выше примере, если для дашборда задано обновление по времени, каждый срез, кроме 324, будет автоматически повторно запрашиваться по расписанию. Обновление фрагмента также будет происходить в течение указанного периода. Можно отключить это смещение, установив для {{code language="none"}}stagger_refresh{{/code}} значение// false//, и изменить период сдвига, установив для {{code language="none"}}stagger_time{{/code}} значение в миллисекундах в поле метаданных JSON:
Ирина Сафонова 20.1 67
68 {{code language="none"}}
69 {
70 "stagger_refresh": false,
71 "stagger_time": 2500
72 }
73 {{/code}}
74
Ирина Сафонова 38.1 75 В этом примере весь дашборд будет обновляться сразу, если периодическое обновление включено. Время смещения 2,5 секунды **игнорируется**.
Ирина Сафонова 20.1 76
Ирина Сафонова 39.1 77 = Что будет, если схема таблицы изменится? =
Ирина Сафонова 20.1 78
Ирина Сафонова 22.1 79 ----
80
Ирина Сафонова 38.1 81 Схемы таблиц могут изменяться, и Cloud BI это отражает. В жизненном цикле дашборда довольно часто возникает необходимость добавить новое измерение или показатель. Чтобы заставить Cloud BI обнаруживать новые столбцы:
Ирина Сафонова 20.1 82
Ирина Сафонова 36.1 83 ~1. Перейдите в **Данные** -> **Наборы данных.**
84 2. Щелкните значок редактирования рядом с набором данных, схема которого изменилась, и нажмите **Синхронизировать столбцы** из источника на вкладке **Столбцы**. В результате столбцы  будут объединены.
85 3. При необходимости повторно отредактируйте таблицу, чтобы настроить вкладку **Столбцы**, установите соответствующие флажки и снова сохраните.
Ирина Сафонова 23.1 86
Ирина Сафонова 39.1 87 = Как задать стандартный фильтр на дашборде? =
Ирина Сафонова 23.1 88
89 ----
90
Ирина Сафонова 38.1 91 **Ответ:** можно применить фильтр и сохранить дашборд, пока фильтр активен.
Ирина Сафонова 26.1 92
Ирина Сафонова 32.1 93 **[[В начало>>doc:Сервис Cloud BI.WebHome]] **🡱
Ирина Сафонова 27.1 94 **[[К следующему разделу>>doc:Сервис Cloud BI.4\. Частые вопросы по сервису.03\. Визуализация.WebHome]] **🡲
95 **[[К предыдущему разделу>>doc:Сервис Cloud BI.4\. Частые вопросы по сервису.WebHome]] 🡰**