Перед специалистами в мире больших данных стоит множество разнообразных задач. Эффективность их решения во многом зависит от правильно выбранных технологий и инструментов.
Выбор конкретного инструмента требует внимательного отношения к особенностям той или иной задачи. Так, для задачи формирования годовой отчётности компании и для задачи онлайн-мониторинга посещаемости сайта требуются разные подходы, технологии и инструменты. В том числе, различные системы управления базами данных (СУБД).
В этой статье разберём несколько прикладных задач из области работы с большими данными (Big Data). На их примере мы научимся анализировать особенности разных задач и подбирать наиболее подходящие СУБД с учетом этих особенностей. Дополнительным материалом станет инструкция, с помощью которой вы сможете оценить надёжность того или иного инструмента.
После прочтения статьи вы получите большую таблицу-шпаргалку со всеми разобранными кейсами, которую сможете использовать в своей практике и пополнять при необходимости.
SQLITE 3 Python [ 1 ] | Создание таблицы, добавление данных, проверка и вывод.
В этой статье мы будем опираться только на Open Source инструменты, актуальные и востребованные сейчас на рынке (особенно в условиях импортозамещения).
Итак, давайте рассмотрим несколько типовых задач, с которыми может столкнуться аналитик данных.
Практические задачи
Задача 1
Годовой отчёт
Суть задачи: собрать годовой отчёт, который должен обновляться каждый день и содержать сложные показатели, на основе которых руководители могут принимать решения о работе компании и её процессах (метрики retention, LTV и др). Отчёт нужно также вывести на BI-дашборд.
Такие дашборды подключаются к обновляемым источникам данных и представляют собой набор графиков, диаграмм и таблиц со сводными результатами какой-либо деятельности. Как пример, дашборды используется для отслеживания доходов и расходов, мониторинга процессов, демонстрации ключевых показателей бизнеса. Наиболее известные инструменты для создания дашбордов это Power BI от Microsoft, Tableau, Qlik.
Анализируя постановку задачи, можно выделить такие критерии выбора СУБД:
- Нужно обрабатывать ОЧЕНЬ много данных (не тысячи и миллионы, а миллиарды записей)
- Сложная логика расчётов метрик
- Необходимо частое обновление — минимум раз в день
- Нужно обеспечить минимальное время сбора отчёта (минуты, а не часы)
Во-первых, GreenPlum — мощная СУБД, а для работы с хранящимися в ней данными используется SQL. Для задач нашего кейса (сложная логика расчётов) удобно использовать SQL, ведь этот язык специально предназначен для работы со сложными запросами из БД.
Во-вторых, GreenPlum — MPP (Massively Parallel Processing) СУБД. Это значит, что данные в БД физически хранятся на разных серверах. Это позволяет оптимально распределить нагрузку при выполнении запроса и значительно сократить время сборки отчёта.
Задача 2
Мониторинг и онлайн-аналитика
Суть задачи: реализовать для маркетинга инструмент онлайн-мониторинга, который позволил бы с задержкой не более 10 секунд отслеживать количество пользователей, приходящих с различных каналов (социальные сети, рассылка, промо-акции и так далее).
Из условий задачи выделяем такие критерии:
- Большое количество данных
- Умеренная сложность логики, нет сложных метрик и расчётов
- Требуется обеспечить минимальное время сбора и частое обновление (анализ данных в реальном времени)
К тому же при решении задач онлайн-аналитики больших данных ClickHouse позволяет осуществлять выборку данных массивами. Это называется vectorized query execution или векторизованное выполнение запросов. Любые операции выполняются не на индивидуальных значениях, а на массивах данных. Такой подход значительно ускоряет время выполнения запросов.
Но нужно помнить, что из-за подобного подхода растёт скорость, но падает точность. Возможны погрешности в вычислениях, поэтому ClickHouse не подходит для решения задач, в которых важна доскональная точность (например, в банковских транзакциях). При решении ряда задач анализа больших данных, в которых не требуется высокая точность, попадание в выборку одного-двух лишних значений не повлияет на результаты, и ClickHouse смело можно использовать для анализа данных.
Задача 3
Связь данных нескольких сервисов
Давайте представим, что в нашей компании микросервисная архитектура. Каждый сервис функционирует изолированно и имеет собственную базу данных, в которой хранит только необходимые ему данные.
Бывают ситуации, когда требуется связать данные из разных сервисов: например, если мы хотим выдавать некоторым пользователям промокод на скидку. При этом условие отбора таких пользователей включает несколько критериев. Например, пользователь должен сделать не менее двух заказов и быть зарегистрирован не ранее, чем две недели назад. Предположим, что данные о количестве заказов и дате регистрации хранятся в БД разных сервисов и нам необходимо собрать данные из двух сервисов, обработать и отдать потребителю данных.
Почему бы нам не использовать инструменты, рассмотренные ранее? Например, GreenPlum или ClickHouse?
Когда речь идёт о взаимодействии приложения с пользователем, задержка даже в 10 секунд становится критичной. Каждый пользователь хочет взаимодействовать с тем продуктом, который предоставляет мгновенный отклик. И здесь в дело вступает такое понятие как real-time.
Выделяем из условия задачи следующие критерии выбора нашего будущего инструмента:
- Много данных о пользователях
- Связь нескольких источников данных
- Real-time доставка данных (быстродействие как на запись, так и на чтение)
Cassandra — колоночная СУБД. Как и в случае с ClickHouse, это здорово ускоряет чтение данных.
Задача 4
Система рекомендаций
Суть задачи: одна из популярнейших задач в Big Data — реализация рекомендательной системы, позволяющей подбирать релевантные для конкретного пользователя товары, услуги, фильмы, новости и так далее.
Основные критерии для этой задачи:
- Высокое качество рекомендаций
- Сложная логика расчётов
- Частое обновление (минимум раз в день)
- Быстродействие формирования подборки (не обязательно мгновенно, но в течение нескольких минут)
Узлы графа (вершины, nodes) — это атрибуты данных, например имя пользователя, просмотренные фильмы, купленные товары и так далее, а ребра (отношения) это связи между атрибутами. Преимущество графовых СУБД как раз в том, что отношения — тоже часть СУБД. Они постоянно хранятся в базе данных, что позволяет сократить время обхода графа и сократить время вычислений. Это позволяет также эффективно находить различные неочевидные закономерности между данными и снимает с нас часть логики расчётов, которые требуются для решения таких задач, как формирование рекомендаций.
Хочу отметить, что кроме рассмотренных примеров я включила в свою таблицу ещё несколько задач и инструментов, хорошо подходящих для их решения.
Пример задачи;Критерии выбора;Тип БД;Пример инструмента
База для хранения данных сервисов приложения — например, заказы;1. Частые вставки
2. Не надо собирать отчёты
3. Быстро посмотреть информацию
4. Передавать информацию дальше;Реляционная (SQL);PostgreSQL link=https://www.postgresql.org/about/ Собрать отчёт, который будет обновляться каждый день и содержать сложные метрики. Отчёт также надо вывести в BI;1. Много данных
2. Сложная логика расчётов
3. Частое обновление (раз в день)
4. Отчёт собирается за несколько минут (не часов);Реляционная (SQL);GreenPlum link=https://greenplum.org/ Мониторинг и онлайн аналитика — отставание от действий пользователей меньше 10 сек;1. Много данных
2. Простая логика (умеренная)
3. Очень быстро обновлять
4. Быстро пересобирать отчёт;Реляционная (SQL);ClickHouse link=https://yandex.ru/dev/clickhouse/ и Tarantool link=https://www.tarantool.io/ru/doc/latest/ Связь данных из двух сервисов, проверка выполнения условий и отправка результата обратно в сервис. В режиме real-time;1. Много данных
2. Связать несколько источников
3. Real-time
4. Быстро вставить, быстро взять
5. Можно использовать другой инструмент для обработки;noSQL, partitioned column stored;Cassandra link=https://cassandra.apache.org/_/cassandra-basics.html Кэширование данных — быстрый ответ приложения;1. Много данных
2. Мгновенные операции
3. Не надо связывать — один сервис
4. Не важна структура
5. Разработчикам;noSQL, key-value;Redis link=https://redis.io/docs/about/ Нужно хранить большое количество данных, но структура неизвестна и может быть различна для каждого документа (карточки пациентов);1. Много данных
2. Не надо связывать
3. Не знаем структуру
4. Быстрый поиск;noSQL, document oriented;MongoDB link=https://www.mongodb.com/new?tck=mdb_6.0_GA_new_banner Рекомендательная система;1. Качество рекомендаций
2. Сложная логика расчётов
3. Частое обновление (раз в день)
4. Отчёт собирается за несколько минут (не часов);noSQL, graph;neo4j link=https://neo4j.com/product/neo4j-graph-database/
Как оценить надежность инструмента
Сейчас поговорим о том, на какие «маячки» смотреть при выборе инструмента и как оценить его надежность (особенно Open Source-технологий).
Вернёмся к задаче № 2 (мониторинг и онлайн аналитика) и представим, что на просторах сети мы нашли инструмент Apache Kudu. Разработчик заявляет, что Kudu позволят «проводить быструю аналитику на быстро изменяющихся данных». Звучит как-то, что нам и нужно. Но давайте посмотрим на инструмент чуть глубже.
Большинство Open Source проектов хранят свой код на GitHub. Поэтому GitHub — первое место, куда я иду, когда хочу убедиться, что «пациент жив».
Вот как выглядит страница проекта Apache Kudu:
Страница проекта Apache Kudu
Итак, на что я обращаю внимание.
1. Дата последнего коммита. Если последний коммит был сделан давно, обратите на это внимание, возможно инструмент никто не поддерживает. Если видим, что последний коммит был сделан, например, всего 2 часа назад, то это хороший знак!
2. Даты обновления в конкретных папках проекта. В крупных проектах куски кода разбиты по разным папкам. Так мы можем оценить, а что именно в проекте обновляет разработчик. Если большая часть папок была обновлена давно, на это также стоит обратить внимание. Видим, что некоторые папки были обновлены недавно, 2 и 6 часов назад.
Но при этом, остальные были обновлены несколько месяцев назад. Здесь закрадывается подозрение, что проект развивается не очень активно. Все же дадим шанс этому инструменту и проверим ещё несколько моментов.
3. Наличие у проекта лицензии. У Kudu есть лицензия Apache 2.0, значит разработчик предполагает, что этот код будет использоваться в других проектах и обеспокоился тем, чтобы проект находился в правовом поле.
4. Дата последнего релиза и их количество. У Apache Kudu последний релиз был 19 апреля (скриншот страницы был сделан 14 июля), то есть достаточно давно для Open Source проекта.
Теперь нам нужно посмотреть, а что, собственно, было включено в релизы проекта? Поэтому следующее, что я делаю — это захожу на сайт Apache Kudu на страницу с релизами.
Источник: systems.education
15 лучших инструментов и приложений для управления MySQL
На сегодняшний день скоростью веб-приложений является одним из ключей к успеху. Она влияет на взаимодействие и предоставление пользователям веб-сайтов. И, производительность базы данных является одним из наиболее важных факторов скорости.
Почти каждый веб-разработчик имеет любимые инструменты управления MySQL, чтобы чувствовать себя комфортно в работе. Такие инструменты помогают разработчикам во многих отношениях, обеспечивая поддержку для многих баз данных, включая PostgreSQL, MySQL, SQLite, Redis и MongoDB, все новейшие функции, включая: триггеры, события, просмотры, хранимые процедуры и внешние ключи; Кроме того, инструменты управления позволяют импортировать и создавать резервное копирование данных и структуры объектов MySQL, управлять пользователями и многое другое.
В этом обзоре мы собрали список из 15 лучших инструментов управления MySQL и приложений для разработчиков, которые облегчат вашу работу, предоставляя множество функций.
1. Induction
Induction бесплатный инструмент с открытым исходным кодом для понимания и общения отношения в данных. Он может быть использован для изучения строк / столбцов, выполнять запросы и визуализировать данные в нескольких направлениях. Инструмент имеет поддержку многих баз данных, включая PostgreSQL, MySQL, SQLite, Redis и MongoDB. Кроме того, любые другие могут быть добавлены путем записи новых адаптеров. Induction в настоящее время находится в режиме альфа и не имеет полнофункциональный клиент.
2. Pinba
Pinba является механизмом хранения данных, который выступает в качестве мониторинга в реальном времени / сервер статистики для PHP с использованием MySQL в качестве интерфейса только для чтения. Он обрабатывает данные которые передаются по UDP несколькими процессами PHP и отображает статистику в хорошей человеческой для восприятия форме «Отчеты», а также предоставляя интерфейс только для чтения исходных данных, для того, чтобы сделать возможным генерацию более сложных отчетов и статистик.
3. DB Ninja
DB Ninja является передовым веб-приложением для разработки и администрирования баз данных MySQL. Отлично подойдет для тех, кто желает получить доступ к своим размещеным серверам удаленно. DB Ninja поддерживает все новейшие функции, включая: триггеры, события, просмотры, хранимые процедуры и внешние ключи; Кроме того, он позволяет импортировать и делать резервное копирование данных и структуры объектов MySQL, управлять пользователями и многое другое. DB Ninja имеет весьма функциональный и элегантный пользовательский интерфейс, и может быть использован надежно в любом современном браузере на любой ОС.
4. DB Tools Manager
DB Manager также является самым мощным приложением для управления данными. С встроенной поддержкой для MySQL, PostgreSQL, Interbase/Firebird, SQLite, DBF tables, MSAccess, MSSQL Server, Sybase, Oracle и ODBC database engines, также приносит вам новые возможности, которые делают его наиболее продвинутым приложением. DB Manager поставляется в двух версиях, так что вы можете выбрать ту, которая будет соответствовать вашим потребностям: Standard и Enterprise.
5. Dbeaver
DBeaver является бесплатным приложением для управления базами данных, которое работает с различными движками, включая MySQL, MSSQL, Oracle, SQLite, Sybase, Firebird и многое другое. Так как приложение построено с Java, работает оно во всех основных операционных системах (Windows, Mac и Linux). Может обрабатывать все основные задачи, такие как редактирование метаданных (таблицы, столбцы, ключи, индексы), выполнение SQL, управление пользователями и т.д.
6. SqlWave
SQLWave является компактным, быстрым и простым в использовании приложением MySQL. Этот инструмент позволит вам везде легко подключиться к удаленному хосту. Поддерживает все текущие и последние версии MySQL, в том числе имеет ряд новых возможностей для управления структурой базы данных, таких как: работа с таблицами, просмотры, процедуры хранения, функции, события, внешние ключи и триггеры.
7. MyWebSQL
MyWebSQL является заменой настольного ПК для управления базами данных MySQL через Интернет. С интерфейсом, который работает так же с вашими любимыми приложеними рабочего стола, вам не нужно переключять веб-страницы, чтобы сделать простые вещи. Просто войдите в свою базу данных и работайте так, как вы работаете на своем ПК!
8. Navicat
Navicat является идеальным решением для управления MySQL / MariaDB и разработки. Одновременное подключение к базам данных MySQL и MariaDB в рамках одного приложения. Обеспечивает интуитивно понятный и мощный графический интерфейс для управления базами данных, разработки и обслуживания. Navicat обеспечивает полный набор инструментов для тех, кто является новичком, а также профессиональным разработчиком в MySQL / MariaDB.
9. SQLyog
SQLyog является мощнейшим MySQL менеджером и инструментом администратора, сочетая в себе черты MySQL Workbench, phpMyAdmin и других инструментов с графическим интерфейсом MySQL. Приложение может подключаться к любому количеству серверов MySQL, которое отлично подходит для работы с тестом и производительностью серверов.
10. Sequel Pro
Sequel Pro является быстрым, простым в использовании приложением для управления базами данных MySQL с Mac. Sequel Pro предоставляет вам прямой доступ к базам данных MySQL на локальных и удаленных серверах.
11. HeidiSQL
HeidiSQL это полезный и надежный инструмент, который разработан специально для веб-разработчиков, использующих популярный сервер MySQL, базы данных Microsoft SQL и PostgreSQL. Позволяет просматривать и редактировать данные, создавать и редактировать таблицы, просмотры, процедуры, триггеры и запланированные события. Кроме того, вы можете экспортировать структуры из данных SQL файла в буфер обмена либо на другие сервера.
12. MyDB Studio
MyDB Studio это бесплатный менеджер приложений баз данных MySQL, который имеет практически все функции на которые вы можете рассчитывать. Он может подключаться до неограниченного количества баз данных. Если базы данных находятся за межсетевым экраном или локально, есть поддержка SSH. Базы данных, таблицы и записи могут быть отредактированы или удалены, а также могут быть подкреплены / восстановлены и экспортированы в различные форматы.
13. SQL Lite Manger
SQL Lite Manger является веб-приложением с открытым исходным кодом для управления популярных серверов, не менее нулевой конфигурации базы данных SQLite. SQL Lite Manger построен с PHP и может контролировать несколько баз данных. С помощью приложения, запросы MySQL могут быть преобразованы в SQLite-совместимых единиц, а также, могут быть созданы / отредактированы триггеры. SQL Lite Manger имеет различные скины, плюс ко всему является многоязычным ресурсом с готовыми к использованию языковыми пакетами.
14. Database Master
Database Master это современный, мощный, интуитивно понятный и простой в использовании софт для работы над MongoDB, MySQL, PostgreSQL, FireBird, SQLite, MS SQL Server, SQL Azure, Oracle, IBM DB2, IBM Informix, Netezza, Ingres, EffiProz с последовательным и современным интерфейсом. Database Master упрощает управление, запросы, изменения, визуализации, проектирования и отчетность системы баз данных. Вы можете подключить любую систему баз данных с помощью ODBC и OLEDB соединений, или подключить MS Access, MS FoxPro Database, Dbase и XML файлы.
15. Chive
Chive является веб-приложением с открытым исходным кодом для управления MySQL, который построен с PHP. Приложение имеет встроенный редактор с подсветки синтаксиса, интерфейс простой в использовании, что делает просмотр быстрым. Chive имеет только один существенный запасной вариант: он поддерживает только MySQL 5+.
Источник: art-ucoz.ru
SQLiteStudio — Свободный менеджер SQLite баз данных
Менеджер SQLite баз данных, который позволяет просматривать и редактировать SQLite 3, SQLite 2 и SQLCipher базы данных.
- Главная
- Разработчику — прочее
- SQLiteStudio
15 апреля 2023 г. 13:53 Русский GNU GPL v3
Менеджер SQLite баз данных, который решает проблему, чем открыть db файл, и при этом позиционируется как редактор SQLite для SQLite 3, SQLite 2 и SQLCipher базы данных. Переведен на русский язык.
Особенности SQLite Editor
- портативный — нет необходимости установки или удаления. Достаточно скачать, распаковать и запустить;
- интуитивно понятный интерфейс;
- представляет собой удобный SQLite Editor с интерфейсом,. переведенным на русский язык;
- мощный, но легкий и быстрый инструмент;
- все функции SQLite3 и SQLite2 поместились в простом графическом интерфейсе;
- кросс-платформенный — работает на Windows 9x / 2k / XP / 2003 / Vista / 7, Linux, MacOS X и должен работать на других Unix системах;
- экспорт в различные форматы (SQL-операторы, CSV, HTML, XML, PDF, JSON);
- импорт данных из различных форматов (CSV, пользовательские текстовые файлы [регулярные выражения]);
- многочисленные небольшие дополнения, такие как форматирование кода, история запросов, выполняемых в окнах редактора, проверка синтаксиса на лету, и многое другое;
- поддержка Unicode;
- настраиваемые цвета, шрифты и значки;
- открытый исходный код, который опубликован под лицензией GPLv3.
SQLiteStudio не нужно устанавливать, можно скачать портативную версию и начать редактировать SQLite базы данных без усилий.
На панели слева отображаются все доступные базы данных вместе с их данными. Иерархическое древовидное представление позволяет выбрать любую таблицу, триггер, процедуру или оператор и просмотреть данные в главном окне.
Через меню Базы данных можно открыть файл *.db, *.sdb, *.sqlite или *.db2 и подключиться к нему с помощью контекстного меню. Кроме того, можно импортировать схему из других баз данных или из файлов различных форматов, таких как CSV и dBase. После этого можно просматривать все существующие данные и манипулировать ими как угодно.
Используя Редактор запросов SQL, расположенный в меню Инструменты, можно вручную создать сценарий SQL и выполнить его.
История SQLiteStudio
Проект стартовал в начале 2007 года. Разработчик искал какой-нибудь SQLite-менеджер, которым легко пользоваться. Просто нужно было быстро создать таблицу и поместить в нее данные. Так как найти ничего не удалось, именно так появилась SQLiteStudio.
В то время разработчик был очень увлечен Tcl, поэтому это был предпочтительный язык программирования.
SQLiteStudio версии 1.0.0 имела очень простой графический интерфейс с сеткой для ввода данных.
Версия 1.1.0 (Рождество 2008 г.) представила поддержку SQLite 2, Tcl / Tk 8.5 (со сглаживанием, которого не было в версии 1.0.0), а также много других функций. Это был большой шаг вперед.
Версия 2.0.0 (ноябрь 2010 г.) внедрила более умное завершение синтаксиса, подсветку синтаксических ошибок, красивый принтер для SQL-кода (форматировщик), поддержку перетаскивания и многое другое. Это была первая версия, в которой использовался настоящий парсер кода. Кроме того, он был первым, работающим на Mac OS X.
Выпущено 28 исправлений! Проект настолько вырос, что поддерживать его стало проблемой. Исходный код также был не самым красивым (в плане поддержки).
SQLiteStudio версии 2.1.0 (декабрь 2012 года, канун Нового года) не добавляла «огромных» возможностей, но расширила множество второстепенных функций, которые уже были в 2.0.0. Многое изменилось в исходном коде, чтобы его было легче поддерживать.
Было принято решение перейти на C++ и библиотеку Qt.
После выпуска 2.1.2 началась работа над версией 3.0.0 на C ++ и Qt. Это был март 2013 года.
SQLiteStudio 3.0.0В версии приобрела большую скорость и ощущение легкости. Кроме того, она был намного лучше спроектирована, поэтому было легче поддерживать и расширять. Порт на MacOS X стал намного стабильнее и стал выглядеть нативно.
Характеристики
Ссылки на официальный сайт и загрузку
- Веб-сайт:sqlitestudio.pl
- Каталог загрузки
- Прямая ссылка
- Прямая ссылка x64
- Резервная копия
Источник: xn--90abhbolvbbfgb9aje4m.xn--p1ai