Веб-сайт • Документация • Документация моделей Cube.js • Docker Hub • Сообщество в Slack
Synmetrix (ранее MLCraft) - это открытая платформа для инженерии данных и семантический слой для централизованного управления метриками. Она предоставляет полный фреймворк для моделирования, интеграции, трансформации, агрегации и распределения данных метрик в больших масштабах.
- Моделирование данных и трансформации: Гибко определяйте метрики и измерения с помощью SQL и моделей данных Cube. Применяйте трансформации и агрегации.
- Семантический слой: Объедините метрики из различных источников в единую, управляемую модель данных. Устраните различия в определениях метрик.
- Планирование отчетов и оповещений: Мониторьте метрики и получайте уведомления о изменениях через настраиваемые отчеты и оповещения.
- Версионирование: Отслеживайте изменения схемы данных со временем для прозрачности и возможности аудита.
- Контроль доступа на основе ролей: Управляйте разрешениями для доступа к моделям данных и метрикам.
- Исследование данных: Анализируйте метрики через пользовательский интерфейс или интегрируйте с любым инструментом BI через SQL API.
- Кэширование: Оптимизируйте производительность с помощью предварительных агрегаций и кэширования от Cube.
- Команды: Сотрудничайте в моделировании метрик по всей вашей организации.
Synmetrix использует Cube (Cube.js) для реализации гибких моделей данных, которые могут объединять метрики из различных хранилищ, баз данных, API и т. д. Этот единый семантический слой устраняет различия в определениях и расчетах, обеспечивая единственный источник истины.
Модель данных метрик затем может быть распространена вниз по потоку любому потребителю через SQL API, позволяя интеграцию в инструменты BI, отчетность, панели инструментов, науку о данных и т. д.
Объединив лучшие практики из инженерии данных, такие как кэширование, оркестровка и трансформация, с возможностями самообслуживания аналитики, Synmetrix ускоряет рабочие процессы, основанные на данных, от определения метрик до их использования.
-
Демократизация данных: Synmetrix делает данные доступными для неспециалистов, позволяя каждому в организации легко принимать решения, основанные на данных.
-
Бизнес-аналитика (BI) и отчетность: Интеграция Synmetrix с любым инструментом BI для продвинутой отчетности и аналитики, улучшая визуализацию данных и инсайты.
-
Встроенная аналитика: Используйте API Synmetrix для интеграции аналитики непосредственно в приложения, обеспечивая пользователей данными в реальном времени в рамках их рабочих процессов.
-
Семантический слой для LLM: Повышение точности LLM в обработке данных и формулировании запросов с помощью семантического слоя Synmetrix, улучшая взаимодействие с данными и точность.
Перед началом работы убедитесь, что установлено следующее программное обеспечение:
Репозиторий mlcraft-io/mlcraft/install-manifests содержит все необходимые манифесты для установки Synmetrix. Вы можете скачать файл docker-compose из этого репозитория:
Выполните следующую команду в новой директории:
wget https://raw.githubusercontent.com/mlcraft-io/mlcraft/main/install-manifests/docker-compose/docker-compose.yml
Или используйте curl
:
curl https://raw.githubusercontent.com/mlcraft-io/mlcraft/main/install-manifests/docker-compose/docker-compose.yml -o docker-compose.yml
ПРИМЕЧАНИЕ: Убедитесь, что вы проверили переменные окружения в файле docker-compose.yml и при необходимости измените их.
Выполните следующую команду для запуска Synmetrix вместе с базой данных Postgres для хранения данных:
docker-compose pull stack && docker-compose up -d
Проверьте, работают ли контейнеры:
docker ps
Вывод:
CONTAINER ID IMAGE ... CREATED STATUS PORTS ...
c8f342d086f3 synmetrix/stack ... 1m ago Up 1m 80->8888/tcp ...
30ea14ddaa5e postgres:12 ... 1m ago Up 1m 5432/tcp
Установка всех зависимостей займет примерно 5-7 минут. Подождите, пока не увидите сообщение Synmetrix Stack is ready
. Вы можете просмотреть логи с помощью команды docker-compose logs -f
, чтобы убедиться, что процесс завершен.
Сначала рекомендуется установить Rosetta 2 на ваш Mac. Это позволит Docker запускать контейнеры ARM64v8. Начиная с версии Docker 4.25 поддерживается нативный запуск контейнеров ARM64v8, но некоторые пользователи все еще сталкиваются с проблемами без установленного Rosetta.
Для ARM64v8 Cubestore требует определенной версии. Обновите версию Cubestore в файле docker-compose, добавив суффикс -arm64v8
. Например, используйте v0.35.33-arm64v8
(смотрите теги Cubestore на Docker Hub для последней версии).
Чтобы запустить файл docker-compose для ARM64v8, используйте следующую команду:
docker-compose pull stack && CUBESTORE_VERSION=v0.35.33-arm64v8 docker-compose up -d
Видеоруководство (MacOS, процессор M3 Max):
- Вы можете получить доступ к Synmetrix по адресу http://localhost/
- Точка доступа GraphQL находится по адресу http://localhost/v1/graphql
- Консоль администратора (Hasura Console) доступна по адресу http://localhost/console
- Swagger API Cube доступен по адресу http://localhost:4000/docs
-
Доступ к административной консоли: Обязательно проверьте
HASURA_GRAPHQL_ADMIN_SECRET
в файле docker-compose. Это необходимо для доступа к административной консоли. Значение по умолчанию —adminsecret
. Не забудьте изменить это значение в производственной среде. -
Переменные окружения: Настройте все необходимые переменные окружения. Synmetrix будет работать с значениями по умолчанию, но для полной функциональности добавьте ключи SMTP и S3.
-
Предзагруженные начальные данные: Проект оснащен предзагруженными начальными данными. Используйте указанные ниже учетные данные для входа:
- Электронная почта:
demo@synmetrix.org
- Пароль:
demodemo
Этот аккаунт предварительно настроен с двумя демонстрационными источниками данных и доступом к их SQL API. Для операций с SQL вы можете использовать следующие учетные данные с любым PostgreSQL-клиентом, например, DBeaver или TablePlus:
Хост Порт База данных Пользователь Пароль localhost 15432 db demo_pg_user demo_pg_pass localhost 15432 db demo_clickhouse_user demo_clickhouse_pass - Электронная почта:
Демо: app.synmetrix.org
- Логин:
demo@synmetrix.org
- Пароль:
demodemo
Тип базы данных | Хост | Порт | База данных | Пользователь | Пароль | SSL |
---|---|---|---|---|---|---|
ClickHouse | gh-api.clickhouse.tech | 443 | default | play | без пароля | true |
PostgreSQL | demo-db-examples.cube.dev | 5432 | ecom | cube | 12345 | false |
Synmetrix использует Cube для гибкого моделирования данных и трансформаций.
Cube реализует многоступенчатую архитектуру моделирования данных SQL:
- Исходные данные находятся в исходной базе данных, такой как Postgres, MySQL и т. д.
- Исходные данные моделируются в повторно используемые хранилища данных с помощью файлов моделей данных Cube. Эти модели позволяют определять метрики, измерения, гранулярности и отношения.
- Модели действуют как абстракционный слой между исходными данными и кодом приложения.
- Cube затем генерирует оптимизированные аналитические SQL-запросы против исходных данных на основе модели.
- Распределенный кэш Cube Store оптимизирует производительность запросов, кэшируя результаты запросов.
Эта архитектура моделирования позволяет легко создавать быстрые и сложные аналитические запросы с Cube, которые оптимизированы для работы с большими наборами данных.
Единая модель данных может объединять метрики из различных баз данных и систем, обеспечивая консистентный семантический слой для конечных пользователей.
Для производственных рабочих нагрузок Synmetrix использует Cube Store в качестве кэширующего слоя и слоя выполнения запросов.
Cube Store - это специализированная база данных для операционной аналитики, оптимизированная для быстрых агрегаций и данных временных рядов. Она обеспечивает:
- Распределенные запросы для масштабируемости
- Продвинутое кэширование для быстрых запросов
- Колоночное хранение для производительности аналитики
- Интеграцию с Cube для моделирования
Используя Cube Store и Cube вместе, Synmetrix получает отличную производительность аналитики и гибкость в моделировании метрик.
Репозиторий | Описание |
---|---|
mlcraft-io/mlcraft | Монорепозиторий Synmetrix |
mlcraft-io/client-v2 | Клиент Synmetrix |
mlcraft-io/docs | Документация Synmetrix |
mlcraft-io/examples | Примеры Synmetrix |
Для общей помощи в использовании Synmetrix, пожалуйста, обратитесь к официальной документации Synmetrix. Для дополнительной помощи вы можете использовать один из этих каналов, чтобы задать вопрос:
- Slack / Для живого обсуждения с сообществом и командой Synmetrix
- GitHub / Отчеты об ошибках, вклад в проект
Ознакомьтесь с нашей дорожной картой, чтобы узнать, над чем мы в настоящее время работаем, и что мы планируем на следующие недели, месяцы и годы.
Основная часть Synmetrix доступна под лицензией Apache 2.0 (Apache-2.0).
Все остальные материалы доступны под лицензией MIT.
Компонент | Требование |
---|---|
Процессор (CPU) | 3.2 ГГц или выше, современный процессор с поддержкой многопоточности и виртуализации. |
Оперативная память (RAM) | 8 ГБ или более для выполнения вычислительных задач и обработки данных. |
Дисковое пространство | Как минимум 30 ГБ свободного места для установки программного обеспечения и хранения рабочих данных. |
Сеть | Требуется подключение к интернету для облачных сервисов и обновлений программного обеспечения. |