В последней версии СУБД Interbase XE7 появилась технология ChangeViews, которая резко упрощает и ускоряет синхронизацию изменений в базах данных Interbase. Как с помощью этой технологии упростить и оптимизировать процессы обеспечения целостности и согласованности данных, расскажет эксперт Дмитрий Кузьменко (iBase.ru). На русском языке.
Запись трансляции: http://youtu.be/0PAY8HohwWc
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"Technopark
Технопарк Mail.ru Group, МГТУ им. Н.Э. Баумана. Курс "Базы данных".
Лекция №7 "Оптимизация запросов и индексирование". Лектор - Павел Щербинин.
Вначале рассказывается об оптимизации доступа к данным, о декомпозиции соединения и состоянии запроса. Далее идёт большой блок, посвящённый оптимизатору запросов (изменение порядка соединения, применение алгебраических правил эквивалентности, оптимизации COUNT(), MIN(), MAX(), вычисление и свертка константных выражений, покрывающие индексы, оптимизация подзапросов, раннее завершение, сравнение по списку IN() и распространение равенства). Затем последовательно рассматриваются такие вещи, как соединение (JOIN) в MySQL, оптимизатор сортировки, коррелированные подзапросы, слияние и непоследовательный просмотр индексов, функции SELECT & UPDATE, COUNT(). После этого рассказывается об оптимизации запросов с помощью JOIN, GROUP BY, DISTINCT и LIMIT со смещением. В конце лекции даётся информация о кэшировании запросов, объединённых таблицах и секционировании.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9obOz5K695ugYuiOOCBciEi
СУБД 2013 Лекция №4 "Расширенные возможности работы с базами данных. Триггеры...Technopark
Технопарк Mail.ru Group, МГТУ им. Н.Э. Баумана. Курс "Базы данных". Лекция №4 "Расширенные возможности работы с базами данных. Триггеры и хранимые процедуры"
Лектор - Павел Щербинин.
Первая часть лекции посвящена хранимым процедурам (использование, примеры кода, аспекты безопасности при использовании хранимых процедур): LOOP, REPEAT, WHILE, HANDLER, курсоры, EXECUTE. Во второй части рассказывается о триггерах: BEFORE, AFTER, INSTEAD OF, о специальных таблицах inserted, updated и deleted, об использовании триггеров для поддержания целостности и бизнес-логики, о проблемах при использовании триггеров, приводятся примеры кода. В завершающей части лекции обсуждаются вопросы, связанные с транзакциями: концепция A.C.I.D.; уровни изоляции ANSI/ISO (SET TRANSACTION ISOLATION LEVEL); взаимовлияние транзакций и проблемы lost update, dirty read, non-repeatable read и phantom read; технология MVCC (контроль версионирования конкуренции); конкуренция; параллельность и согласованность.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9obOz5K695ugYuiOOCBciEi
Технопарк Mail.ru Group, МГТУ им. Н.Э. Баумана. Курс "Базы данных".
Лекция №9 "Безопасность баз данных". Лектор - Павел Щербинин.
Открывается лекция рассказом о резервном копировании (о логических и физических резервных копиях, о выборе данных для копирования). Затем определяется терминология для обсуждения дальнейших вопросов. После этого рассматриваются основы учётных записей: таблицы доступа, привилегии, виды записей. Обсуждаются SQL-injection, список смежных вершин (Adjacency Set), вложенное множество (Nested Set), материализованный путь (Materialized Path) и комбинированный подход.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9obOz5K695ugYuiOOCBciEi
Технопарк Mail.ru Group, МГТУ им. Н.Э. Баумана. Курс "Базы данных".
Лекция №5 "Определение узких мест". Лектор - Павел Щербинин.
Вначале рассказывается о подсистемах хранения: MyISAM, InnoDB, Memory, о критериях выбора подсистем хранения, приводятся практические примеры. Затем обсуждается тема индексирования (B-tree, хеш-индексы) и EXPLAIN (столбцы id, table, possible_keys, key, key_len).
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9obOz5K695ugYuiOOCBciEi
Технопарк Mail.ru Group, МГТУ им. Н.Э. Баумана. Курс "Базы данных".
Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-запросы". Лектор - Павел Щербинин.
Лекция открывается рассказом о том, что такое профилирование запроса, каковы его этапы выполнения в MySQL. Рассказывается о том, как планировать запрос, как осуществляется протоколирование запросов, как собирается статистика. Объясняются основы индексирования, подробно обсуждаются стратегии индексирования для достижения высокой производительности: изоляция столбца, кластерные индексы (преимущества и недостатки), размещение данных в MyISAM и InnoDB, покрывающие индексы. Далее затрагивается тема нормализации и денормализации, а также таблиц счётчиков. В завершении рассказывается о версионировании схемы БД: о методах инкрементных изменений, идемпотентных изменений, уподобления структуры БД исходному коду.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9obOz5K695ugYuiOOCBciEi
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"Technopark
Технопарк Mail.ru Group, МГТУ им. Н.Э. Баумана. Курс "Базы данных".
Лекция №7 "Оптимизация запросов и индексирование". Лектор - Павел Щербинин.
Вначале рассказывается об оптимизации доступа к данным, о декомпозиции соединения и состоянии запроса. Далее идёт большой блок, посвящённый оптимизатору запросов (изменение порядка соединения, применение алгебраических правил эквивалентности, оптимизации COUNT(), MIN(), MAX(), вычисление и свертка константных выражений, покрывающие индексы, оптимизация подзапросов, раннее завершение, сравнение по списку IN() и распространение равенства). Затем последовательно рассматриваются такие вещи, как соединение (JOIN) в MySQL, оптимизатор сортировки, коррелированные подзапросы, слияние и непоследовательный просмотр индексов, функции SELECT & UPDATE, COUNT(). После этого рассказывается об оптимизации запросов с помощью JOIN, GROUP BY, DISTINCT и LIMIT со смещением. В конце лекции даётся информация о кэшировании запросов, объединённых таблицах и секционировании.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9obOz5K695ugYuiOOCBciEi
СУБД 2013 Лекция №4 "Расширенные возможности работы с базами данных. Триггеры...Technopark
Технопарк Mail.ru Group, МГТУ им. Н.Э. Баумана. Курс "Базы данных". Лекция №4 "Расширенные возможности работы с базами данных. Триггеры и хранимые процедуры"
Лектор - Павел Щербинин.
Первая часть лекции посвящена хранимым процедурам (использование, примеры кода, аспекты безопасности при использовании хранимых процедур): LOOP, REPEAT, WHILE, HANDLER, курсоры, EXECUTE. Во второй части рассказывается о триггерах: BEFORE, AFTER, INSTEAD OF, о специальных таблицах inserted, updated и deleted, об использовании триггеров для поддержания целостности и бизнес-логики, о проблемах при использовании триггеров, приводятся примеры кода. В завершающей части лекции обсуждаются вопросы, связанные с транзакциями: концепция A.C.I.D.; уровни изоляции ANSI/ISO (SET TRANSACTION ISOLATION LEVEL); взаимовлияние транзакций и проблемы lost update, dirty read, non-repeatable read и phantom read; технология MVCC (контроль версионирования конкуренции); конкуренция; параллельность и согласованность.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9obOz5K695ugYuiOOCBciEi
Технопарк Mail.ru Group, МГТУ им. Н.Э. Баумана. Курс "Базы данных".
Лекция №9 "Безопасность баз данных". Лектор - Павел Щербинин.
Открывается лекция рассказом о резервном копировании (о логических и физических резервных копиях, о выборе данных для копирования). Затем определяется терминология для обсуждения дальнейших вопросов. После этого рассматриваются основы учётных записей: таблицы доступа, привилегии, виды записей. Обсуждаются SQL-injection, список смежных вершин (Adjacency Set), вложенное множество (Nested Set), материализованный путь (Materialized Path) и комбинированный подход.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9obOz5K695ugYuiOOCBciEi
Технопарк Mail.ru Group, МГТУ им. Н.Э. Баумана. Курс "Базы данных".
Лекция №5 "Определение узких мест". Лектор - Павел Щербинин.
Вначале рассказывается о подсистемах хранения: MyISAM, InnoDB, Memory, о критериях выбора подсистем хранения, приводятся практические примеры. Затем обсуждается тема индексирования (B-tree, хеш-индексы) и EXPLAIN (столбцы id, table, possible_keys, key, key_len).
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9obOz5K695ugYuiOOCBciEi
Технопарк Mail.ru Group, МГТУ им. Н.Э. Баумана. Курс "Базы данных".
Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-запросы". Лектор - Павел Щербинин.
Лекция открывается рассказом о том, что такое профилирование запроса, каковы его этапы выполнения в MySQL. Рассказывается о том, как планировать запрос, как осуществляется протоколирование запросов, как собирается статистика. Объясняются основы индексирования, подробно обсуждаются стратегии индексирования для достижения высокой производительности: изоляция столбца, кластерные индексы (преимущества и недостатки), размещение данных в MyISAM и InnoDB, покрывающие индексы. Далее затрагивается тема нормализации и денормализации, а также таблиц счётчиков. В завершении рассказывается о версионировании схемы БД: о методах инкрементных изменений, идемпотентных изменений, уподобления структуры БД исходному коду.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9obOz5K695ugYuiOOCBciEi
10 причин перехода пользователей с ERwin на Embarcadero ER/StudioAndrew Sovtsov
Компания CA объявила ERwin, как 'discontinued'. Многие пользователи ERwin стоят перед выбором, на какой инструмент моделирования данных стоит переходить для удобной и эффективной работы. Перед ними стоят главные вопросы:
- Какие возможности являются наиболее важными?
- Сколько потребуется времени на переход и изучение?
- Разумное сравнение средств.
- Какой инструмент использует больше инноваций?
- Какой является лучшей инвестицией в будущем?
Даются ответы на эти и другие вопросы на основе опыта отечественных и зарубежных пользователей
На русском языке.
DBArtisan 2016 это не просто face lifting!Andrew Sovtsov
Компания Embarcadero Tech. представляет инновационные технологии, включенные в версию 2016 решения DB PowerStudio, включающего DBArtisan, RapidSQL и др. инструменты. Эти инновации переносят процесс управления производительностью БД на новый уровень. За счет непрерывного мониторинга и интеллектуальной обработки метрик и показателей "здоровья" БД, сравнения с соответствующими показателями в прошлом, обеспечиваются наглядные динамические панели состояния и предоставляются важнейшие рекомендации для поддержки производительности на высшем уровне, наиболее оптимальные варианты SQL
Embarcadero Team Server для администраторов БДAndrew Sovtsov
Компания Embarcadero Tech. представляет инновационные технологии, включенные в версию 2016 решения DB PowerStudio. За счет непрерывного мониторинга и интеллектуальной обработки метрик и показателей "здоровья" БД, сравнения с соответствующими показателями в прошлом, обеспечиваются наглядные динамические панели состояния и предоставляются важнейшие рекомендации для поддержки производительности на высшем уровне, наиболее оптимальные варианты SQL. Непрерывный мониторинг обеспечивается специализированным ПО Embarcadero DB Team Server. На вебинаре рассмотрены возможности этого сервера, его установка и настройка
Поддержка NoSQL и платформ MongoDB, Hive и Teradata в продуктах EmbarcaderoAndrew Sovtsov
Технологии "Больших данных" все чаще находят свое место в информационных системах большинства компаний. Специалисты по работе с данными нуждаются в удобных решениях для работы с новыми технологиями в смешанных, многоплатформенных средах. Какие решения предлагает сегодня Embarcadero? Для архитекторов и специалистов по моделированию данных, администраторов БД и разработчиков серверных частей ИС. На русском языке.
Запись вебинара: http://youtu.be/sL5asNgFFG0
Компания Embarcadero Tech. представляет инновационные технологии, включенные в версию 2016 решения DB PowerStudio, включающего DBArtisan, RapidSQL, DB Optimizer и DB Change Manager. Эти инновации переносят процесс управления производительностью БД на новый уровень.
Как использовать Rapid SQL для ускорения разработки SQL и другого кода для СУБДAndrew Sovtsov
Темы, рассмотренные на вебинаре:
знакомство с командной разработкой, работой с объектами БД
Как происходит отладка ..SQL
Зачем нужны Favorites и закладки
Как увидеть Explain-plans для запросов
Горячие клавиши, шаблоны, подстановка SQL
Как работает Query Builder
2015/06/18 Как работать с InterBase Change Views в Delphi программах Andrew Sovtsov
В СУБД Interbase XE7 появилась технология ChangeViews, которая резко упрощает и ускоряет синхронизацию изменений в базах данных Interbase, широко применяемых для хранения информации в клиент-серверных системах и мобильных приложениях.
Начиная с RAD Studio XE8, эта технология получила поддержку в универсальной библиотеке доступа к данным на различных платформах – FireDAC. На примерах будут показаны приемы создания приложений с использованием технологии ChangeViews с помощью компонент FireDAC
С Дмитрием Кузьменко (iBase.ru). На русском языке.
Управление метаданными графических файлов на примере VCL приложения WindowsAndrew Sovtsov
Практически все изображения, полученные с помощью современной техники или графического редактора, также содержат ценные дополнительные данные о параметрах съемки, аппаратуры и даже местоположении точки съемки. Эти сведения дают полезную информацию, которую можно было бы выделить, собрать и загрузить в БД для дальнейшего анализа. На вебинаре рассказано, как это сделать на практическом примере небольшой программы, созданной в RAD Studio на базе VCL. Рассмотрены: open-source CCR, JSON Framework, JSON Writer/Builder, MongoDB, проект БД Grafics, FireDAC MongoDocument + Builder.
А также Delphi anonymous methods, Delphi class helpers
Рост популярности NoSQL - одно из важнейших изменений технологий управления данными. За счет "не реляционности" достигается высочайшая гибкость, скорость работы и масштабируемость БД. NoSQL не исключает использование реляционных БД, обе технологии с пользой дополняют друг друга. Как можно моделировать NoSQL данные, не имеющие жестких схем, и какую пользу можно получить в результате. Слайды с вебинара Embarcadero. На русском языке
RAD Server для разработки современных корпоративных системAndrew Sovtsov
Компания Embarcadero предлагает новый продукт. RAD Server – это готовая «под-ключ» back-end платформа, чтобы быстро создавать и развертывать свои прикладные сервисы. До появления RAD Server разработчики создавали back-end серверы приложений для Delphi и C++ Builder с использованием серверных наборов инструментальных средств, таких как DataSnap, который предоставлял немного базисных компонентов для серверов приложений, но оставлял большую часть разработки для разработчика. С помощью RAD Server, разработчики теперь могут просто загрузить Delphi и C++ методы, реализующие бизнес-логику, добавить несколько пользователей и начать работу. На вебинаре рассказано как:• Создаются и управляются конечные точки REST/JSON
• Применяется контроль доступа.
• Подключиться к любой популярной СУБД предприятия и облачному сервису.
• Отслеживать и реагировать на местоположение пользователя.
• Посылать уведомления
• Интегрировать интеллектуальные устройства IoT в свое решение.
• Размещать RAD Server в облаке.
Сергей Аверин, То, что вы хотели знать о HandlerSocket, но не смогли нагуглитьTanya Denisyuk
После этого доклада вы будете знать, что такое Handlersocket, нужен ли он вам и «как его готовить».
Все как обычно — грабли, шишки, слезы из реальной жизни, направления «куда копать», примеры из практики. Вместе с докладом Сергей выложит код самописного php-клиента для HS, который мы используем в Badoo.
DevConf 2016
"Новые возможности MySQL 5.7", Дмитрий Ленев (Oracle)
MySQL 5.7 наиболее свежая стабильная ветка СУБД MySQL. Данный доклад
посвящен новым функциональным возможностям появившимся в этой версии.
В частности мы поговорим о:
- родной поддержке JSON данных и операций с ними
- генерируемых столбцах
- улучшениях в системе безопасности
- многочисленных измененениях в InnoDB
- изменениях в репликации, таких как поддержка multi-source репликации.
- многом другом
Кроме того будут освещены возможности связанные с новым X плагином, который
стал доступен с релизом версии 5.7.12 в апреле этого года.
Обсудим использование MySQL как Document Store, новый протокол и X DevApi
для коннекторов, новый клиент MySQL Shell.
10 причин перехода пользователей с ERwin на Embarcadero ER/StudioAndrew Sovtsov
Компания CA объявила ERwin, как 'discontinued'. Многие пользователи ERwin стоят перед выбором, на какой инструмент моделирования данных стоит переходить для удобной и эффективной работы. Перед ними стоят главные вопросы:
- Какие возможности являются наиболее важными?
- Сколько потребуется времени на переход и изучение?
- Разумное сравнение средств.
- Какой инструмент использует больше инноваций?
- Какой является лучшей инвестицией в будущем?
Даются ответы на эти и другие вопросы на основе опыта отечественных и зарубежных пользователей
На русском языке.
DBArtisan 2016 это не просто face lifting!Andrew Sovtsov
Компания Embarcadero Tech. представляет инновационные технологии, включенные в версию 2016 решения DB PowerStudio, включающего DBArtisan, RapidSQL и др. инструменты. Эти инновации переносят процесс управления производительностью БД на новый уровень. За счет непрерывного мониторинга и интеллектуальной обработки метрик и показателей "здоровья" БД, сравнения с соответствующими показателями в прошлом, обеспечиваются наглядные динамические панели состояния и предоставляются важнейшие рекомендации для поддержки производительности на высшем уровне, наиболее оптимальные варианты SQL
Embarcadero Team Server для администраторов БДAndrew Sovtsov
Компания Embarcadero Tech. представляет инновационные технологии, включенные в версию 2016 решения DB PowerStudio. За счет непрерывного мониторинга и интеллектуальной обработки метрик и показателей "здоровья" БД, сравнения с соответствующими показателями в прошлом, обеспечиваются наглядные динамические панели состояния и предоставляются важнейшие рекомендации для поддержки производительности на высшем уровне, наиболее оптимальные варианты SQL. Непрерывный мониторинг обеспечивается специализированным ПО Embarcadero DB Team Server. На вебинаре рассмотрены возможности этого сервера, его установка и настройка
Поддержка NoSQL и платформ MongoDB, Hive и Teradata в продуктах EmbarcaderoAndrew Sovtsov
Технологии "Больших данных" все чаще находят свое место в информационных системах большинства компаний. Специалисты по работе с данными нуждаются в удобных решениях для работы с новыми технологиями в смешанных, многоплатформенных средах. Какие решения предлагает сегодня Embarcadero? Для архитекторов и специалистов по моделированию данных, администраторов БД и разработчиков серверных частей ИС. На русском языке.
Запись вебинара: http://youtu.be/sL5asNgFFG0
Компания Embarcadero Tech. представляет инновационные технологии, включенные в версию 2016 решения DB PowerStudio, включающего DBArtisan, RapidSQL, DB Optimizer и DB Change Manager. Эти инновации переносят процесс управления производительностью БД на новый уровень.
Как использовать Rapid SQL для ускорения разработки SQL и другого кода для СУБДAndrew Sovtsov
Темы, рассмотренные на вебинаре:
знакомство с командной разработкой, работой с объектами БД
Как происходит отладка ..SQL
Зачем нужны Favorites и закладки
Как увидеть Explain-plans для запросов
Горячие клавиши, шаблоны, подстановка SQL
Как работает Query Builder
2015/06/18 Как работать с InterBase Change Views в Delphi программах Andrew Sovtsov
В СУБД Interbase XE7 появилась технология ChangeViews, которая резко упрощает и ускоряет синхронизацию изменений в базах данных Interbase, широко применяемых для хранения информации в клиент-серверных системах и мобильных приложениях.
Начиная с RAD Studio XE8, эта технология получила поддержку в универсальной библиотеке доступа к данным на различных платформах – FireDAC. На примерах будут показаны приемы создания приложений с использованием технологии ChangeViews с помощью компонент FireDAC
С Дмитрием Кузьменко (iBase.ru). На русском языке.
Управление метаданными графических файлов на примере VCL приложения WindowsAndrew Sovtsov
Практически все изображения, полученные с помощью современной техники или графического редактора, также содержат ценные дополнительные данные о параметрах съемки, аппаратуры и даже местоположении точки съемки. Эти сведения дают полезную информацию, которую можно было бы выделить, собрать и загрузить в БД для дальнейшего анализа. На вебинаре рассказано, как это сделать на практическом примере небольшой программы, созданной в RAD Studio на базе VCL. Рассмотрены: open-source CCR, JSON Framework, JSON Writer/Builder, MongoDB, проект БД Grafics, FireDAC MongoDocument + Builder.
А также Delphi anonymous methods, Delphi class helpers
Рост популярности NoSQL - одно из важнейших изменений технологий управления данными. За счет "не реляционности" достигается высочайшая гибкость, скорость работы и масштабируемость БД. NoSQL не исключает использование реляционных БД, обе технологии с пользой дополняют друг друга. Как можно моделировать NoSQL данные, не имеющие жестких схем, и какую пользу можно получить в результате. Слайды с вебинара Embarcadero. На русском языке
RAD Server для разработки современных корпоративных системAndrew Sovtsov
Компания Embarcadero предлагает новый продукт. RAD Server – это готовая «под-ключ» back-end платформа, чтобы быстро создавать и развертывать свои прикладные сервисы. До появления RAD Server разработчики создавали back-end серверы приложений для Delphi и C++ Builder с использованием серверных наборов инструментальных средств, таких как DataSnap, который предоставлял немного базисных компонентов для серверов приложений, но оставлял большую часть разработки для разработчика. С помощью RAD Server, разработчики теперь могут просто загрузить Delphi и C++ методы, реализующие бизнес-логику, добавить несколько пользователей и начать работу. На вебинаре рассказано как:• Создаются и управляются конечные точки REST/JSON
• Применяется контроль доступа.
• Подключиться к любой популярной СУБД предприятия и облачному сервису.
• Отслеживать и реагировать на местоположение пользователя.
• Посылать уведомления
• Интегрировать интеллектуальные устройства IoT в свое решение.
• Размещать RAD Server в облаке.
Сергей Аверин, То, что вы хотели знать о HandlerSocket, но не смогли нагуглитьTanya Denisyuk
После этого доклада вы будете знать, что такое Handlersocket, нужен ли он вам и «как его готовить».
Все как обычно — грабли, шишки, слезы из реальной жизни, направления «куда копать», примеры из практики. Вместе с докладом Сергей выложит код самописного php-клиента для HS, который мы используем в Badoo.
DevConf 2016
"Новые возможности MySQL 5.7", Дмитрий Ленев (Oracle)
MySQL 5.7 наиболее свежая стабильная ветка СУБД MySQL. Данный доклад
посвящен новым функциональным возможностям появившимся в этой версии.
В частности мы поговорим о:
- родной поддержке JSON данных и операций с ними
- генерируемых столбцах
- улучшениях в системе безопасности
- многочисленных измененениях в InnoDB
- изменениях в репликации, таких как поддержка multi-source репликации.
- многом другом
Кроме того будут освещены возможности связанные с новым X плагином, который
стал доступен с релизом версии 5.7.12 в апреле этого года.
Обсудим использование MySQL как Document Store, новый протокол и X DevApi
для коннекторов, новый клиент MySQL Shell.
Современному хайлоду - современные решения: MySQL 8.0 и улучшения PerconaSveta Smirnova
MySQL всегда использовали под высокой нагрузкой. Недаром эта база была и остаётся самым популярным бэкэндом для web. Однако наши представления о хайлоде с каждым годом расширяются. Большая скорость передачи данных -> больше устройств с подключением к интернет -> больше пользователей -> больше данных.
Задачи, стоящие перед разработчиками MySQL, с каждым годом усложняются.
В этом докладе я расскажу как менялись сценарии использования MySQL за [почти] 25 лет её истории и что делали инженеры, чтобы MySQL оставалась актуальной. Мы затронем такие темы, как работа с большим количеством активных соединений и высокими объёмами данных. Я покажу насколько современные версии лучше справляются с возросшими нагрузками.
Я надеюсь, что после моего доклада те слушатели, которые используют старые версии, захотят обновиться и те, кто уже обновились, узнают как использовать современный MySQL на полную мощность.
Прочитана на конференции OST 2020: https://ostconf.com/materials/2857#2857
То, что вы хотели знать о HandlerSocket, но не смогли нагуглитьSergey Xek
Мы уже около двух лет используем Handlersocket «в бою» в проекте Badoo, начав осваивать его на заре известности. За это время у нас накопился некоторый опыт по решению проблем, которым я хочу с вами поделиться.
После этого доклада вы будете знать, что такое Handlersocket, нужен ли он вам и «как его готовить».
Что еще вы узнаете из доклада:
1. Для чего изначально был придуман HS.
2. Практические плюсы/минусы/ограничения.
3. Чем HS не является.
4. Схема работы HS внутри MySQL.
5. Вопросы взаимодействия/совместимости доступа через SQL и через HS.
6. Интерфейс/протокол HS. Разобраны все сложные места, приведены примеры. Аналоги SQL-команд в мире HS.
7. Особенности: поддерживаемые типы данных, работа с кодировками, сортировка, подстановка значений по умолчанию.
8. Примеры из практики Badoo с цифрами и графиками.
9. «Прокачка» производительности.
Все как обычно — грабли, шишки, слезы из реальной жизни, направления «куда копать», примеры из практики.
Вместе с докладом выкладываю код самописного php-клиента для HS, который мы используем в Badoo.
Доклад Сергея Аверина на CodeFest-2013. "MySQL+HandlerSocket=NoSQL".Badoo Development
Мы уже около 3-х лет используем HandlerSocket в нашей инфраструктуре сайта badoo.com. За это время мы накопили опыт решения характерных для Handlersocket проблем, появляющихся при использовании.
Несколько команд внутри Баду активно используют HS для решения разноплановых задач мобильных и настольных приложений Баду. Где-то мы используем HS как замену Memcached, где-то как простой поисковый механизм, где-то как хранилище типа ключ-значение. Наш HS-кластер содержит более 30 серверов, обрабатывая порядка 8000 запросов/сек.
Спикер также предоставляет написанный им код библиотеки-клиента для Handlersocket на PHP.
Про что доклад:
• что это вообще такое;
• чем является HS и чем не является;
• внутреннее устройство и работа HS;
• протокол;
• примеры использования в Баду, с цифрами и графиками;
• особенности: шардирование, Percona Server, постоянные соединения (бенефиты, проблемы и их решения), tips & tricks;
• полезные сслыки, ответы на FAQ.
Доклад рассчитан на highload-разработчиков, работающих с реляционными БД.
Михаил Сартаев (MCSE: Messaging, MCSE: Communication)
Системный архитектор в компании АйТи
тема: Мультитенантность в Exchange
-Описание мультитенантности
-Архитектура внедрения
-Особенности развертывания
-Ограничения мультитенантного решения
Similar to InterBase XE7: Применение Change Views для синхронизации данных (20)
InterBase XE7: Применение Change Views для синхронизации данных
1. Применение
Change Views InterBase XE7
для синхронизации данных
Кросс-платформенные инструменты для работы с БД
Андрей Совцов
Embarcadero,Москва
email: Andrew.sovtsov@embarcadero.com
Дмитрий Кузьменко
Embarcadero MVP,
Генеральный директор iBase.ru, Москва
email: kdv@ibase.ru
3. Темы
1. Отслеживание обновлений данных
2. Общая модель ChangeViews
3. Создание подписок
4. Активация подписок
5. Просмотр обновленных данных
6. Особенности использования
– В SQL
– В драйверах и компонентах
7. Как это устроено
8. Примеры применения
4. InterBase - Применение
• Длительная история использования – с 1985 года
Первый коммерческий сервер с
многоверсионностью
• Базы данных в среднем до 150 гигабайт
• база данных может иметь размер до 131 терабайт
• До 500 одновременных пользователей
• чаще является лимитом операционной системы
• Бухгалтерия, склад, системы денежных переводов,
биллинг, торговля, системы учета …
• Однопользовательские и многопользовательские
приложения
5. Главные достоинства
• Минимум требований к аппаратному
обеспечению
• Минимум требований к ОС – десктопная или
серверная
• Минимум администрирования
– Может работать годами без обслуживания
– Для больших баз с большим количеством
пользователей обслуживание требуется для
достижения максимальной производительности
• Идентичность БД для разных платформ
6. InterBase XE7 - платформы
• 64-bit
– Windows 7, 8, Server 2008, 2012
– Linux RHEL 6, 7 SuSE 11.3, Ubuntu 14
• 32-bit
– Windows 7, 8, Server 2008, 2012
– Linux RHEL 6, SuSE 11.3, Ubuntu 14
• OS X, Android, iOS
– InterBase XE3
– InterBase XE7 – Update 1, выпущен 6 марта 2015
http://cc.embarcadero.com/item/30155
http://www.youtube.com/watch?v=l5fu2HXERbE
7. Отслеживание обновлений данных
• Обычное перечитывание данных
• Методы отслеживания изменений:
Сравнение двух результатов выборки
Нужно хранить предыдущий результат (ClientDataSet)
Модель с дополнительным столбцом
Дополнительный столбец, обновляемый триггером, с
генератором, инкрементируемым при вставке и обновлени
Select * where upd_field > x
Репликация триггерами
Дополнительные триггеры на все реплицируемые таблицы,
таблица лога
• InterBase XE7 – ChangeViews !
9. Создание подписки
CREATE SUBSCRIPTION <subscription_name>
ON
<table_name>[(column_name_comma_list)]
[FOR ROW (CHANGE | {INSERT, UPDATE, DELETE})]
[, <table_name>[(column_name_comma_list)]
[FOR ROW (CHANGE | {INSERT, UPDATE, DELETE})] ...]
[DESCRIPTION user-description]
create subscripion EMPS on
EMPLOYEE
FOR ROW (INSERT, UPDATE, DELETE)
Работает только в ODS 16 (базах, созданных в InterBase XE7)
10. • FOR ROW (CHANGE)
– По умолчанию
• CHANGE = INSERT, UPDATE
• Если столбцы явно не указаны, то
отслеживаются изменения всех столбцов
11. Примеры
• CREATE SUBSCRIPTION sub_employee_changes
ON EMPLOYEE (EMP_NO, DEPT_NO, SALARY) DESCRIPTION 'Subscribe to
changes in EMPLOYEE table';
• CREATE SUBSCRIPTION sub_customer_deletes
ON CUSTOMER FOR ROW (DELETE)
DESCRIPTION 'Subscribe to deletes in CUSTOMER table';
• CREATE SUBSCRIPTION sub_various_changes
ON EMPLOYEE FOR ROW (INSERT, UPDATE, DELETE), CUSTOMER FOR ROW
(INSERT, UPDATE, DELETE),
SALES FOR ROW (UPDATE),
DEPARTMENT (LOCATION) FOR ROW (UPDATE)
DESCRIPTION 'Subscribe to various changes on multiple tables';
12. Удаление подписки
• DROP SUBSCRIPTION <subscription_name>
[RESTRICT | CASCADE];
• RESTRICT – не удалять, если есть
подписчики (по умолчанию)
• CASCADE – удалять все активации подписок
13. Выдача прав на подписку
• GRANT SUBSCRIBE ON SUBSCRIPTION
<subscription_name> TO <user_name>;
• REVOKE SUBSCRIBE ON SUBSCRIPTION
<subscription_name> FROM <user_name>;
14. Активация подписки
• start transaction
• select …
– Получаем обычные данные
• set subscription … active
• select …
– Получаем изменения, на которые подписались
• set subscription … inactive
• select
– Получаем обычные данные
• …
• commit – информация о просмотренных изменениях будет
удалена
• rollback – просмотренные изменения подписки не удаляются
15. Активация подписки
• SET SUBSCRIPTION [<subscription_name> [,
<subscription_name> ...]]
[AT <destination>] {ACTIVE | INACTIVE};
• SET SUBSCRIPTION sub_employee_changes,
sub_customer_deletes AT ‘smartphone_123‘ ACTIVE;
• ACTIVE – создает «подписчика» в rdb$subscriptions,
если его нет, и включает режим показа изменений
• INACTIVE – выключает режим показа изменений
16. • [AT <destination>]
• Место получения обновлений по подписке
• Изменения накапливаются для конкретного
пользователя и места получения изменений
по подписке
• start - active – commit, start - active – commit…
Накапливаемые изменения
17. Особенности
• Уровни изолированности
– Read Committed
– Snapshot (Repeatable Read)
• Unsuccessful execution caused by system error
that does not preclude successful execution of
subsequent statements.
Read committed transaction cannot retrieve from
a change view.
– Подписка работает только в транзакции SNAPSHOT
18. • Если в таблице, отслеживаемой по подписке,
ничего не изменялось с момента получения
последней подписки, то
вы получите пустой результат операции!
• Select * from employee
<no rows>
• При экспериментах помните, что snapshot-
транзакция не показывает никаких сторонних
изменений.
23. Выборка конкретных изменений
• Select …
where <FIELD> IS [NOT] {CHANGED | INSERTED |
UPDATED | DELETED}
• select * from employee where last_name is
updated
• UPDATED – только тот столбец, который был
изменен
• INSERTED, DELETED – любой столбец
28. Поддержка ChangeViews в ISQL
• ISQL
• SHOW SUBSCRIPTIONS
• SHOW SUBSCRIPTION <name>
• SET CHANGES
• Включение показа изменений – добавляется
вывод дополнительного столбца <change> для
каждого столбца таблицы, где показывается
что было сделано со столбцом (same, update,
insert, delete)
29.
30. Новое в InterBase API
• Если изменения были – то при активной подписке
вы получите измененные строки. Однако понять, в
каких столбцах и что произошло, можно только в
компонентах прямого доступа, анализируя
XSQLVAR.SQLIND
• SQLIND_INSERT 1
• SQLIND_UPDATE 2
• SQLIND_DELETE 4
• SQLIND_CHANGE 8
• SQLIND_CHANGE_VIEW 32
31. Поддержка в компонентах
• Пока нет
– Будет в FireDAC Delphi XE8
• Для определения изменений столбца нужен доступ к XSQLVAR.sqlind
– sqlind содержит битовые флаги признаков изменений (см. ibase.h)
– Это значит, что обработка возможна только в компонентах прямого
доступа – IBX, FireDAC, …
• IBX - TIBSQL.Current.Vars[i].SqlVar.sqlind^;
• SQIIND and SQLIND_CHANGE_VIEW
– Это результат выдачи change_view
• SQLIND and
(SQLIND_CHANGE_VIEW or SQLIND_INSERT)
– Это результат выдачи change_view, запись вставлена
• …
32. Как это устроено
• При активных подписках удерживаются версии, которые нужны для показа
изменений
• Commit «сбрасывает» метку последних изменений
• Отключение пользователей или принудительный sweep не убирают
отслеживаемые изменения
2 update или delete
33. • Накопление версий ухудшает
производительность
• Насколько давние подписки требуется
хранить?
– Контроль rdb$subscribers.rdb$check_out_timestamp,
«сброс» подписки –
delete from rdb$subscribers
where rdb$subscriber_name = 'SYSDBA' and
rdb$subscription_name = 'EMPS‘
and rdb$destination = 'work3‘
• Накопленные изменения не переживают
backup/restore
34. • Как это применять?
– Получить изменения, сохранить в локальную
БД или кэш
– rdb$subscribers.rdb$check_out_timestamp
дата-время, с которого накоплены изменения
для конкретного подписчика
36. Проще, быстрее давать
качественный код
Гибкие средства создания и отладки для SQL-профессионалов
Предназначен для
•Разработчиков баз данных
•Бизнес-аналитики/отв.за данные
Преимущества
•Позволяет создавать быстрее качественный
SQL для разных платформ СУБД
•Поддержка всех платформ СУБД
•ISQL
•Visual Query Builder – мастер создания SQL
•Средства анализа кода (Code Analyst)
•Отладчик SQL
•Бесшовная интеграция с ведущими
коммерческими системами контроля
версий
Проблемы разработчиков БД
Расширение экосистемы
баз данных Качество кода
Циклы гибкой (Agile)
разработки
“Я использовал Rapid SQL для решения многих проблем на
разных платформах, и он всегда превосходил мои ожидания.
…Rapid SQL упрощает процесс написания серверного кода БД,
позволяя добиться лучшей производительности БД и с
легкостью выпускать высококачественные приложения,
работающие с БД.”
-Atos Origin, ведущая международная ИТ сервис-компания
37. Синхронизация схем и данных для разных сред баз данных
Синхронизация
баз данных
Отслеживание
изменений в БД
Пригодность к
аудиту БД и
контролю
соответствия
Быстрое внесение изменений в БД
•Создает скрипты изменений для
синхронизации выбранных объектов или
возврату в последнее состояние
•Полные знания по всем платформам СУБД
Обнаружить, отследить, учесть
•Сравнивает и синхронизирует данные
как в рамках одной, так и в разных БД
•Документирует важнейшие настройки
БД
Соответствие принятым
стандартам
•Архивы схем и настроек станут основой для
аудита и подтверждения соответствия
•Маскирование имперсонифицирует данные
Предназначен для Администраторов БД (DBA), Разработчиков БД
Уменьшение рисков при изменениях
38. DB Change Manager - данные
Сравнивает или
синхронизирует данные
таблиц БД
Сравнивает схемы, обеспечивает
сопоставление объектов,
маскирование данных
39. Полезные ссылки
• Описание
docwiki.embarcadero.com/InterBase/XE7/en/
What's_New_in_InterBase_XE7#Change_Views_Feature
• Interbase на сайте Embarcadero
http://www.embarcadero.com/ru/products/interbase
• InterBase Database: InterBase Labs и Tutorials
http://www.embarcadero.com/ru/products/interbase-labs
• Примеры использования
Newmont Mining, Protective Life, Catalina Marketing, Entrust, Microsoft:
http://www.embarcadero.com/our-customers/case-studies
• Поддержка
http://www.embarcadero.com/support
• Представительство
mailto: Russia.Info@embarcadero.com
Телефон: +7(495)7084393
В социальных сетях
Facebook: http://on.fb.me/WDUQqY
LinkedIn: http://linkd.in/WDVeWu
Google+: http://bit.ly/WDVViL
40. Спасибо за внимание!
Powering Today’s Applications and Data
Андрей Совцов
Embarcadero
Email: Andrew.Sovtsov@Embarcadero.com
Blog: http://embt.co/ASovtsov
Tel: +7(495)708 4393
Записи вебинаров: http://embt.co/MrAndySova
Блоги Embarcadero
(все языки):
http://community.embarcadero.com/index.php/blogs
+7(495) 953-13-34,
sales@ibase.ru, support@ibase.ru
Кузьменко Дмитрий
iBase.ru
Генеральный директор
IT-эксперт