Зачем: дать менти два самостоятельных задания по BI после ступени 2. Что: обновлено ТЗ дашборда, добавлен опыт с объектом на одной ноде, уточнены программа и индекс. Формулировки обращены к учащемуся. Проверка: локальные ссылки и git diff --check прошли. На ClickHouse 26.3.17.56 воспроизведены ошибка чтения со второй ноды и исправление; учебный объект удален. Полный проход через интерфейс Superset не выполнялся.
71 lines
4.2 KiB
Markdown
71 lines
4.2 KiB
Markdown
# В DBeaver работает, в Superset нет
|
|
|
|
**Чему учит:** найти причину, по которой один клиент читает объект
|
|
хранилища, а другой его не видит.
|
|
|
|
Факультатив доступен после [ступени 2](../2-1-superset-chart.md).
|
|
Свой дашборд для опыта не нужен. Используйте готовую витрину стенда
|
|
`dm.daily_traffic_v`.
|
|
|
|
## Подготовьте опыт
|
|
|
|
В DBeaver подключитесь к первой ноде пользователем `etl`, как описано
|
|
в разделе [«Как применить свой DDL»](../README.md#как-применить-свой-ddl).
|
|
Для опыта создайте отдельное представление:
|
|
|
|
```sql
|
|
CREATE VIEW dm.bi_node_probe_v AS
|
|
SELECT * FROM dm.daily_traffic_v;
|
|
```
|
|
|
|
Запрос выполнится успешно. Теперь проверьте, откуда можно прочитать
|
|
созданное представление. Начните с того же подключения:
|
|
|
|
```sql
|
|
SELECT count() FROM dm.bi_node_probe_v;
|
|
```
|
|
|
|
Повторите запрос в SQL Lab Superset, выбрав подключение `ClickHouse`.
|
|
Сохраните текст ошибки.
|
|
|
|
## Найдите причину
|
|
|
|
Выясните, к каким серверам обращаются DBeaver и Superset. Адреса подключения
|
|
показывают настройки клиентов, а имя ответившего сервера можно спросить
|
|
запросом `SELECT hostName()`.
|
|
|
|
Проверьте наличие `dm.bi_node_probe_v` на обеих нодах. Для второй ноды
|
|
заведите подключение DBeaver с портом из
|
|
[README](../../../README.md#подключиться-из-dbeaver). Запишите, где объект
|
|
есть, и объясните, почему успешного создания в первом подключении оказалось
|
|
недостаточно.
|
|
|
|
Исправьте DDL так, чтобы представление появилось на обеих нодах. Подключение
|
|
Superset должно остаться прежним. Сохраните исправленный DDL и повторите
|
|
исходный запрос в обоих клиентах.
|
|
|
|
Если застряли, прочитайте раздел «Устройство зоны» в
|
|
[справочнике Superset](../../architecture/superset.md#устройство-зоны) и
|
|
[описание распределенного DDL ClickHouse](https://clickhouse.com/docs/reference/statements/distributed-ddl).
|
|
|
|
## Как проверить себя
|
|
|
|
В обоих клиентах запрос к вашему представлению должен вернуть столько же
|
|
строк, сколько `SELECT count() FROM dm.daily_traffic_v`. Сравнивайте результаты
|
|
при завершенном прогоне конвейера, пока мир не продвигается.
|
|
|
|
Объясните причину ошибки через три факта: куда пришел DDL, куда пришел
|
|
запрос Superset и на каких нодах существовало представление.
|
|
|
|
После опыта удалите только `dm.bi_node_probe_v` на обеих нодах. Не включайте
|
|
его в постоянный DDL домашних витрин: это временный объект расследования.
|
|
|
|
## Что должно получиться
|
|
|
|
- [ ] у вас сохранены успешный запрос из DBeaver и ошибка из SQL Lab;
|
|
- [ ] вы можете объяснить, к каким серверам подключены клиенты, где было
|
|
создано представление и почему Superset его не видел;
|
|
- [ ] у вас есть исправленный DDL; оба клиента возвращают столько же строк,
|
|
сколько исходная витрина;
|
|
- [ ] после опыта вы удалили учебное представление с обеих нод.
|