NoSQL внутри SQL: приземленные вопросы практического применения / Дмитрий До...Ontico
Чтобы добиться от системы максимальной производительности, необходимо учитывать структуру данных, с которыми вы работаете. Проблемы возникают, если данные очень неоднородные, и один из способов решения этих проблем - использовать возможности современных реляционных БД для хранения данных в документо-ориентированной форме.
Этот подход имеет свои плюсы и минусы, которые будут обсуждаться в докладе на примерах PostgreSQL/MySQL/MariaDB etc.
Основные вопросы:
* конечно, производительность тех или иных решений и подходов - чего необходимо избегать, а чего бояться не стоит (бенчмарки для разных конфигураций и видов нагрузки);
* способы безболезненного переноса данных в такой формат.
NoSQL внутри SQL: приземленные вопросы практического применения / Дмитрий До...Ontico
Чтобы добиться от системы максимальной производительности, необходимо учитывать структуру данных, с которыми вы работаете. Проблемы возникают, если данные очень неоднородные, и один из способов решения этих проблем - использовать возможности современных реляционных БД для хранения данных в документо-ориентированной форме.
Этот подход имеет свои плюсы и минусы, которые будут обсуждаться в докладе на примерах PostgreSQL/MySQL/MariaDB etc.
Основные вопросы:
* конечно, производительность тех или иных решений и подходов - чего необходимо избегать, а чего бояться не стоит (бенчмарки для разных конфигураций и видов нагрузки);
* способы безболезненного переноса данных в такой формат.
Опыт разработки масштабируемого решения по хранению журналов в HadoopCUSTIS
Выступление Дмитрия Морозова, нашего ведущего специалиста по проектированию IT-инфраструктурных решений, на техническом семинаре «Hadoop на практике. Новые инструменты и проекты» (12 ноября 2014 года, Москва).
Практика миграции реляционных баз данных в экосистему HadoopYury Petrov
Слайды моего доклада: "Практика миграции реляционных баз данных в экосистему Hadoop"
В докладе я доказываю, что возможен полный отказ от реляционных баз данных в пользу экосистемы Hadoop. В мире (к сожалению не в России) эта тема уже перекраивает рынок, уже наносится удар по традиционным базам данных.
Скоро ожидаются скринкасты.
Если вы начинаете проект миграции - задавайте мне вопросы - я с удовольствием на них отвечу.
Приглашайте меня в качестве консультанта и архитектора - я помогу собрать команду, обосновать инвестиции и запустить проект.
Анализ и оценка систем адресации данных в современных ЭВМSergey Gerasimov
Часть операционной системы, которая «отвечает» за корректное хранение данных и предоставление доступа к ним пользователю и прикладным программам
Порядок, определяющий способ организации, хранения и именования данных на носителях информации ИТ-оборудования
Система адресации данных является одной из самых существенных составных частей файловой системы. Именно система адресации позволяет находить нужный файл среди множества как пустых, так и занятых блоков на диске.
Similar to О.В. Сухорослов "Распределенные хранилища данных" (20)
Предсказание оттока игроков из World of TanksYandex
Одна из наиболее часто возникающих задач в бизнес-аналитике для компаний — это предсказание оттока клиентов. Ведь если заранее знать, что клиент собирается уйти к конкуренту, его можно попытаться остановить. Задача будет рассмотрена на примере прогнозирования оттока игроков из World of Tanks.
Как принять/организовать работу по поисковой оптимизации сайта, Сергей Царик,...Yandex
Лекция Сергея Царика в Школе вебмастеров: «Как принять/организовать работу по поисковой оптимизации сайта».
https://academy.yandex.ru/events/webmasters_school/yawebm2015/
Основные этапы и методы поисковой оптимизации
Рассмотрим проработку стратегии продвижения, планирование ресурсов на проект, поймем как нужно прорабатывать семантическое ядро для продвижения, разберемся с очередностью всех работ.
Разложим по полочкам основные приемы оптимизации в связке с внутренними и внешними факторами ранжирования поисковых систем, а также в связке с поведенческими факторами и характеристиками. Разберемся с тем, что же должен делать оптимизатор для достижения топа.
Что должно включать в себя ТЗ на поисковую оптимизацию
Разберемся с основными блоками технического задания от оптимизатора, с тем, каким оно должно быть с точки зрения подачи информации и ее глубины.
Сравнение in-house подхода и агентства
Рассмотрим все «за» и «против» оптимизатора в штате компании и вне её.
На основе каких метрик нужно оценивать эффективность оптимизаторской работы
Выделим ключевые показатели эффективности работы оптимизатора, рассмотрим процесс их измерения, динамику, разберемся с возможными «миксами» и их связкой с мотивацией подрядчика.
Структурированные данные, Юлия Тихоход, лекция в Школе вебмастеров ЯндексаYandex
Лекция Юлия Тихоход в Школе вебмастеров: «Структурированные данные на поиске»
https://academy.yandex.ru/events/webmasters_school/yawebm2015/
Что такое микроразметка и в чём её польза
Что такое микроразметка (семантическая разметка, семантическая микроразметка) и кому она нужна. Очень кратко — всё, что я знаю о применении семантической разметки поисковыми системами и другими веб-сервисами.
Передача данных в машиночитаемом виде
Какие ещё есть способы передать данные о сайте поисковым системам кроме микроразметки, особенности разных способов. Что бывает с плохими вебмастерами, которые пытаются обмануть поисковые системы и передать неверные данные.
Типы разметки
Из чего состоит микроразметка, какие бывают словари и синтаксисы. Популярные сочетания словарей и синтаксисов, как правильно выбирать нужную комбинацию для своего сайта.
Передача данных об интернет-магазине
Разбор семантической разметки: что в принципе доступно для разметки в интернет-магазине, что это даёт, а что можно не размечать вовсе.
Проверка правильности микроразаметки
Ошибки в микроразметке, способы их обнаружения и исправления. Популярные валидаторы микроразметки. Какие ошибки непременно нужно исправлять, а что можно игнорировать.
Представление сайта в поиске, Сергей Лысенко, лекция в Школе вебмастеров ЯндексаYandex
Лекция Сергея Лысенко в Школе вебмастеров: «Представление сайта в поиске»
https://academy.yandex.ru/events/webmasters_school/yawebm2015/
Основные элементы сниппетов: как влиять на их формирование
Как по внешнему виду и содержанию визитки судят, стоит ли «связываться», так и по представлению сайта на странице выдачи пользователи решают, стоит ли переходить на сайт. Как изменить представление сайта в выдаче поисковых систем? Что может повлиять на CTR и что для этого нужно сделать? Рассмотрим фавиконки, навигационные цепочки, быстрые ссылки и многое, многое другое.
Зачем нам заголовок: как им управлять
Что должно быть в заголовке, а чего уж точно не стоит делать. Как избавиться от мусора и расставить акценты. И как это скажется на представлении сайта в поиске.
Основной контент аннотации и мета-описания: что нам они дают
Сниппет — зачем он нужен? Как обрабатываются данные для аннотаций? Что в сниппете помогает, а что мешает пользователю сориентироваться? Как подсказать поисковой системе, что выводить в сниппете? От Open Graf до schema.org. Инструменты, возможности, рекомендации.
Плохие методы продвижения сайта, Екатерины Гладких, лекция в Школе вебмастеро...Yandex
Лекция Екатерины Гладких в Школе вебмастеров: «Плохие методы продвижения сайта»
https://academy.yandex.ru/events/webmasters_school/yawebm2015/
Как завязывают с портянками
Как использовать wordstat, чтобы превратить текст в SEO-портянку. Как Яндекс определяет текстовый спам и какие ограничения могут быть применены к сайтам, злоупотребляющим ключевыми словами.
Эффектное размещение SEO-ссылок
Какие бывают SEO-ссылки и как они классифицируются в базе Яндекса. В чём отличие SEO-ссылок от рекламы. Как размещать SEO-ссылки наиболее эффектно. Методы борьбы против ссылочного спама – АГС и Минусинск. Снятие ссылок.
Поведенческие факторы, медитативные практики
Популярные сервисы накрутки: как это работает и как это не работает. Методы накрутки и методы борьбы с мошенничеством. Примеры пользовательских сессий и кто на самом деле посещает ваш сайт. Как выйти из-под санкций за накрутку поведенческих факторов.
Основные принципы ранжирования, Сергей Царик и Антон Роменский, лекция в Школ...Yandex
Лекция Сергея Царика и Антона Роменского в Школе вебмастеров: «Основные принципы ранжирования»
https://academy.yandex.ru/events/webmasters_school/yawebm2015/
Как работает поиск
При запросе пользователя к поисковой системе происходит множество процессов, которые позволяют дать наиболее релевантный ответ. Рассмотрим основные механизмы формирования выдачи: формулы, Матрикснет, персонализацию и обновления.
Что учитывается при ранжировании сайтов
Так как сайты разные и по-разному решают пользовательские задачи, при ранжировании поисковой системе нужно учитывать множество факторов. Поговорим о том, что обязательно должно быть на сайте для правильной индексации.
Ещё о факторах ранжирования
Какой контент действительно важен и как его правильно представить. Для правильного ранжирования сайта важно разобраться с его региональной привязкой. Разберёмся, какой регион присваивать сайту и как сделать это правильно.
Реальный кейс долгосрочной работы над позициями
Посмотрим на реальном примере, как изменялись основные жизненные характеристики (трафик, конверсии) сайта на пути в топ выдачи поисковых систем.
Основные принципы индексирования сайта, Александр Смирнов, лекция в Школе веб...Yandex
Лекция Александра Смирнова в Школе вебмастеров: «Основные принципы индексирования сайта».
https://academy.yandex.ru/events/webmasters_school/yawebm2015/
Как поиск находит страницу, её путь до появления в поиске
Поисковые системы постоянно собирают информацию о страницах в интернете. Как же это происходит и как добавить страницы своего сайта в поиск? Проверка индексирования сайта.
Как управлять роботом (зеркала, sitemap, robots.txt)
Множество сайтов в интернете доступны сразу по нескольким адресам. Как указать поисковому роботу на основной и как скорректировать индексирование?
Особенности индексирования
Современные сайты используют различные технологии в своей работе. Рассмотрим, как настроить их правильно и сделать контент доступным для робота.
Как улучшить индексирование (дубли, HTTP-ответ, удаление из поиска)
В поиск попадают различные страницы, которые известны роботу. Какие нужны, а какие нет? Как повлиять на их индексирование?
Мобильное приложение: как и зачем, Александр Лукин, лекция в Школе вебмастеро...Yandex
Лекция Александра Лукина в Школе вебмастеров: «Мобильное приложение: как и зачем»
https://academy.yandex.ru/events/webmasters_school/yawebm2015/
Проектирование. Быть или не быть
Обсудим обоснование для разработки мобильного приложения — какую ценность оно может принести для проекта и бизнеса. Определим основные типы приложений и сценарии использования. Рассмотрим основные технологии и выбор оптимальных для конкретных задач. ТЗ — как оценить и какие особенности необходимо учесть.
Разработка. Важные детали
На что обратить внимание на этапе разработки и тестирования, заметки по специфике мобильных экосистем. Выбираем арсенал SDK для всестороннего анализа проекта в полёте.
Публикация и продвижение
Кратко рассмотрим специфику Google Play и AppStore. Проведём экскурс в мир мобильного маркетинга, подчеркнём сходства с вебом и отличия от него. Рассмотрим ключевые метрики для анализа продукта и процесса продвижения, а также способы их повышения.
Сайты на мобильных устройствах, Олег Ножичкин, лекция в Школе вебмастеров Янд...Yandex
Лекция Олега Ножичкина в Школе вебмастеров: «Сайты на мобильных устройствах»
https://academy.yandex.ru/events/webmasters_school/yawebm2015/
Статистика и тренды по мобильному интернету
Основные показатели мобильного интернет-рынка. Тенденции роста мобильной аудитории.
Новые алгоритмы ранжирования поисковых систем
Адаптация сайта к мобильным пользователям и её влияние на позиции в поисковой выдаче.
Возможности для бизнеса в мобильном вебе
Мобильный сайт позволяет воспользоваться дополнительными возможностями взаимодействия с пользователем. Рассмотрим конкретные примеры.
Мобильный сайт и приложение — в чём разница
Чем отличается мобильное приложение от мобильно сайта. Какие преимущества и недостатки у каждого варианта.
Представление сайтов на мобильных устройствах
Адаптивные сайты. Мобильные сайты. Сайты для десктопа. Чем они отличаются, какие преимущества у каждого типа и нужно ли переключаться между мобильной и десктоп-версиями?
Удобный мобильный сайт для пользователя
Поведение пользователей на мобильном сайте. Отличия от десктопа, достижение целей и простые правила увеличения конверсии.
Специфика разработки мобильного сайта
Особенности проектирования, разработки и тестирования сайтов.
Инструменты для разработки мобильных сайтов
Готовые инструменты для проектирования и тестирования. Примеры фреймворков.
Качественная аналитика сайта, Юрий Батиевский, лекция в Школе вебмастеров Янд...Yandex
Лекция Юрия Батиевского в Школе вебмастеров: «Качественная аналитика сайта»
https://academy.yandex.ru/events/webmasters_school/yawebm2015/
Что мы хотим от аналитики сайта
На какие вопросы должна отвечать аналитика сайта. Как аналитика сайта связана с аналитикой бизнеса. На какие блоки можно поделить аналитику онлайн-процессов. Какой должна быть идеальная аналитическая система.
Анализ общих показателей бизнеса
Как построить систему аналитики бизнеса в интернете. Ключевые показатели эффективности (KPI). Построение воронки продаж. Business Intelligence — сквозная аналитика всех процессов.
Обзор инструментов для анализа сайта и аудитории
Яндекс.Метрика и Google Analytics как основа веб-аналитики. Инструменты для веб-мастеров. Инструменты для анализа действий пользователей (Kiss-metrics, Woopra, Mixpanel). Системы для подсчета целевых действий, CPA и ROMI.
Анализ каналов привлечения клиентов
Как анализировать источники трафика. Популярные инструменты для анализа.
Пройти тест по теме
Процесс развертывания системы аналитики сайта
Подготовка к установке систем веб-аналитики. Тонкости установки и настройки трекеров. Подключение коллтрекинга и дополнительных инструментов фиксации целевых действий. Настройка пользовательских сценариев. Пример по анализу пользовательского сценария.
Что можно и что нужно измерять на сайте, Петр Аброськин, лекция в Школе вебма...Yandex
Лекция Петра Аброськина в Школе вебмастеров: «Что можно и что нужно измерять на сайте».
https://academy.yandex.ru/events/webmasters_school/yawebm2015/
Базовые принципы веб-аналитики
Как работает веб-аналитика и какие подводные камни есть в учёте и анализе данных. Как правильно работать с данными.
Основные метрики и термины
Посетители, визиты, глубина просмотра, время на сайте — какие метрики важны и чем они отличаются.
Как выбрать правильный KPI
Самый важный этап в веб-аналитике и продвижении сайта. Какие цели выбрать интернет-магазину, сайту услуг, контентному проекту и т.д.
Ключевые группы отчетов и применение знаний на практике
Семь главных типов отчётов для бизнеса. Анализ контекстной рекламы, SEO и контента сайта — на конкретных примерах.
Как правильно поставить ТЗ на создание сайта, Алексей Бородкин, лекция в Школ...Yandex
Лекция Алексея Бородкина в Школе вебмастеров: «Как правильно поставить ТЗ на создание сайта».
https://academy.yandex.ru/events/webmasters_school/yawebm2015/
ТЗ: две буквы с большим потенциалом
Что такое техническое задание. Какое место оно занимает в веб-разработке. Какие цели преследует. И каким требованиям оно должно отвечать.
Что нужно сделать, прежде чем садиться за ТЗ
Зачем нужна подготовка к написанию ТЗ. Какую информацию нужно собрать и как выстроить этот процесс. На каком этапе веб-разработки нужно писать ТЗ — и что будет, если этот момент упустить. Какое отношение имеют к ТЗ прототипы, пользовательские истории и прочие инструменты проектирования.
Хорошее ТЗ
Как соединить в один документ описание интерфейсов, структуру данных и много чего ещё. Структура правильного, хорошего ТЗ с подробным разбором каждого пункта. С какой стороны приступать и как эффективнее всего выстроить работу.
Кто должен писать ТЗ
Кто может написать хорошее ТЗ. Где найти такого человека и как встроить его в общие процессы. Что делать, если ТЗ пишет сам заказчик.
Плохое ТЗ
Популярные ошибки. Чем они ужасны и как их избежать.
Жизнь с ТЗ
По какой схеме нужно согласовывать ТЗ. Как применять его в дальнейшей работе. Кому не нужно показывать ТЗ ни при каких обстоятельствах. Что делать, если ТЗ никому не нравится.
ТЗ по ГОСТ: ад на Земле
Краткая история развития ТЗ со времён Брежнева и до наших дней. Почему я старательно избегаю слова «ТЗ». Почему вы должны нервно вздрагивать при слове «ГОСТ». Что делать, если вы работаете с госзаказчиком.
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровYandex
Лекция Петра Волкова в Школе вебмастеров: «Как защитить свой сайт».
https://academy.yandex.ru/events/webmasters_school/yawebm2015/
Актуальные типы угроз и динамика их развития
Компрометация сервера и её последствия. Распределённые атаки типа «отказ в обслуживании». Подмена или добавление рекламы на стороне клиента. Атаки, направленные на пользователей. Проблемы, связанные со внешним содержимым.
Управление рисками безопасности веб-сайтов
Разные типы сайтов подвержены разным типам рисков информационной безопасности. Понимание целей и подходов злоумылшенников как ключ к эффективному снижению рисков. Методы монетизации атак на сайты.
Доступный инструментарий и методики для обеспечения безопасности
Открытые инструменты форензики для типовых и сложных проектов. Системы обнаружения вторжений, подходы к проектированию безопасности в архитектуре и процессах.
Как правильно составить структуру сайта, Дмитрий Сатин, лекция в Школе вебмас...Yandex
Лекция Дмитрия Сатина в Школе вебмастеров: «Как правильно составить структуру сайта».
https://academy.yandex.ru/events/webmasters_school/yawebm2015/
Структура сайта, ориентированная на человека; построение структуры, карточная сортировка
Содержимое сайтов часто организовано так, как кажется удобным разработчику или контент-менеджеру компании. Чаще всего такие структуры неудобны для реальных посетителей, потому что не совпадают с их знаниями, не поясняют, как устроен материал, и не помогают найти желаемое. Структура, ориентированная на пользователя, повышает вероятность того, что посетители найдут нужную информацию или товар и сделают это быстро.
Стройте структуру, исходя из пользовательских сценариев. Выделение на сайте разделов, соответствующих структуре компании или схеме процесса закупки, как правило, усложняет навигацию для пользователя. Правильная структура учитывает уровень знаний покупателя и использует понятные ему термины и способы группировки.
Разные типы структур, средства навигации, дальнейший поиск информации на странице
Структуры сайтов, на которых ищут что-то определённое, отличаются от тех, что используются на сайтах, посетители которых ещё не уверены, что именно они хотят или как называется нужная вещь. Строгие структуры — например, организация по наименованию товара, производителю, — предполагают один способ группировки. При нестрогой организации данные можно группировать по теме, по жизненной ситуации и так далее. Используйте средства навигации, которые помогают понять, как организован материал. Решая, какой будет визуальная реализация навигации на сайте, необходимо учитывать количество разделов и связи �
Технические особенности создания сайта, Дмитрий Васильева, лекция в Школе веб...Yandex
Лекция Дмитрия Васильева в Школе вебмастеров: «Технические особенности создания сайта».
https://academy.yandex.ru/events/webmasters_school/yawebm2015/
Сайт — расплывчатое понятие
Раньше под словом «сайт» понимался набор HTML-страниц, расположенных в домене второго или третьего уровня. Появление социальных сетей размыло это понятие.
Как выбрать домен
Различные варианты, и какой из них подойдёт именно вашему сайту: доменные зоны, читаемые и нечитаемые домены, кириллица и латиница.
Подходы к созданию сайтов
Первые сайты делались на чистом HTML. Сейчас такой способ ещё встречается, но подавляющее большинство веб-страниц создаются при помощи CMS, фреймворков, конструкторов.
Составные сущности: структура, макеты дизайна, интерактивные элементы, контент, система прав. Размещение сайта на хостинге. Российские и зарубежные, дорогие и дешевые, облачные и традиционные провайдеры. Кратко о тонкостях взаимодействия с ними.
Что такое HTTPS
Всё более популярный безопасный протокол доступа к сайту. Нужен ли он вам и в каких случаях. Как выбрать платформу для сайта, основные системы управления сайтом (CMS) и конструкторы.
Сайт после запуска
Сайты создаются с конкретной целью, обычно связанной с получением дохода. Как контент сайта и его технические характеристики напрямую могут влиять на бизнес-эффективность.
Конструкторы для отдельных элементов сайта, Елена Першина, лекция в Школе веб...Yandex
Лекция Елены Першиной в Школе вебмастеров: «Конструкторы для отдельных элементов сайта».
https://academy.yandex.ru/events/webmasters_school/yawebm2015/
О пользе тех или иных технологий
Взгляд в будущее, короткий обзор других полезных технологий и «опасностей», которые подстерегают на пути к правильному их выбору.
Как выбрать поиск для сайта
Поиск для сайта — важный инструмент навигации. Чтобы оценить качество поиска по своему сайту, посмотрите на количество уходов со страницы результатов. Полнота, скорость индексирования, обработка запросов (исправление ошибок, опечаток, неправильной раскладки) — без этого невозможно представить качественный поиск.
Как выбрать карты для сайта
Уход посетителя с сайта на «большие» Яндекс.Карты за точной информацией об организации может обернуться потерей клиента, который уже был готов к покупке. Чтобы этого не допустить, лучше сделать интерактивную карту прямо на сайте.
Автоматизация оплаты на сайте
Люди привыкают платить картой, сегодня даже уличные киоски принимают их. Поэтому многим посетителям кажется «подозрительным» интернет-магазин, в котором недоступны электронные платежи. Начать приём банковских карт в онлайне очень просто, главное выбрать для этого подходящую технологию.
Перевод важных страниц
На каких языках говорит ваша аудитория, много ли у вас посетителей из-за рубежа? Ответы на эти вопросы даст Яндекс.Метрика. Именно она поможет оценить, нужно ли тратиться на профессионального переводчика и готовить отдельные описания товаров или новости на других языках. Во многих случаях для совершения покупки достаточно и простого машинного перевода. Узнайте, как его настроить, чтобы ключевые разделы сайта автоматически переводились для иностранных посетителей.
Социальная интеграция
Как заставить пользователей говорить о себе в социальных сетях? В первую очередь нужно сделать хороший продукт или услугу, но и без удобного инструмента для «шаринга» в соцсетях — никуда. Рекомендации о том, как выбрать и установить такой инструмент к себе на сайт.
Контент для интернет-магазинов, Катерина Ерошина, лекция в Школе вебмастеров ...Yandex
Лекция Катерины Ерошиной в Школе вебмастеров: «Контент для интернет-магазинов».
https://academy.yandex.ru/events/webmasters_school/yawebm2015/
Виды контента для интернет-магазинов
Основные страницы, карточки товаров, каталог в целом. Письма покупателям. Статьи для интернет-магазина.
Основные сервисные страницы: что нужно знать покупателю
О страницах доставки, оплаты, контактов, условий работы.
Страница товара интернет-магазина: какой нужен текст, чтобы товар нашли
Признаки товаров. Сниппеты товарных позиций. Когда текст не нужен вообще. Постоянная и техническая информация на карточке.
Блог и внешние публикации интернет-магазина
О чем писать, чтобы подогреть интерес к магазину. Сторителлинг. UGC: методы вовлечения (кратко).
Персонализация интернет-магазина: стать ближе к покупателю
Красивый пример личного бренда директора магазина.
Копирайтинг для интернет-магазина: на чём можно и нельзя экономить
Что делать, если у вас 100 000 товарных позиций и они постоянно меняются.
Хорошее ТЗ копирайтеру для наполнения интернет-магазина
Что должен знать копирайтер, чтобы не писать ерунду.
Как оценить работу копирайтера
Стандартные проверки. Контроль качества текста средствами аналитики.
Как написать хороший текст для сайта, Катерина Ерошина, лекция в Школе вебмас...Yandex
Лекция Катерины Ерошиной в Школе вебмастеров: «Как написать хороший текст для сайта».
https://academy.yandex.ru/events/webmasters_school/yawebm2015/
Назначение и типы текстов на сайте и вне его
Цель текста — влиять на поведение пользователя. Самое простое — информировать, самое сложное — привести к покупке. Виды текстов для внешних публикаций. Белые книги и другие способы подтвердить экспертизу.
Контент-план для наполнения, развития сайта и внешних публикаций
Как проектировать контент для нового сайта. Как наращивать информационную массу сайта. Внешние контакты с потребителем.
Разные уровни вовлечения: информируем, продаём, помогаем
Пройти по пути покупателя, выдавать информацию, необходимую для совершения следующего шага. Ловушки на этом пути.
Информационный стиль: применение с пониманием
Чистить текст без фанатизма. Эмоциональное вовлечение. Рациональное обоснование.
Структура и вёрстка
Заголовки и подзаголовки, списки, абзацы, иерархия подачи информации.
SEO-аспекты и LSI-копирайтинг
Понимание ценности ключей. Зачем копирайтеру нужно семантическое ядро.
Оценка качества текста (чеклист)
Уникальность, фактическая достоверность, соответствие целям, информационная плотность, грамотность.
Usability и дизайн - как не помешать пользователю, Алексей Иванов, лекция в Ш...Yandex
Лекция Алексея Иванова в Школе вебмастеров: «Usability и дизайн: как не помешать пользователю».
https://academy.yandex.ru/events/webmasters_school/yawebm2015/
Что такое юзабилити и почему оно важно
Поведение пользователей на сайте и достижение ими запланированных целей зависит не только от контента, но и от удобства сайта.
Информационное и функциональное наполнение сайта
Перед созданием сайта нужно правильно определить, какая информация и какой функционал должны быть на сайте. При этом нужно исходить не из того, что у вас есть, а из того, что будет нужно будущим посетителям вашего сайта.
Проектирование входных страниц
В зависимости от целей сайта и источников посетителей нужно сформулировать требования к входным страницам сайта и их содержанию.
Сценарии поведения пользователя
Для правильного распределения информации нужно описать сценарии взаимодействия с сайтом для разных групп посетителей. Рассмотрим методы совмещения разных сценариев на одном сайте.
Пройти тест по теме
Управление конверсией
В большинстве случаев мы ждем от посетителя сайта какого-то целевого действия. Это может быть регистрация, отправка заявки, звонок или что-то ещё. Вы увидите способы мотивации посетителей к совершению целевого действия для различных типов сайтов.
Пройти тест по теме
Основные принципы распределения информации
В рамках этого блока вы увидите, как нужно распределять информацию на странице, чтобы посетители увидели всё, что вы хотите им показать.
Мобильная версия сайта и принципы юзабилити
Всё больше посетителей приходят на сайт с мобильных устройств. Рассмотрим основные особенности взаимодействия с информацией с мобильного устройства и подходы к адаптации сайта под них.
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...Yandex
Лекция Алексея Иванова в Школе вебмастеров Яндекса: «Сайт. Зачем он и каким должен быть».
https://academy.yandex.ru/events/webmasters_school/yawebm2015/
Типы сайтов и потребности аудитории
В зависимости от решаемых задач, сайты можно разделить на несколько характерных типов с разными функциями и контентом. Перед созданием сайта важно понять, чего ждут посетители и какими хотят видеть веб-страницы. При этом на один и тот же сайт может попадать разная аудитория, которая ведёт себя по-разному и каждая имеет свои потребности. Для каждого сегмента нужно разработать отдельные сценарии взаимодействия с информацией на вашей площадке.
Сайт с точки зрения бизнеса
Чаще всего сайт создается для решения конкретных бизнес-задач. Рассмотрим различные типы монетизации сайтов и особенности каждого из них.
Основные показатели и методы измерения
Одно из главных преимуществ цифровых каналов — детальная аналитика взаимодействия посетителей с сайтом. В данном блоке рассмотрим основные инструменты измерения, ключевые показатели сайта, на которые нужно обращать внимание, и подходы к интерпретации полученных данных для принятия решений.
Cайт. Зачем он и каким должен быть, Алексей Иванов, лекция в Школе вебмастеро...
О.В. Сухорослов "Распределенные хранилища данных"
1. 11 Распределенные хранилища данных
О.В. Сухорослов
oleg.sukhoroslov@gmail.com
11.05.2012
О.В. Сухорослов 11 Распределенные хранилища данных
() 11.05.2012 1 / 49
2. План лекции
Введение
HBase
Cassandra
О.В. Сухорослов 11 Распределенные хранилища данных
() 11.05.2012 2 / 49
3. Реляционные СУБД
Фиксированная схема, построчное хранение, ACID, SQL,
абстрагирование от уровня хранения данных
Изначально не ориентированы на работу с большими объемами
данных в распределенном режиме (+ с высокими скоростями
чтения-записи)
О.В. Сухорослов 11 Распределенные хранилища данных
() 11.05.2012 3 / 49
4. Реляционные СУБД
Фиксированная схема, построчное хранение, ACID, SQL,
абстрагирование от уровня хранения данных
Изначально не ориентированы на работу с большими объемами
данных в распределенном режиме (+ с высокими скоростями
чтения-записи)
Решения по репликации и распределению существующих РСУБД
Попытки исправить ситуацию задним числом
Сложны в установке и сопровождении
Статическое разбиение данных
О.В. Сухорослов 11 Распределенные хранилища данных
() 11.05.2012 3 / 49
5. Реляционные СУБД
Фиксированная схема, построчное хранение, ACID, SQL,
абстрагирование от уровня хранения данных
Изначально не ориентированы на работу с большими объемами
данных в распределенном режиме (+ с высокими скоростями
чтения-записи)
Решения по репликации и распределению существующих РСУБД
Попытки исправить ситуацию задним числом
Сложны в установке и сопровождении
Статическое разбиение данных
Большой частью функциональности приходится жертвовать
Join, сложные запросы, триггеры, представления, внешние ключи
и контроль ссылочной целостности
Становятся очень дорогими в распределенном режиме или вообще
не работают
Не удовлетворяют высоким требованиям по скорости
чтения-записи
О.В. Сухорослов 11 Распределенные хранилища данных
() 11.05.2012 3 / 49
6. Альтернативные решения (aka NoSQL1 )
Изначально имеют распределенную архитектуру, ориентированную
на горизонтальное масштабирование путем добавления новых
узлов
Нарушают классические принципы (нормализация данных,
фиксированная схема, ACID) и отказываются от части
функциональности РСУБД (join, вторичные индексы)
Для большого класса задач позволяют делать то, чего не могут
РСУБД
Хранить и обеспечивать быстрый, масштабируемый доступ к очень
большим таблицам на кластерах из массовых серверов
1
http://en.wikipedia.org/wiki/NoSQL_(concept)
О.В. Сухорослов 11 Распределенные хранилища данных
() 11.05.2012 4 / 49
7. Пример: webtable
Таблица, хранящая загруженные поисковым роботом страницы и
их атрибуты
Количество записей в таблице - миллиарды
Ключом является URL страницы
Атрибуты - загруженное содержание, язык, MIME-тип,
обработанный текст, ссылки, изображения...
Работа с данными таблицы
Массовая оффлайн обработка и аналитика (batch, MapReduce)
Запись данных роботом (random access)
Выдача закэшированного содержимого страниц поиском (random
access)
О.В. Сухорослов 11 Распределенные хранилища данных
() 11.05.2012 5 / 49
10. HBase
Распределенная “база данных” для Hadoop
Ориентирована на случайный доступ к большим данным в режиме
реального времени
Реализована по образу Google Bigtable
Работает поверх HDFS
Проект Apache (май 2010)
http://hbase.apache.org/
Пользователи
Facebook, Twitter, Yahoo! ...
О.В. Сухорослов 11 Распределенные хранилища данных
() 11.05.2012 8 / 49
11. Точнее...
Distributed,
Versioned,
Column-Oriented,
High-Availability,
High-Performance
Store
О.В. Сухорослов 11 Распределенные хранилища данных
() 11.05.2012 9 / 49
12. Концептуальная модель данных
Поименованные таблицы, в строках которых хранятся данные
О.В. Сухорослов 11 Распределенные хранилища данных
() 11.05.2012 10 / 49
13. Концептуальная модель данных
Поименованные таблицы, в строках которых хранятся данные
Каждая строка таблицы имеет
Ключ (primary key)
Произвольный набор колонок
О.В. Сухорослов 11 Распределенные хранилища данных
() 11.05.2012 10 / 49
14. Концептуальная модель данных
Поименованные таблицы, в строках которых хранятся данные
Каждая строка таблицы имеет
Ключ (primary key)
Произвольный набор колонок
Колонки сгруппированы в “семейства” (column family)
Семейства колонок должны быть заданы при создании таблицы
Все колонки семейства имеют общий префикс
content:data, content:language, content:type
Новые колонки внутри семейства можно создавать в любой момент
О.В. Сухорослов 11 Распределенные хранилища данных
() 11.05.2012 10 / 49
15. Концептуальная модель данных
Поименованные таблицы, в строках которых хранятся данные
Каждая строка таблицы имеет
Ключ (primary key)
Произвольный набор колонок
Колонки сгруппированы в “семейства” (column family)
Семейства колонок должны быть заданы при создании таблицы
Все колонки семейства имеют общий префикс
content:data, content:language, content:type
Новые колонки внутри семейства можно создавать в любой момент
Внутри ячеек таблицы хранятся данные
Поддерживается хранение несколько версий данных
По умолчанию версия идентифицируется с помощью времени
записи (timestamp)
О.В. Сухорослов 11 Распределенные хранилища данных
() 11.05.2012 10 / 49
17. Физическая модель данных
Каждая ячейка таблицы хранится в виде
(table, row, family:column, timestamp) -> data
Пустые ячейки не хранятся
Содержимое ячейки является просто массивом байт
Нет встроенных типов данных
О.В. Сухорослов 11 Распределенные хранилища данных
() 11.05.2012 12 / 49
18. Физическая модель данных
Каждая ячейка таблицы хранится в виде
(table, row, family:column, timestamp) -> data
Пустые ячейки не хранятся
Содержимое ячейки является просто массивом байт
Нет встроенных типов данных
Строки таблицы отсортированы по ключу
О.В. Сухорослов 11 Распределенные хранилища данных
() 11.05.2012 12 / 49
19. Физическая модель данных
Каждая ячейка таблицы хранится в виде
(table, row, family:column, timestamp) -> data
Пустые ячейки не хранятся
Содержимое ячейки является просто массивом байт
Нет встроенных типов данных
Строки таблицы отсортированы по ключу
Строки таблицы разбиты вертикально на семейства колонок
Данные семейств колонок хранятся вместе (непрерывно на диске),
в отсортированном порядке по rowid, column, timestamp
О.В. Сухорослов 11 Распределенные хранилища данных
() 11.05.2012 12 / 49
20. Физическая модель данных
О.В. Сухорослов 11 Распределенные хранилища данных
() 11.05.2012 13 / 49
21. Структура данных
1 SortedMap (
2 RowKey , List (
3 SortedMap (
4 Column , List (
5 Value , Timestamp
6 )
7 )
8 )
9 )
О.В. Сухорослов 11 Распределенные хранилища данных
() 11.05.2012 14 / 49
25. Распределение данных в HBase
Разбиение данных
Таблицы разбиваются горизонтально на регионы
[startkey , endkey )
В самом начале таблица состоит из одного региона
По мере увеличения размера таблицы происходит автоматическое
разбиение данных на новые регионы
Регионы распределяются между серверами HBase-кластера
Репликация данных
Данные регионов хранятся и реплицируются в HDFS
О.В. Сухорослов 11 Распределенные хранилища данных
() 11.05.2012 18 / 49
28. Доступ к данным
Создание и удаление таблиц, колонок
Чтение данных (Get, Scan)
По ключу: все или определенные колонки для строки с данным
ключом
По времени: самое позднее значение, определенный момент
времени, N значений, все значения
По диапазону: итератор по строкам (Scanner)
Начальный и конечный ключи, набор колонок, фильтр
Запись данных (Put)
Атомарные изменения одной строки (row lock)
Multi-row locking (new)
О.В. Сухорослов 11 Распределенные хранилища данных
() 11.05.2012 21 / 49
30. HBase Shell
1 hadoop2 -00:~ $ hbase shell
2 HBase Shell ; enter ’ help < RETURN > ’ for list of supported commands .
3 Type " exit < RETURN >" to leave the HBase Shell
4 Version 0.90.1 - cdh3u0 , r , Fri Mar 25 16:10:51 PDT 2011
5
6 hbase ( main ):001:0 > create ’ test ’ , ’ data ’
7 0 row ( s ) in 12.5240 seconds
8
9 hbase ( main ):002:0 > list
10 TABLE
11 test
12 1 row ( s ) in 0.0390 seconds
13
14 hbase ( main ):003:0 > put ’ test ’ , ’ row1 ’ , ’ data :1 ’ , ’ value1 ’
15 0 row ( s ) in 0.1270 seconds
16
17 hbase ( main ):004:0 > put ’ test ’ , ’ row2 ’ , ’ data :2 ’ , ’ value2 ’
18 0 row ( s ) in 0.0360 seconds
19
20 hbase ( main ):005:0 > put ’ test ’ , ’ row3 ’ , ’ data :3 ’ , ’ value3 ’
21 0 row ( s ) in 0.0310 seconds
О.В. Сухорослов 11 Распределенные хранилища данных
() 11.05.2012 23 / 49
31. HBase Shell
1 hbase ( main ):006:0 > scan ’ test ’
2 ROW COLUMN + CELL
3 row1 column = data :1 , timestamp =1303416932470 , value = value1
4 row2 column = data :2 , timestamp =1303416939804 , value = value2
5 row3 column = data :3 , timestamp =1303416945399 , value = value3
6 3 row ( s ) in 0.2130 seconds
7
8 hbase ( main ):007:0 > disable ’ test ’
9 0 row ( s ) in 12.1800 seconds
10
11 hbase ( main ):008:0 > drop ’ test ’
12 0 row ( s ) in 1.5430 seconds
13
14 hbase ( main ):009:0 > exit
О.В. Сухорослов 11 Распределенные хранилища данных
() 11.05.2012 24 / 49
32. Java API (org.apache.hadoop.hbase.client)
1 public class ExampleClient {
2 public static void main ( String [] args ) throws IOException {
3 Configuration config = HBa se Co nfi gura tion . create ();
4
5 // Create table
6 HBaseAdmin admin = new HBaseAdmin ( config );
7 HTableDescriptor htd = new HTableDescriptor ( " test " );
8 HCol umnDescri ptor hcd = new HColumnDescriptor ( " data " );
9 htd . addFamily ( hcd );
10 admin . createTable ( htd );
11 byte [] tablename = htd . getName ();
О.В. Сухорослов 11 Распределенные хранилища данных
() 11.05.2012 25 / 49
33. Java API (org.apache.hadoop.hbase.client)
1 // Run some operations -- a put , a get , and a scan
2 HTable table = new HTable ( config , tablename );
3 byte [] row1 = Bytes . toBytes ( " row1 " );
4 Put p1 = new Put ( row1 );
5 p1 . add ( Bytes . toBytes ( " data " ) , Bytes . toBytes ( " 1 " ) ,
6 Bytes . toBytes ( " value1 " ));
7 table . put ( p1 );
8 Get g = new Get ( row1 );
9 Result result = table . get ( g );
10 System . out . println ( " Get : " + result );
11 Scan scan = new Scan ();
12 ResultScanner scanner = table . getScanner ( scan );
13 try {
14 for ( Result scannerResult : scanner ) {
15 System . out . println ( " Scan : " + scannerResult );
16 }
17 } finally {
18 scanner . close ();
19 }
20
21 // Drop the table
22 admin . disableTable ( tablename );
23 admin . deleteTable ( tablename );
24 }
25 }
О.В. Сухорослов 11 Распределенные хранилища данных
() 11.05.2012 26 / 49
34. HBase и Hadoop MapReduce
Пакет org.apache.hadoop.hbase.mapreduce
Форматы данных
TableInputFormat
один map на каждый регион таблицы
TableOutputFormat
Базовые классы Map и Reduce
TableMapper
TableReducer
Утилита TableMapReduceUtil
Примеры использования
HBASE_DIST/src/examples/mapreduce
CellCounter4
4
http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/mapreduce/CellCounter.java
О.В. Сухорослов 11 Распределенные хранилища данных
() 11.05.2012 27 / 49
35. HBase vs СУБД
СУБД HBase
Data layout Row-oriented Column-oriented
Транзакции Multi-row ACID Single row only
Язык запросов SQL get/put/scan/...
Индексы Произвольные колонки Ключи записей
Максимальный объем Терабайты 1PB
Чтение/Запись 1K запросов/сек 1M запросов/сек
О.В. Сухорослов 11 Распределенные хранилища данных
() 11.05.2012 28 / 49
36. HBase vs HDFS?
О.В. Сухорослов 11 Распределенные хранилища данных
() 11.05.2012 29 / 49
37. Область применения HBase
Да
Random read/write
Большое кол-во операций/сек + большой объем данных
Часто повторяющиеся запросы
Нет
Append + read all data
Уникальные запросы (ad-hoc analytics)
Данные могут быть размещены на одном сервере
О.В. Сухорослов 11 Распределенные хранилища данных
() 11.05.2012 30 / 49
39. 5
Apache Cassandra
Распределенное хранилище с моделью данных по образу BigTable
и децентрализованной архитектурой по образу Dynamo
Первоначальная разработка - Inbox Search @ Facebook, при
участии авторов Amazon Dynamo
2008 - open source
2010 - проект Apache Software Foundation
2010 - Facebook перешел на использование HBase
5
http://cassandra.apache.org/
О.В. Сухорослов 11 Распределенные хранилища данных
() 11.05.2012 32 / 49
40. Модель данных
Keyspace = база данных (схема)
Column family = таблица
статические / динамические
О.В. Сухорослов 11 Распределенные хранилища данных
() 11.05.2012 33 / 49
41. Типы данных
Validator
Определяет тип данных для ключей и значений колонок
Comparator
Определяет тип данных для имен колонок
Определяет порядок сортировки (и хранения) колонок
О.В. Сухорослов 11 Распределенные хранилища данных
() 11.05.2012 34 / 49
42. Индексы
Primary
По значениям ключей
Строится автоматически
Secondary
По значениям колонок
Создается по требованию
О.В. Сухорослов 11 Распределенные хранилища данных
() 11.05.2012 35 / 49
43. Распределение данных между узлами
О.В. Сухорослов 11 Распределенные хранилища данных
() 11.05.2012 36 / 49
44. Стратегия распределения данных
Определяется на уровне всего кластера
Random Patitioner
Использует стратегию consistent hashing
token = MD5(row_key), 0 − 2127
Обеспечивает равномерное распределение данных по узлам
Рекомендуется использовать по-умолчанию
Ordered Partitioner
Данные хранятся в отсортированном порядке
token = HEX(row_key_prefix)
Позволяет делать range scans
Сложнее в настройке и администрировании
О.В. Сухорослов 11 Распределенные хранилища данных
() 11.05.2012 37 / 49
45. Репликация
Стратегия репликации определяется для каждого keyspace
Кол-во реплик (replication factor)
Распределение реплик по узлам
SimpleStrategy
NetworkTopologyStrategy
О.В. Сухорослов 11 Распределенные хранилища данных
() 11.05.2012 38 / 49
46. Gossip
Децентрализованный (peer-to-peer) протокол, используемый для
обмена информацией между узлами
Состояние узла и других известных ему узлов
Позволяет достаточно быстро распространять информацию между
узлами
Seed nodes
Обнаружение отказов
О.В. Сухорослов 11 Распределенные хранилища данных
() 11.05.2012 39 / 49
48. 6
Теорема CAP
В распределенной системе невозможно одновременно обеспечить
свойства
согласованности данных (consistency)
доступности (availability)
устойчивости к разделению (partition tolerance)
Из трех свойств одновременно можно обеспечить только два
Неизбежный компромисс
Влияние на реализацию распределенного хранилища
Выбор реализуемых свойств на уровне системы (HBase=CP)
Возможность выбора свойств пользователем на уровне отдельных
операций (Cassandra)
6
http://en.wikipedia.org/wiki/CAP_theorem
О.В. Сухорослов 11 Распределенные хранилища данных
() 11.05.2012 41 / 49
49. Уровни согласованности
Могут быть указаны для каждой Read/Write-операции
ONE
Требуется ответ только от одной реплики
QUORUM (LOCAL_QUORUM, EACH_QUORUM)
Требуется ответ от большинства реплик
ALL
Требуется ответ от всех реплик
ANY (только для записи)
Требуется ответ от любого узла (не обязательно реплики)
Строгая согласованность достигается при
(nodes_written + nodes_read) > replication_factor
W=1, R=ALL | W=ALL, R=1 | W=Q, R=Q
О.В. Сухорослов 11 Распределенные хранилища данных
() 11.05.2012 42 / 49
50. Eventual Consistency
В любом случае гарантируется согласованность в конечном итоге
Некоторое время после записи клиенты могут считывать
устаревшие данные
Но, в конечном итоге, записанные данные распространятся по всей
системе
О.В. Сухорослов 11 Распределенные хранилища данных
() 11.05.2012 43 / 49
51. Базовые механизмы восстановления согласованности
См. Amazon Dynamo
Hinted Handoff
Read repair
Anti-Entropy
О.В. Сухорослов 11 Распределенные хранилища данных
() 11.05.2012 44 / 49
52. Атомарные операции и разрешение конфликтов
Атомарными являются только записи в одну строку
Несколько обновлений строки не являются атомарными
В случае неудачной записи, данные могут быть сохранены на
части реплик
Откаты не производятся
Для разрешения конфликтов используется timestamp,
передаваемый клиентом при записи данных
При записи не осуществляется проверка на уникальность row key
(UPSERT)
Есть риск случайно перезаписать данные
О.В. Сухорослов 11 Распределенные хранилища данных
() 11.05.2012 45 / 49