Skip to content

Latest commit

 

History

History
225 lines (146 loc) · 20.3 KB

README_RU.md

File metadata and controls

225 lines (146 loc) · 20.3 KB

Synmetrix

Веб-сайтДокументацияДокументация моделей Cube.jsDocker HubСообщество в Slack

Synmetrix

Synmetrix (ранее MLCraft) - это открытая платформа для инженерии данных и семантический слой для централизованного управления метриками. Она предоставляет полный фреймворк для моделирования, интеграции, трансформации, агрегации и распределения данных метрик в больших масштабах.

Ключевые возможности

  • Моделирование данных и трансформации: Гибко определяйте метрики и измерения с помощью SQL и моделей данных Cube. Применяйте трансформации и агрегации.
  • Семантический слой: Объедините метрики из различных источников в единую, управляемую модель данных. Устраните различия в определениях метрик.
  • Планирование отчетов и оповещений: Мониторьте метрики и получайте уведомления о изменениях через настраиваемые отчеты и оповещения.
  • Версионирование: Отслеживайте изменения схемы данных со временем для прозрачности и возможности аудита.
  • Контроль доступа на основе ролей: Управляйте разрешениями для доступа к моделям данных и метрикам.
  • Исследование данных: Анализируйте метрики через пользовательский интерфейс или интегрируйте с любым инструментом BI через SQL API.
  • Кэширование: Оптимизируйте производительность с помощью предварительных агрегаций и кэширования от Cube.
  • Команды: Сотрудничайте в моделировании метрик по всей вашей организации.

Synmetrix – Открытый семантический слой

Обзор

Synmetrix использует Cube (Cube.js) для реализации гибких моделей данных, которые могут объединять метрики из различных хранилищ, баз данных, API и т. д. Этот единый семантический слой устраняет различия в определениях и расчетах, обеспечивая единственный источник истины.

Модель данных метрик затем может быть распространена вниз по потоку любому потребителю через SQL API, позволяя интеграцию в инструменты BI, отчетность, панели инструментов, науку о данных и т. д.

Объединив лучшие практики из инженерии данных, такие как кэширование, оркестровка и трансформация, с возможностями самообслуживания аналитики, Synmetrix ускоряет рабочие процессы, основанные на данных, от определения метрик до их использования.

Примеры использования

  1. Демократизация данных: Synmetrix делает данные доступными для неспециалистов, позволяя каждому в организации легко принимать решения, основанные на данных.

  2. Бизнес-аналитика (BI) и отчетность: Интеграция Synmetrix с любым инструментом BI для продвинутой отчетности и аналитики, улучшая визуализацию данных и инсайты.

  3. Встроенная аналитика: Используйте API Synmetrix для интеграции аналитики непосредственно в приложения, обеспечивая пользователей данными в реальном времени в рамках их рабочих процессов.

  4. Семантический слой для LLM: Повышение точности LLM в обработке данных и формулировании запросов с помощью семантического слоя Synmetrix, улучшая взаимодействие с данными и точность.

Начало работы

Необходимое программное обеспечение

Перед началом работы убедитесь, что установлено следующее программное обеспечение:

Шаг 1: Загрузка файла docker-compose

Репозиторий 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 и при необходимости измените их.

Шаг 2: Запуск Synmetrix

Выполните следующую команду для запуска 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, чтобы убедиться, что процесс завершен.

Запуск Synmetrix на архитектуре ARM64v8

Сначала рекомендуется установить 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):

Видеоруководство

Шаг 3: Изучите Synmetrix

Важные замечания

  1. Доступ к административной консоли: Обязательно проверьте HASURA_GRAPHQL_ADMIN_SECRET в файле docker-compose. Это необходимо для доступа к административной консоли. Значение по умолчанию — adminsecret. Не забудьте изменить это значение в производственной среде.

  2. Переменные окружения: Настройте все необходимые переменные окружения. Synmetrix будет работать с значениями по умолчанию, но для полной функциональности добавьте ключи SMTP и S3.

  3. Предзагруженные начальные данные: Проект оснащен предзагруженными начальными данными. Используйте указанные ниже учетные данные для входа:

    • Электронная почта: 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, которые оптимизированы для работы с большими наборами данных.

Единая модель данных может объединять метрики из различных баз данных и систем, обеспечивая консистентный семантический слой для конечных пользователей.

Cube Store

Для производственных рабочих нагрузок 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 ГБ свободного места для установки программного обеспечения и хранения рабочих данных.
Сеть Требуется подключение к интернету для облачных сервисов и обновлений программного обеспечения.

Авторы

@ifokeev, @Libertonius, @ilyozzz