Свобода кода и управление BI
AI для данных уже здесь, и долгообещанная самообслуживаемая аналитика наконец происходит. Любой, у кого есть доступ к данным, может за день создать отчёт через диалог с агентом — и первые результаты впечатляют.
Но проблемы проявляются быстро. По умолчанию агент превращает один простой отчёт в кучу файлов: HTML, CSS, JavaScript, пару библиотек для графиков и React или Streamlit приложение. Проследить результат до источника означает идти сквозь несколько языков и файлов — это медленно для аудита и стоит агенту времени и токенов при каждом изменении.
BI-инструменты пошли противоположным путём и привязали копилотов к своим UI-приложениям. Это держит AI в управляемых рамках, но узких: агент может делать только то, что предоставляет интерфейс.
Сегодня нужно выбирать между беспорядочной свободой кода и узким управлением BI-инструмента. dbt Labs предложила третий вариант.
Развал BI-пакета
Как недавно писал основатель dbt Labs Тристан Хэнди в статье BI's Second Unbundling:
Когда я начинал в data, BI-инструменты были универсальными. Всё происходило в одном продукте: загрузка данных, трансформация, вычисления, кеширование, семантика, визуализация, управление идентификацией. BI-инструмент был стеком данных. MicroStrategy, Cognos и другие — это не просто инструменты визуализации, а интегрированные платформы данных.
Потом произошла революция современного стека данных. С 2015 по 2022 год инфраструктурные слои этого пакета выделили в отдельные специализированные инструменты. Вычисления ушли в Big 5. Загрузка — в Fivetran. Трансформация — в dbt. BI-инструменту осталось: визуализация, интерактивные аналитические интерфейсы, определение семантики (иногда!), управление доступом и веб-хостинг.
Во время этого развала диаграммы остались в интерфейсе и не без причины: для большинства людей клик быстрее написания YAML. Но всё больше графиков будут создавать не люди. По мере того как интерфейс между человеком и системой становится чатом, предпочтение меняется. AI свободно работает с кодом, SQL и Git, но неловко в чужом UI. Значит, диаграммы должны переместиться туда, где работают агенты — в код.
Диаграммы покидают BI-инструмент
Сегодня dbt Labs делает следующий шаг в развале BI: открывает исходный код dbt Charts — нового структурированного языка на YAML, который может описать полный интерактивный дашборд в одном проверяемом файле. Можно свободно общаться с агентом, и результат получит свободу кода, оставаясь легко читаемым.
В dbt Charts SQL остаётся языком для описания ЧТО видеть, а YAML оборачивает это, описывая КАК это видеть.
Авторы долго дистиллировали язык до нескольких основных расширяемых элементов: глубоких в выразительности, но лёгких в организации и чтении. YAML оборачивает больше, чем SQL. Markdown несёт прозу, а Jinja (как в самом dbt) несёт переменные и макросы.
Вот небольшой пример: одна переменная (UI-фильтр), один запрос и один график.
variables:
status:
column: main.documents.status
queries:
doc_growth: |
SELECT DATE_TRUNC('month', created_at) AS month,
SUM(COUNT(*)) OVER (ORDER BY month)
AS num_docs
FROM main.documents
WHERE {{ filter('status', status) }}
GROUP BY 1
charts:
growth:
title: Documents created, all time
type: area
query: doc_growth
x: month
y: num_docs
rows:
- growth
Этот файл — весь дашборд. CLI рендерит любой файл в статический SVG либо в HTML, PNG, PDF и даже в терминал на ноутбуке или в CI, и раздаёт папку как сайт:
dct render charts/documents.yml --format svg # или html, png, pdf, terminal
dct serve
Эти простые элементы работают глубоко: более 1100 параметров конфигурации сегодня, по шестнадцати типам диаграмм и составным диаграммам, построенным из них. И как любой хороший язык, может выражать сложные макеты и визуалы.
Параметры редко устанавливают вручную. Стили каскадируют: диаграмма наследует от дашборда, дашборд от темы, а тему можно сменить одной строкой. Дашборд может также extends: другой дашборд, так что фирменный стиль или стандартный отчёт пишутся один раз и наследуются везде. Дашборды остаются короткими, темизация — дешёвой.
Полный дашборд dbt Charts, отрендерен из одного легко читаемого YAML файла.
Глубокая интеграция с dbt
Не обязательно использовать dbt Charts с проектом dbt, но когда это делают, многое открывается. Слой диаграмм сидит прямо на слое трансформации, и чем глубже интеграция, тем легче менять оба.
В dbt Charts папка charts/ живёт рядом с models/ в одном Git репозитории, поэтому изменение модели и её диаграмм отправляется в одной ветке, проходит один CI и ломается до production.
your_dbt_project/
.git/
dbt_project.yml
models/
charts/ # новая папка в dbt репо для дашбордов
revenue.yml
Запросы достигают моделей через ref(), разрешаемый из манифеста, так что переименованная модель или пропущенный столбец ломает pull request, который его сломал, ещё до того как dbt run пересчитает warehouse:
dbt parse && dct validate charts/
Поддержка dbt Semantic Layer запланирована, так что дашборд может использовать метрику как её определяет проект вместо повторного написания SQL. Следите за dbt-labs/dbt-charts#1.
Построено для чата
Агенты могут быть довольно слепы, и лучше всего работают с плотным циклом обратной связи. dbt Charts даёт им его: строгая валидация как YAML, так и SQL, и обширный набор проверок визуализации, которые отмечают проблемы до того как кто-то видит дашборд:
$ dct render charts/revenue.yml
WARN-BAR-BAND-WIDTH-TOO-NARROW
182 bands x 2 series across 640px
Fix: roll up to a coarser grain.
WARN-TABLE-COLUMNS-OVERFLOW
Table needs 980px but only 640px is available.
Fix: drop columns or widen the slot.
Красивая, связная система отчётности
dbt Labs надеется, что dbt Charts, как и сам dbt до этого, станет открытым стандартным языком для своего слоя стека данных. Авторы спроектировали его для будущего, где люди и AI создают вместе, и хотели, чтобы он выглядел как это будущее, а не как ещё одна сетка дашбордов. Они привлекли RJ Andrews, дизайнера данных, автора и историка, чтобы спроектировать графики. Его понимание истории ремесла делает результат свежим: он заглядывает в эпоху до дашбордов, когда люди рисовали диаграммы с заботой.
Много инструментов обманывают с карточками и коробками, которые фальшивят выравнивание за счёт визуального шума и потерянного пространства. Здесь проработали расстояние, размер и макет каждой диаграммы, отдельно и рядом с соседями.
Результат — связная система диаграмм, которая выглядит выше текущего уровня BI.
dbtCharts.com: BI-платформа на основе dbt Charts
Наряду с открытым языком, сегодня запущена dbtCharts.com в открытой бета: хостируемая платформа для остального BI. С диаграммами выделенными, остаётся в основном хостинг, управление доступом и UI. По своей природе это, возможно, не может быть выделено или, по крайней мере, не должно быть, так что платформа обрабатывает это поверх открытого языка.
Платформа подключается к вашему warehouse и добавляет разговорную аналитику, визуальный редактор для финальных штрихов, историю версий и обмен с разрешениями для пользователей и групп, чтобы люди, читающие дашборд, не нуждались в логине warehouse.
И, конечно, эти диаграммы построены для чата. Платформа имеет первоклассную разговорную аналитику: как Claude или ChatGPT, но с контролируемым доступом только для чтения к вашему warehouse и встроенными навыками и инструментами опытного аналитика. Исследуйте через диалог с диаграммами, и в любой момент вы можете щёлкнуть для точной настройки и сохранения дашборда.
Одна доска. Каждый способ работать. Потому что это построено на открытом языке, каждое изменение, из чата, визуального редактора или кода, приземляется в том же YAML в вашем Git репо. Ничего не заперто: тот же дашборд работает на вашем ноутбуке, в CI и на платформе, и команды могут самообслужить себя, агента в руке, без создания второго, скрытого стека данных.
Попробуйте бету
Язык dbt Charts открыт под лицензией Apache 2.0, и можно писать, рендерить и раздавать дашборды локально без создания аккаунта. Установите сами или дайте одну строку вашему агенту кода:
Терминал
uv tool install dbt-charts
Claude / AI
Make charts of this with dbt Charts. Start with: uv tool install dbt-charts && dct skills intro
- Код: github.com/dbt-labs/dbt-charts
- Документация: docs.dbtCharts.com
- Хостируемый BI: dbtCharts.com
- Сообщество: #dbt-charts в dbt Community Slack
dbt Charts находится в pre-1.0 и ещё меняется. Когда грамматика меняется, дашборды мигрируют при разборе, так что дашборды, написанные сегодня, продолжают рендериться. Попробуйте, скажите нам, что не хватает, присоединитесь к обсуждению в #dbt-charts на Slack и помогите построить слой диаграмм, которого ждала открытая инфраструктура данных.



