Таблицы яндекс: Как создать динамическую таблицу — Yandex Wiki. Справка

Содержание

Турнирная таблица : Континентальная Хоккейная Лига (КХЛ)

Чемпионом России, серебряным и бронзовым призерами Чемпионата России по хоккею становятся российские команды, занявшие наиболее высокие места по итогам Второго этапа Чемпионата
И
Количество проведенных игр
В
Выигрыши в основное время
ВО
Выигрыши в овертайме
ВБ
Выигрыши в послематчевых буллитах
ПО
Проигрыши в овертайме
ПБ
Проигрыши в послематчевых буллитах
П
Проигрыши в основное время
Ш
Шайбы
О
Количество набранных очков

Регулярный чемпионат. Конференция «Восток»

Чемпионом России, серебряным и бронзовым призерами Чемпионата России по хоккею становятся российские команды, занявшие наиболее высокие места по итогам Второго этапа Чемпионата Чемпионом России, серебряным и бронзовым призерами Чемпионата России по хоккею становятся российские команды, занявшие наиболее высокие места по итогам Второго этапа Чемпионата
И
Количество проведенных игр
В
Выигрыши в основное время
ВО
Выигрыши в овертайме
ВБ
Выигрыши в послематчевых буллитах
ПО
Проигрыши в овертайме
ПБ
Проигрыши в послематчевых буллитах
П
Проигрыши в основное время
Ш
Шайбы
О
Количество набранных очков

Регулярный чемпионат. Дивизион Тарасова

Регулярный чемпионат. Дивизион Харламова

Регулярный чемпионат. Дивизион Чернышева

Чемпионом России, серебряным и бронзовым призерами Чемпионата России по хоккею становятся российские команды, занявшие наиболее высокие места по итогам Второго этапа Чемпионата Чемпионом России, серебряным и бронзовым призерами Чемпионата России по хоккею становятся российские команды, занявшие наиболее высокие места по итогам Второго этапа Чемпионата
И
Количество проведенных игр
В
Выигрыши в основное время
ВО
Выигрыши в овертайме
ВБ
Выигрыши в послематчевых буллитах
ПО
Проигрыши в овертайме
ПБ
Проигрыши в послематчевых буллитах
П
Проигрыши в основное время
Ш
Шайбы
О
Количество набранных очков
Чемпионом России, серебряным и бронзовым призерами Чемпионата России по хоккею становятся российские команды, занявшие наиболее высокие места по итогам Второго этапа Чемпионата

Жирным шрифтом выделены команды, обеспечившие себе место в плей-офф

<…>Статья 14. Определение результатов и мест команд на Первом этапе Чемпионата

1. Места команд в Дивизионах, Конференциях и Общей таблице Чемпионата определяются по сумме очков, набранных во всех матчах Первого этапа Чемпионата.

2. Для определения текущего и окончательного распределения мест между командами в Дивизионах, в Конференциях и в Общей таблице Чемпионата в случае равенства очков у двух или более команд преимущество получает команда:

2.1. Имеющая большее количество побед в основное время во всех матчах Первого этапа;

2.2. Одержавшая большее количество побед в овертаймах во всех матчах Первого этапа;

2.3. Одержавшая большее количество побед в сериях бросков, определяющих победителя матча, во всех матчах Первого этапа;

2.4. Имеющая лучшую разность заброшенных и пропущенных шайб во всех матчах Первого этапа;

2.5. Имеющая большее количество заброшенных шайб во всех матчах Первого этапа.

Примечание. Указанные выше критерии применяются последовательно;

2.6. При равенстве всех вышеперечисленных показателей распределение мест между командами определяется жребием.

3. В официальных таблицах Конференций команды, занимающие первые места в Дивизионах, располагаются на первом и втором местах в зависимости от количества набранных очков во всех матчах Первого этапа Чемпионата в порядке убывания спортивных результатов.

Таблица символов фирменного шрифта Яндекса

Таблица символов фирменного шрифта Яндекса

Таблица символов

  •        ABCD
    #$%&
    1234

Латиница

AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz

Кириллица

АаБбВвГгДдЕеЁёЖжЗзИиЙйКкЛлМмНнОоПпРрСсТтУуФфХхЦцЧчШшЩщЪъЫыЬьЭэЮюЯя

Пунктуация

.,:;…!?•*/(){}-–—_«»

Математические

×><≈~

Дополнительная латиница-1

«»× %name%

О символе

  • Юникод: %unicode%
  • Блок: %block%

Применение

  • Copy-paste: %copyPaste%
  • Windows: %windows%
  • HTML: %html%

Основная латиница

!Восклицательный знак

0021

(Левая круглая скобка

0028

)Правая круглая скобка

0029

Дефис-минус

002D

/Косая черта

002F

;Точка с запятой

003B

<Знак меньше

003C

>Знак больше

003E

?Знак вопроса

003F

AЛатинская заглавная буква A

0041

BЛатинская заглавная буква B

0042

CЛатинская заглавная буква C

0043

DЛатинская заглавная буква D

0044

EЛатинская заглавная буква E

0045

FЛатинская заглавная буква F

0046

GЛатинская заглавная буква G

0047

HЛатинская заглавная буква H

0048

IЛатинская заглавная буква I

0049

JЛатинская заглавная буква J

004A

KЛатинская заглавная буква K

004B

LЛатинская заглавная буква L

004C

MЛатинская заглавная буква M

004D

NЛатинская заглавная буква N

004E

OЛатинская заглавная буква O

004F

PЛатинская заглавная буква P

0050

QЛатинская заглавная буква Q

0051

RЛатинская заглавная буква R

0052

SЛатинская заглавная буква S

0053

TЛатинская заглавная буква T

0054

UЛатинская заглавная буква U

0055

VЛатинская заглавная буква V

0056

WЛатинская заглавная буква W

0057

XЛатинская заглавная буква X

0058

YЛатинская заглавная буква Y

0059

Z
Латинская заглавная буква Z

005A

_Нижнее подчёркивание

005F

aЛатинская строчная буква a

0061

bЛатинская строчная буква b

0062

cЛатинская строчная буква c

0063

dЛатинская строчная буква d

0064

eЛатинская строчная буква e

0065

fЛатинская строчная буква f

0066

gЛатинская строчная буква g

0067

hЛатинская строчная буква h

0068

iЛатинская строчная буква i

0069

jЛатинская строчная буква j

006A

kЛатинская строчная буква k

006B

lЛатинская строчная буква l

006C

mЛатинская строчная буква m

006D

nЛатинская строчная буква n

006E

oЛатинская строчная буква o

006F

pЛатинская строчная буква p

0070

qЛатинская строчная буква q

0071

rЛатинская строчная буква r

0072

sЛатинская строчная буква s

0073

tЛатинская строчная буква t

0074

uЛатинская строчная буква u

0075

vЛатинская строчная буква v

0076

wЛатинская строчная буква w

0077

xЛатинская строчная буква x

0078

yЛатинская строчная буква y

0079

zЛатинская строчная буква z

007A

{Левая фигурная скобка

007B

}Правая фигурная скобка

007D

Дополнительная латиница-1

«Открывающая левая кавычка «ёлочка»

00AB

»Закрывающая правая кавычка «ёлочка»

00BB

×Знак умножения

00D7

Кириллица

ЁКириллическая заглавная буква ё

0401

АКириллическая заглавная буква а

0410

БКириллическая заглавная буква бэ

0411

ВКириллическая заглавная буква вэ

0412

ГКириллическая заглавная буква гэ

0413

ДКириллическая заглавная буква дэ

0414

ЕКириллическая заглавная буква е

0415

ЖКириллическая заглавная буква же

0416

ЗКириллическая заглавная буква зэ

0417

ИКириллическая заглавная буква и

0418

ЙКириллическая заглавная буква и краткое

0419

ККириллическая заглавная буква ка

041A

ЛКириллическая заглавная буква эл

041B

МКириллическая заглавная буква эм

041C

НКириллическая заглавная буква эн

041D

ОКириллическая заглавная буква о

041E

ПКириллическая заглавная буква пэ

041F

РКириллическая заглавная буква эр

0420

СКириллическая заглавная буква эс

0421

ТКириллическая заглавная буква тэ

0422

УКириллическая заглавная буква У

0423

ФКириллическая заглавная буква эФ

0424

ХКириллическая заглавная буква ха

0425

ЦКириллическая заглавная буква цэ

0426

ЧКириллическая заглавная буква че

0427

ШКириллическая заглавная буква ша

0428

ЩКириллическая заглавная буква ща

0429

ЪКириллическая заглавная буква твёрдый знак

042A

ЫКириллическая заглавная буква ы

042B

ЬКириллическая заглавная буква мягкий знак

042C

ЭКириллическая заглавная буква э

042D

ЮКириллическая заглавная буква ю

042E

ЯКириллическая заглавная буква я

042F

аКириллическая строчная буква а

0430

бКириллическая строчная буква бэ

0431

вКириллическая строчная буква вэ

0432

гКириллическая строчная буква гэ

0433

дКириллическая строчная буква дэ

0434

еКириллическая строчная буква е

0435

жКириллическая строчная буква же

0436

зКириллическая строчная буква зэ

0437

иКириллическая строчная буква и

0438

йКириллическая строчная буква и краткое

0439

кКириллическая строчная буква ка

043A

лКириллическая строчная буква эл

043B

мКириллическая строчная буква эм

043C

нКириллическая строчная буква эн

043D

оКириллическая строчная буква о

043E

пКириллическая строчная буква пэ

043F

рКириллическая строчная буква эр

0440

сКириллическая строчная буква эс

0441

тКириллическая строчная буква тэ

0442

уКириллическая строчная буква у

0443

фКириллическая строчная буква эф

0444

хКириллическая строчная буква ха

0445

цКириллическая строчная буква цэ

0446

чКириллическая строчная буква че

0447

шКириллическая строчная буква ша

0448

щКириллическая строчная буква ща

0449

ъКириллическая строчная буква твёрдый знак

044A

ыКириллическая строчная буква ы

044B

ьКириллическая строчная буква мягкий знак

044C

эКириллическая строчная буква э

044D

юКириллическая строчная буква ю

044E

яКириллическая строчная буква я

044F

ёКириллическая строчная буква ё

0451

Знаки пунктуации

Неразрывный дефис

2011

Цифровое тире

2012

Среднее тире

2013

Длинное тире

2014

Точка маркер списка

2022

Многоточие

2026

Математические операторы

Почти равный

2248

Геометрические фигуры

Черный квадрат в середине

25FC

Поддерживаемые языки

  • Русский
  • Английский
  • Болгарский
  • Итальянский

Русский

Государев указ: душегубцев да шваль всякую высечь, да калёным железом по щекам этих физиономий съездить!

Болгарский

Жълтата дюля беше щастлива, че пухът, който цъфна, замръзна като гьон

Итальянский

Qualche vago ione tipo zolfo, bromo, sodio

Английский

When we go back to Juarez, Mexico, do we fly over picturesque Arizona?

Заказать дизайн…

Алгоритмы поисковых систем. Сравнительная таблица Яндекс и Google — Статьи

Поисковые системы стремятся отвечать интересам пользователей, помогая людям найти необходимую информацию в интернете. Чтобы в выдаче оказывались результаты, которые отвечают цели запроса, поисковики используют сложные формулы, учитывающие несколько тысяч сигналов. Механизм ранжирования и фильтрации сайтов на основе содержимых страниц называется алгоритмом.

Какие точно параметры учитывают поисковые системы при формировании результатов поиска, известно только создателям алгоритмов. Лишь иногда Яндекс и Google приоткрывают завесу тайны над тем, какие факторы учитываются тем или иным действующим алгоритмом.

Мы подготовили таблицу, в которой можно увидеть, как изменялись алгоритмы в течение времени, а также увидеть сходства и различия самых известных алгоритмов двух главных поисковиков рунета — Яндекса и Google.

В данной таблице перечислены лишь некоторые алгоритмы, о которых известно SEO-специалистам. В действительности их у поисковых систем гораздо больше, и все они оказывают то или иное влияние на результаты поиска. Главное, что необходимо помнить — действие алгоритмов направлено на то, чтобы предотвратить появление в выдаче сайтов с бесполезным контентом, обилием рекламы и использующим «черные» методы продвижения. Соблюдение требований поисковиков и знание основных принципов ранжирования поможет вашим сайтам оставаться «на плаву» и улучшать позиции в выдаче.

GoogleЯндекс
Алгоритмы, анализирующие качество контента

Флорида (Florida)

Запуск: ноябрь, 2003 г.

Особенности:
  • наказание сайтов за чрезмерное использование ключевых слов;
  • учет уникальности контента;
  • учет морфологии, исправление ошибок в запросах.

Магадан

Запуск: май, июль, 2008 г.

Особенности:
  • новые факторы ранжирования;
  • расширенные классификаторы документов и ссылок;
  • учет уникальности контента;
  • улучшенный геоклассификатор;
  • более высокая скорость поиска;
  • расширение базы аббревиатур;
  • опознавание транслитерации;

Остин (Austin)

Запуск: январь, 2004 г.

Особенности:
  • наказание за переоптимизацию — большое количество ключевиков, скрытый текст;
  • новая оценка релевантности контента.

АГС-17, АГС-30, АГС-40

Запуск: сентябрь, декабрь, 2009 г., ноябрь, 2012 г.

Особенности:
  • борьба с неуникальным контентом;
  • снижение позиций сайтов с неинтересным и некачественным контентом.

Панда (Panda)

Запуск: февраль, 2011 г.

Особенности:
  • новые критерии оценки качества сайта;
  • ухудшение позиций документов, имеющих неуникальный, бесполезный контент или откровенный спам.

Снежинск

Запуск: ноябрь, 2009 г.

Особенности:
  • внедрение технологии машинного обучения «Матрикснет»;
  • рост числа факторов ранжирования, в том числе региональных;
  • новая методика анализа текстов;
  • ухудшение ранжирования документов с длинными текстами, насыщенными ключевиками;
  • улучшение позиций документов с качественными релевантными текстами;
  • начало учета поведенческих факторов при ранжировании.

Колибри (Hummingbird)

Запуск: сентябрь, 2013 г.

Особенности:
  • улучшение качества выдачи;
  • лучшее понимание смысла запросов, особенно длинных и диалоговых;
  • формирование результатов поиска исходя из значения запроса, а не только на основе ключевых слов.

Краснодар

Запуск: декабрь, 2010 г.

Особенности:
  • внедрение технологии «Спектр»;
  • повышение разнообразия выдачи по общим запросам для 60 категорий;
  • улучшение ранжирования по геозависимым запросам;
  • появление расширенных сниппетов для сайтов компаний; индексация социальной сети «ВКонтакте».

Пират (Pirate)

Запуск: октябрь, 2014 г.

Особенности:
  • наказание сайтов, контент которых нарушает авторские права.

Баден-Баден

Запуск: март, 2017 г.

Особенности:
  • улучшение алгоритма, распознающего переоптимизацию;
  • понижение в выдаче документов, наполненных ключевыми словами.

Фред (Fred)

Запуск: март, 2017 г.

Особенности:
  • понижение сайтов, имеющих некачественные тексты;
  • наказание за переспам, обилие рекламы и устаревший, бесполезный контент.
Алгоритмы, анализирующие качество ссылок

PageRank

Запуск: впервые в 1998 г. С тех пор было несколько обновлений.

Особенности:
  • измерение авторитета и важности веб-страницы путем анализа ссылок, ведущих на нее.

8 SP1

Запуск: январь, 2008 г.

Особенности:
  • приоритет в выдаче — авторитетным ресурсам;
  • снижение веса ссылок с главных страниц сайта.

Кассандра (Cassandra)

Запуск: апрель, 2003 г.

Особенности:
  • понижение позиций сайтов, использующих скрытые тексты и ссылки.

Обнинск

Запуск: сентябрь, 2010 г.

Особенности:
  • борьба с сайтами, использующими для продвижения покупные ссылки;
  • перенастройка формулы ранжирования сайтов;
  • улучшение ранжирования для геонезависимых запросов;
  • расширение словаря транслитерации.

Хилтоп (Hilltop)

Запуск: декабрь, 2010 г.

Особенности:
  • усовершенствование подсчета PageRank страницы;
  • добавление веса ссылкам, релевантным тематике сайта.

Минусинск

Запуск: май, 2015 г.

Особенности:
  • понижение позиций сайтов, использующих SEO-ссылки для продвижения в поиске.

Пингвин (Penguin)

Запуск: апрель, 2012 г.

Особенности:
  • борьба с сайтами, использующими неестественные обратные ссылки;
  • приоритет в выдаче сайтам, имеющим естественные ссылки с авторитетных источников;
  • индексация социальных сетей и добавление их в результаты поиска.
Алгоритмы, анализирующие пригодность сайта для мобильных устройств

Mobile friendly

Запуск: апрель, 2015 г.

Особенности:
  • приоритет в мобильном поиске веб-страницам, адаптированным для чтения с мобильных устройств.

Владивосток

Запуск: февраль, 2016 г.

Особенности:
  • учет адаптированности сайта для мобильных устройств при ранжировании в мобильном поиске.
Алгоритмы, работающие со сложными и редкими запросами

Орион (Orion)

Запуск: 2006 г.

Особенности:
  • повышение качества результатов поиска;
  • подмешивание в выдачу смежной информации по запросу.

Палех

Запуск: ноябрь, 2016 г.

Особенности:
  • улучшение качества поиска для редких запросов с «длинным хвостом»;
  • распознавание смысла запроса и подбор релевантных заголовков документов на основе нейронных сетей.

RankBrain

Запуск: октябрь, 2015 г.

Особенности:
  • распознавание смысла запросов с помощью машинного обучения;
  • улучшенная интерпретация сложных запросов;
  • повышение релевантности документов в выдаче заданным запросам.

Королев

Запуск: август, 2017 г.

Особенности:
  • сопоставление смысла запроса со страницами сайта с помощью нейронных сетей;
  • улучшение поиска для необычных и редких запросов.
Алгоритмы, учитывающие интересы пользователя (персонализация)

Персональный поиск

Запуск: июнь, 2005 г.

Особенности:
  • учет персональной истории поисковых запросов.

Рейкьявик

Запуск: август, 2011 г.

Особенности:
  • учет языковых предпочтений пользователей;
  • первый шаг в направлении персонализации выдачи;
  • улучшение колдунщиков и поисковых подсказок.

Search Plus Your World

Запуск: январь, 2012 г.

Особенности:
  • два вида выдачи — стандартная и персонализированная;
  • подмешивание информации из социальной сети Google+ с учетом анализа профиля пользователя.

Калининград

Запуск: декабрь, 2012 г.

Особенности:
  • персонализация поиска — подсказки, выдача подстраиваются под долговременные и кратковременные интересы пользователей.

Дублин

Запуск: май, 2013 г.

Особенности:
  • учет сиюминутных интересов пользователей;
  • подстройка выдачи прямо во время поисковой сессии.
Алгоритмы, направленные на улучшение качества ранжирования в целом

Кофеин (Caffeine)

Запуск: июнь, 2010 г.

Особенности:
  • быстрая индексация нового контента;
  • улучшение качества выдачи.

Находка

Запуск: сентябрь, 2008 г.

Особенности:
  • учёт стоп-слов при ранжировании;
  • новый подход к машинному обучению;
  • расширение словарей;
  • фильтры за дорвеи;
  • более разнообразная выдача, включающая по запросу одновременно коммерческие и информационные сайты.
Алгоритмы, отвечающие за региональное ранжирование

Опоссум (Possum)

Запуск: сентябрь, 2016 г.

Особенности:
  • разнообразие выдачи по геозависимым запросам;
  • наказание сайтов за спамный контент.

Арзамас / Анадырь

Запуск: первая версия — апрель, 2009 г.; затем еще несколько версий в июне, августе и сентябре 2009 г.

Особенности:
  • появление регионального ранжирования в 19 регионах России;
  • улучшенный поиск по многословным запросам;
  • усовершенствованное распознавание омонимии;
  • новый классификатор геозависимости запросов;
  • появление новых фильтров, улучшающих ранжирование качественных сайтов.

Конаково

Запуск: декабрь, 2009 г., март 2010 г.

Особенности:
  • улучшение регионального ранжирования;
  • своя формула ранжирования для 1250 городов России.

Как скопировать кампанию в Яндекс.Директ: 5 способов плюс сравнительная таблица

Наши специалисты
всегда готовы ответить
на ваши вопросы

Спросить совет ×
Помните: для этого контента требуется JavaScript.

Часто рекламодателям приходится запускать несколько практически идентичных рекламных кампаний, чтобы протестировать разные стратегии или установить разные ставки для отдельных регионов. Если делать все вручную, на настройку 3 кампаний уйдет 2-3 часа. Чтобы ускорить процесс и справиться за 10-15 минут, воспользуйтесь функцией копирования. Создать новую кампанию на основе старой можно через интерфейс Директа, приложение Директ Коммандер, менеджеров Яндекса, выгрузку файлов XLS и бид-менеджеры. Рассмотрим каждый способ подробнее и сведем их в сравнительную таблицу.

Копируем через интерфейс Яндекс.Директ

Выделите одну или несколько кампаний, которые нужно скопировать, и в открывшемся меню выберите действие «Копировать».

Кампании-копии появятся в списке в течение минуты

Настройки сохранятся, только статистика обнулится и будет собираться заново после запуска. У метода есть недостатки. Скопировать кампании в другой аккаунт не получится. Кроме того, в новую попадут не только активные, но и архивные объявления. Если их слишком много, могут возникнуть сложности с добавление новых, так как в одну кампанию можно добавить до 1000 групп. С другой стороны, архивные объявления могут пригодиться, например, если вы меняете их в зависимости от сезона, и в архиве хранятся нужные, но неактуальные для этого времени объявления.

Копируем через Директ Коммандер

На вкладке «Кампании» выделите те, которые нужно скопировать и нажмите клавиши Ctrl+C (копировать) и Ctrl+V (вставить).

Копии кампаний появятся ниже на той же вкладке

Как и при копировании через интерфейс Яндекс.Директа, настройки кампаний сохраняются, а статистику придется накапливать заново. Архивные группы копируются, но без объявлений, только фразы. Толку от этого мало — чтобы сохранить кампанию, их нужно удалить или создать новые.

Директ Коммандер не копирует архивные объявления, только группы

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

Если у вас клиентский доступ, быстрое копирование доступно только в пределах одного аккаунта. Чтобы перенести кампании на другой, выгрузите их в файл.

Выделите нужные кампании и кликните, чтобы выгрузить их

И загрузите его на нужный аккаунт.

Кликните и выберете нужные файлы из открывшейся папки

Учтите — стратегия, счетчик метрики и метки не сохранятся.

Способ удобен, если нужно скопировать много кампаний. Вы сразу можете приступить к редактированию и внести изменения в несколько кампаний одновременно.

Выгружаем через XLS/XLSX

Зайдите в личный кабинет Директа и в меню «Действия» в левом нижнем углу выберите пункт «Управление кампаниями с помощью XLS/XLSX».

Чтобы скопировать РК, нужно сначала сохранить их на компьютер

На вкладке «Выгрузка в XLS/XLSX» выберите нужную кампанию и формат файла.

Если нужно выгрузить архивные объявления, отметьте соответствующий чекбокс

На вкладке «Загрузка из XLS/XLSX» выберите файл, который выгружали ранее, при необходимости изменив регион. Установите действие «Создать новую кампанию» и нажмите «Продолжить».

При загрузке файла можно установить регион для всех объявлений

Можно копировать кампании на разные аккаунты, но за раз только одну. Поэтому способ не подойдет, если нужно скопировать много кампаний сразу. Стратегия и номер счетчика метрики не переносятся, статистика обнуляется.

Заказываем копии у менеджера

Метод доступен только агентствам. Чтобы им воспользоваться, нужно написать письмо с просьбой скопировать кампании менеджеру Яндекса, который обслуживает ваш аккаунт. Можно скопировать несколько кампаний сразу на разные аккаунты. Сохраняются все параметры, в том числе — накопленный CTR. Если хотите сохранить текущий CTR и цены клика, этот способ для вас. Однако все запросы обрабатываются в порядке очереди в рабочее время, и копии появятся личном кабинете не сразу.

Если нужно скопировать кампании одного клиента, можно воспользоваться формой в интерфейсе Директа.

Откроется форма, в которой нужно указать логин и номера кампаний. В ней можно быстро и удобно отметить нужные объявления.

В форме можно настроить копирование статусов и другие параметры

Копируем через сервисы автоматизации

Рассмотрим на примере сервиса Сеодроид. Кликните по кнопке «Копирование кампании» под нужной кампанией.

В интерфейсе Сеодроида можно скопировать любую кампанию

Укажите название новой кампании и аккаунт, на котором хотите ее создать. Выберите режим и нажмите «Скопировать».

Через Сеодроид можно копировать кампании на разные аккаунты. Ставки, корректировки ставок, CTR и архивные объявления не сохраняются. Зато можно скопировать кампании, даже если у вас нет доступа для редактирования в аккаунт Директа, достаточно доступа на чтение. Другие способы в таком случае будут недоступны.
Если нужно скопировать кампании, чтобы создать отдельные под каждый регион, сделать это через Сеодроид проще всего. Достаточно выбрать нужные регионы и режим копирования «Разные копии на выделенные регионы».

Сравним способы в таблице

У каждого метода есть преимущества и недостатки. Однако они имеют значения только в контексте ваших задач. Выбирать стоит в зависимости от того, возможно ли скопировать кампанию с нужными параметрами в конкретной ситуации. Мы собрали в таблицу все возможности и функции, которые могут понадобиться вам при копировании, и отметили, для каких способов они доступны, а для каких — нет.

Способы копирования

Интерфейс

Директ Коммандер

Менеджер

XLS/XLSX

Бид-менеджер

Копирование внутри одного аккаунта

+

+

+

+

+

Копирование между разными аккаунтами

+

+

+

+

Копирование одной кампании

+

+

+

+

+

Копирование нескольких кампаний одновременно

+

+

+

Создание кампаний сразу для разных регионов

+

Сохранение меток

+

+

+

+

Сохранение стратегии

+

+

+

+

Сохранение корректировок ставок

+

нет, если копирование через файл

+

Сохранение ставок

+

+

+

+

Сохранение статистики

+

Сохранение счетчика метрики

+

нет, если копирование через файл

+

+

Возможность скопировать в любое время

+

+

+

+

При наличии доступа для чтения

+

+

Архивные объявления

+

можно выбрать

Воспользуйтесь таблицей, чтобы узнать, какой метод подойдет вам. Например, если прямому рекламодателю нужно скопировать одну кампанию в пределах своего аккаунта с переносом архивных объявлений, которые могут еще пригодиться, это можно сделать через интерфейс Директа и выгрузку/загрузку файлов XLS. Агентству, которому нужно продублировать 5 кампаний для разных клиентских аккаунтов с сохранением меток, стратегии, ставок и статистики, придется отправлять письмо личному менеджеру. А размножить одну кампанию на несколько регионов можно только через бид-менеджер Сеодроид.

  • Ведение Директа


  • Таблица для транслитерации по версии Яндекса

    Примечание: если нужно получить подсветку в яндексе, а воспользуйтесь нашим инструментом для ручной генерации seo url — которые понимает и яндекс и гугл. Ниже представлена только теория.

    В Яндексе на данный момент (апрель 2012 года) используется стандарт «Транслитерация имен для загранпаспорта РФ» (Приказ Министерства внутренних дел Российской Федерации от 31 декабря 2003 г. N 1047 г. )

    Таблица № 1. Правила транслитерации русских букв латиницей для Яндекса

    КириллицаТранслит (латиница)
    а a
    б b
    в v
    г g
    д d
    е e
    ё ye
    ж zh
    з z
    и i
    й y
    к k
    л l
    м m
    н n
    о o
    п p
    р r
    с s
    т t
    у u
    ф f
    х kh
    ц ts
    ч ch
    ш sh
    щ shch
    ъ «
    ы y
    ь
    э e
    ю yu
    я ya

    Таблица № 2. Дифтонги (сочетания гласной буквы и «й»)

    КириллицаТранслит (латиница)
    ай ay
    ей ey
    ий iy
    ой oy
    уй uy
    ый yy
    эй ey
    юй yuy
    ей yay

     

    Меняем стили таблицы в статистике Яндекс Директа

    Если вас не устраивает, как отображается таблицы статистики в Яндекс Директе, то это можно поправить. 

    Мне, например, не нравиться большая простыня отчета на страницах статистики в Директе, например по поисковым запросам. Она выходит почти в 2 раза за пределы экрана. Если уменьшать масштаб страницы, то уменьшаются и другие элементы, помимо самой страницы.


    Для браузеров есть плагин Stylish, который позволяет менять стили на странице в браузере. Скачать его для хрома можно тут https://chrome.google.com/webstore/detail/stylish-custom-themes-for/fjnbnpbmkenffdnngjfgmeleoegfcffe?hl=ru

    В нем можно прописать стили CSS, которые хотите поменять на странице

    Для этого кликаем на плагин и выбираем Создать стиль (спрятан за 3 точками)

    Появиться новое окно, в котором вводим Названия стиля, свой код и на какой странице он должен применяться:

     

    Применять будем на всех станицах, которые соответствуют регулярному выражению :
     .*direct\.yandex\.ru\/registered\/.*show_stat=1.*

     

    Код стиля:

    /* Строка заголовка таблицы */
    .b-stat-table_type_mol .b-stat-table__head-col {
        padding: 3px 3px;
    }
    .b-stat-table__head-col-wrap_sorted_yes {
        padding-left: 5px;
    }
    .b-stat-table_type_mol .b-stat-table__row-col {
        padding: 3px 3px;
    }
    .b-stat-table_type_mol .b-stat-table__row-col_type_slices {
        white-space: normal;
    }
    .b-stat-table__head {
        white-space: normal;
    }

    /* Столбец с поисковыми запросами */
    .b-mol-stat-data__search-query-wrap {
        width: 250px;
    }

    .b-stat-table_type_mol .b-stat-table__head-col {
        padding: 3px 3px;
    }

    /* Цвета таблицы */
    .b-stat-table__row-col {
        border-bottom: 1px solid #A5A5A5;
    }

    .b-stat-table_type_mol .b-stat-table__row-col {
        border-left: 1px solid #A5A5A5;
    }

     

    Сохраняем. Теперь при включенном плагине на странице статистики будет более компактная таблица:

     

     

    Если у вас есть свои подобные стили, поделитесь со мной 🙂

    Автор: Москалец Андрей • Дата создания: 2019-11-19

    Как в Яндекс.Метрике импортировать данные отчетов из таблиц и графиков в Excel

    В этой статье мы рассмотрим детально процесс выгрузки данных из отчетов Яндекс.Метрика в отдельный документ с разбивкой данных по дням, неделям и месяцам.

    Например, стандартная функция экспорта в Метрике, позволяет выгружать:

    1. Данные из графика. Выгружаются в документ параметры и показатели на основе которых формируется график отчета за выбранные период.

    2. Данные из таблицы. В документ переносится данные из таблицы отчета по выделенным полям с сохранением показателей и метрик.

    Давайте разберем на примере все возможности выгрузки данных в .XLSX и .CSV.

    Решения

    Предположим, нам нужно выгрузить данные по трафику из поисковых систем Яндекс и Google с разбивкой по месяцам за весь последний год.

    Как это реализовать?

    Стандартными отчетами в интерфейсе Метрики получить такие данные не получиться.

    В табличном отчете вы получите только общие данные за выбранный период, а на графике данные можно увидеть только в сплывающем окошке, при наведении курсора, что не совсем удобно, так как запомнить, а тем более сохранить и перенести значения в отдельный документ не получится.

    Именно для таких случаев нужна выгрузка значений из графика и таблицы.

    1. Переходим в нужный отчёт и указываем временной интервал;
    2. Далее выбираем вывод данных по месяцам;

    3. Указываем галочками в таблице ниже требуемые параметры, а напротив ненужных полей — снимаем галочки. В нашем примере отмечаем только поисковые системы Яндекс и Google;

    4. Переходим в правый верхний угол отчёта и выбираем  выгрузку Данные графика. Файл сформируется за несколько секунд и будет сохранен на ваш компьютер.

    Получаем данные в файле с разбивкой по месяцам. Вот такие значения можно получить в сохраненном нами файле:

    Как видите, в столбце Период указаны месяца, а в двух других столбцах количество переходов из каждой поисковой системы.

    Однако, Яндекс.Метрика позволяет выгружать данные не только из графика, но и из таблицы.

    Выполняем все ранее описанные действия, то теперь выбираем Данные таблицы. Выгрузка такого отчета займет чуть больше времени и будет иметь немного иной вид, дублируя таблицу из отчета с данными группировок.

    Важно! Отчёт можно с лёгкостью изменить, поменяв в нем группировки, добавив дополнительные метрики, настроить детализацию по дням или неделям и выгрузить показатели за любой другой период по другим параметрам.

    Поздравляю! Теперь с этими данными удобно работать: строить на их основе графики и диаграммы, составлять сводные таблицы и отчёты, добавлять в презентацию и пересылать клиентам!

    Остались вопросы?

    Мы решили довольно простую задачу, но если у вас остались вопросы, то оставляйте ваши комментарии в форме ниже под этой записью и не забывайте подписываться на новые инструменты и статьи блога!

    Сохраните ссылку

    Читайте дальше:

    Метки #аналитика, #яндекс.метрика

    Вставка таблиц — Яндекс.Wiki. Справка

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

    Чтобы встроить динамическую таблицу на страницу:

    1. Щелкните на боковой панели.

    2. Настройте параметры внедрения.

    3. Скопируйте код встраивания и вставьте его на страницу.

    Динамические таблицы можно редактировать прямо со страницы, если во время встраивания не выбран параметр «Только чтение».Все изменения автоматически применяются к основной таблице и ко всем ее появлению на других страницах.

    Строки в динамических таблицах можно быстро отсортировать по столбцам:

    1. Щелкните заголовок столбца.

    2. Щелкните значок еще раз, чтобы отсортировать строки в обратном порядке.

    Сортировка таблиц по нескольким столбцам одновременно

    Таблицы можно упорядочивать, используя несколько типов сортировки. Типы сортировки указываются в порядке убывания приоритета.

    Чтобы создать новый порядок сортировки:

    1. Щелкните на боковой панели.

    2. Выберите столбец и порядок сортировки.

    Вы можете фильтровать встраиваемые таблицы, чтобы отображались только определенные строки и столбцы. Для этого:

    1. Получите код для встраивания и поместите его в текст страницы.

    2. Чтобы выбрать столбцы для отображения, добавьте параметр columns к коду вашей таблицы.Чтобы узнать больше об использовании этого параметра, см. Выбор столбцов для отображения.
    3. Чтобы отфильтровать строки на основе значений, установленных в определенных ячейках, добавьте параметр filter в код своей таблицы. Дополнительные сведения об использовании этого параметра см. В разделе Настройка фильтров отображения строк.

    Чтобы открыть исходную таблицу, которую вы использовали для встраивания:

    1. Щелкните в нижней части таблицы.

    Документация по Supermetrics | Яндекс.Таблицы прямого хранилища данных

    Продукты

    • Суперметрики для Google Таблиц
    • Суперметрики для Google Data Studio
    • Суперметрики для Excel
    • Суперметрики для BigQuery
    • Суперметрики для DWH и облачного хранилища
    • API Supermetrics

    Источники данных

    • Рекламные данные + Google Analytics
    • Adform
    • Adobe Analytics
    • Adobe Analytics 2.0
    • AdRoll
    • Ahrefs
    • Apple App Store / iTunes общедоступные данные
    • Поисковая реклама Apple
    • Awin
    • Инструменты Bing для веб-мастеров
    • CallRail
    • Criteo
    • Рекламная библиотека Facebook
    • Facebook реклама
    • Сеть аудитории Facebook
    • Facebook Insights
    • Публичные данные Facebook
    • Google Менеджер рекламы
    • Google AdSense
    • Google Рекламы
    • Гугл Аналитика
    • Google Analytics 4
    • Google Campaign Manager
    • Google Дисплей и Видео 360
    • Google Мой бизнес
    • Google Search Ads 360
    • Консоль поиска Google
    • Google Trends
    • HubSpot
    • Статистика Instagram
    • Публичные данные Instagram
    • Klaviyo
    • LinkedIn Ads
    • Страницы LinkedIn
    • Mailchimp
    • Microsoft Advertising
    • Moz
    • Netvisor
    • Оптимизировать
    • Outbrain Amplify
    • Реклама в Pinterest
    • Pinterest Органический
    • Публичные данные Pinterest
    • Quora Ads
    • Публичные данные Reddit
    • Salesforce
    • Salesforce Marketing Cloud
    • Searchmetrics
    • SEMrush Analytics
    • Проекты SEMrush
    • Shopify
    • Smarp
    • Snapchat маркетинг
    • StackAdapt
    • Полоса
    • Табула
    • Торговый стол
    • TikTok Ads
    • Публичные данные Tumblr
    • Реклама в Твиттере
    • Twitter Премиум
    • Публичные данные Twitter
    • Verizon Media DSP
    • Нативная реклама Verizon Media
    • Публичные данные Vimeo
    • Публичные данные ВКонтакте
    • Яндекс.Прямой
      • Поля
      • Таблицы хранилища данных
      • Обновления
    • Яндекс.Метрика
    • YouTube

    © 2021 Supermetrics
    Условия использования · Политика конфиденциальности

    Данные Яндекс.Метрики | Документация ClickHouse

    1. Начало работы
    2. Примеры наборов данных

    Набор данных состоит из двух таблиц, содержащих анонимные данные о посещениях ( hits_v1 ) и посещениях ( посещений_v1 ) Яндекс.Метрика. Подробнее о Яндекс.Метрике читайте в разделе История ClickHouse.

    Набор данных состоит из двух таблиц, любую из которых можно загрузить как сжатый файл tsv.xz или как подготовленные разделы. В дополнение к этому, расширенная версия таблицы просмотров , содержащей 100 миллионов строк, доступна в виде TSV по адресу https://datasets.clickhouse.tech/hits/tsv/hits_100m_obfuscated_v1.tsv.xz и в виде подготовленных разделов по адресу https: / /datasets.clickhouse.tech/hits/partitions/hits_100m_obfuscated_v1.tar.xz.

    Получение таблиц из подготовленных разделов

    Загрузка и импорт таблицы совпадений:

      curl -O https://datasets.clickhouse.tech/hits/partitions/hits_v1.tar
    tar xvf hits_v1.tar -C / var / lib / clickhouse # путь к каталогу данных ClickHouse
    # проверить права доступа к распакованным данным, при необходимости исправить
    sudo service clickhouse-server перезапуск
    clickhouse-client --query "ВЫБРАТЬ СЧЕТЧИК (*) ИЗ datasets.hits_v1"
      

    Скачивание и импорт посещений:

      curl -O https: // datasets.clickhouse.tech/visits/partitions/visits_v1.tar
    tar xvf visit_v1.tar -C / var / lib / clickhouse # путь к каталогу данных ClickHouse
    # проверить права доступа к распакованным данным, при необходимости исправить
    sudo service clickhouse-server перезапуск
    clickhouse-client --query "ВЫБРАТЬ СЧЕТЧИК (*) ИЗ datasets.visits_v1"
      

    Получение таблиц из сжатого файла TSV

    Загрузите и импортируйте обращения из сжатого файла TSV:

      curl https://datasets.clickhouse.tech/hits/tsv/hits_v1.tsv.xz | unxz --threads = `nproc`> hits_v1.цв
    # Проверить контрольную сумму
    md5sum hits_v1.tsv
    # Контрольная сумма должна быть равна: f3631b6295bf06989c1437491f7592cb
    # теперь создаем таблицу
    clickhouse-client --query "СОЗДАТЬ БАЗУ ДАННЫХ, ЕСЛИ НЕ СУЩЕСТВУЕТ наборов данных"
    clickhouse-client --query "СОЗДАТЬ ТАБЛИЦУ datasets.hits_v1 (WatchID UInt64, JavaEnable UInt8, строка заголовка, GoodEvent Int16, EventTime DateTime, EventDate Date, CounterID UInt32, ClientIP UInt32, ClientIP6 FixedString (16), RegionID UInt32, UserID UInt64, CounterClass Int8, OS UInt8, UserAgent UInt8, строка URL, строка Referer, строка URLDomain, строка RefererDomain, Refresh UInt8, IsRobot UInt8, RefererCategories Array (UInt16), URLCategories Array (UInt16), URLRegions Array (UInt32), RefererRegions (UInt32), RefererRegions), RefererRegions (UInt32), RefererRegions) ResolutionWidth UInt16, ResolutionHeight UInt16, ResolutionDepth UInt8, FlashMajor UInt8, FlashMinor UInt8, FlashMinor2 String, NetMajor UInt8, NetMinor UInt8, UserAgentMajor UInt16, UserAgentMinor FixedPring (2), String UIEnable UInt8, Javashone UInt8, Javashone UInt8, Javashone UInt8, Javashone UInt8, Javashone UInt8, Javashone UInt8, Javashone UInt8, Javashone UInt8 , IPNetworkID UInt32, TraficSourceID Int8, SearchEngineID UInt16, SearchPhrase String, AdvEngineID UInt8, IsArtif ical UInt8, WindowClientWidth UInt16, WindowClientHeight UInt16, ClientTimeZone Int16, ClientEventTime DateTime, SilverlightVersion1 UInt8, SilverlightVersion2 UInt8, SilverlightVersion3 UInt32, SilverlightVersion4 UIntounce, PageCharset String, UINT32, Isldot, IsldotUInt32, PageCharset UInt32, IsldotUInt32, Isldot, CodeVersion UInt32, Isldot32 , IsEvent UInt8, IsParameter UInt8, DontCountHits UInt8, WithHash UInt8, HitColor FixedString (1), UTCEventTime DateTime, Age UInt8, Sex UInt8, Income UInt8, Interests UInt16, Robotness UInt8, GeneralInterests Array (UInt1632), RemoteIP6 ), WindowName Int32, OpenerName Int32, HistoryLength Int16, BrowserLanguage FixedString (2), BrowserCountry FixedString (2), SocialNetwork String, SocialAction String, HTTPError UInt16, SendTiming Int32, DNSTiming Int32, ConnectTiming Int32, ResponseStartTiming Intiming, Intimse32, ResponseStartTiming Intetch32, ResponseStartTiming Intetch32, ResponseStartTiming Intetch32 RedirectTiming Int32, DO MInteractiveTiming Int32, DOMContentLoadedTiming Int32, DOMCompleteTiming Int32, LoadEventStartTiming Int32, LoadEventEndTiming Int32, NSToDOMContentLoadedTiming Int32, FirstPaintTiming Int32, RedirectCount INT8, SocialSourceNetworkID Uint8, SocialSourcePage String, ParamPrice Int64, ParamOrderID String, ParamCurrency FixedString (3), ParamCurrencyID UInt16, GoalsReached Array (UInt32) , Строка OpenstatServiceName, Строка OpenstatCampaignID, Строка OpenstatAdID, Строка OpenstatSourceID, Строка UTMSource, Строка UTMMedium, Строка UTMCampaign, Строка UTMContent, Строка UTMTerm, Строка FromTag, HasGCLID UInt8, RefererHash UInt64, URLHash UInt64, URLHash UInt64, URLHash UInt64, URLHash UInt64, URLHash UInt64, URLHash UInt64, URLHash UInt64, URLHash UInt64, URLHash UInt64, URLHash UInt64, URLHash UInt64, URLHash UInt64, URLHash UInt64, URLHash UInt64, URLHash UInt64, URLHash UInt String, ShareTitle String, ParsedParams Nested (Key1 String, Key2 String, Key3 String, Key4 String, Key5 String, ValueDouble Float64), IslandID FixedString (16), RequestNum UInt32, RequestTry UInt8) ENGINE = MergeTree () PARTITION BY toYYYYMM (EventDate) ЗАКАЗАТЬ (Co unterID, EventDate, intHash42 (UserID)) ОБРАЗЕЦ ПО intHash42 (UserID) НАСТРОЙКИ index_granularity = 8192 "
    # импорт данных
    кошка hits_v1.цв | clickhouse-client --query "INSERT INTO datasets.hits_v1 FORMAT TSV" --max_insert_block_size = 100000
    # при желании вы можете оптимизировать таблицу
    clickhouse-client --query "OPTIMIZE TABLE datasets.hits_v1 FINAL"
    clickhouse-client --query "ВЫБРАТЬ СЧЕТЧИК (*) ИЗ datasets.hits_v1"
      

    Скачать и импортировать посещения из сжатого tsv-файла:

      curl https://datasets.clickhouse.tech/visits/tsv/visits_v1.tsv.xz | unxz --threads = `nproc`> visit_v1.tsv
    # Проверить контрольную сумму
    md5сумма посещений_v1.цв
    # Контрольная сумма должна быть равна: 6dafe1a0f24e59e3fc2d0fed85601de6
    # теперь создаем таблицу
    clickhouse-client --query "СОЗДАТЬ БАЗУ ДАННЫХ, ЕСЛИ НЕ СУЩЕСТВУЕТ наборов данных"
    clickhouse-client --query "СОЗДАТЬ ТАБЛИЦУ datasets.visits_v1 (CounterID UInt32, StartDate Date, Sign Int8, IsNew UInt8, VisitID UInt64, UserID UInt64, StartTime DateTime, Duration UInt32, UTCStartTime DateTime, PageViews Int32, Hits Int32, IsBounce UInt8 Строка, Строка StartURL, Строка RefererDomain, Строка StartURLDomain, Строка EndURL, Строка LinkURL, IsDownload UInt8, TraficSourceID Int8, SearchEngineID UInt16, Строка SearchPhrase, AdvEngineID UInt8, PlaceID Int32, RefererCategories Array (UInt16) Array (UIntategions), массив URLC16 (UIntategories) UInt32), RefererRegions Array (UInt32), IsYandex UInt8, GoalReachesDepth Int32, GoalReachesURL Int32, GoalReachesAny Int32, SocialSourceNetworkID UInt8, SocialSourcePage String, MobilePhoneModel String, ClientEventTime DateTime, RegionID с фиксированным идентификатором UIntring6, Client 16 (16), IPNetworkID UInt32, SilverlightVersion3 UInt32, CodeVersion UInt 32, ResolutionWidth UInt16, ResolutionHeight UInt16, UserAgentMajor UInt16, UserAgentMinor UInt16, WindowClientWidth UInt16, WindowClientHeight UInt16, SilverlightVersion2 UInt8, SilverlightVersion4 UInt16, FlashVersion3 UInt16, FlashVersion4 UIntone8, ClientT NetMajor UInt8, NetMinor UInt8, MobilePhone UInt8, SilverlightVersion1 UInt8, Возраст UInt8, Sex UInt8, Income UInt8, JavaEnable UInt8, CookieEnable UInt8, JavascriptEnable UInt8, IsMobile UInt8, BrowserLanguage UInt16, BrowserLanguage UInt16, Браузер UInt16, BrowserLanguage UInt16, Браузер UInt16, Браузер UInt16 , Массив Params (строка), Вложенные цели (ID UInt32, Serial UInt32, EventTime DateTime, Price Int64, OrderID String, CurrencyID UInt32), Массив WatchIDs (UInt64), ParamSumPrice Int64, ParamCurrency FixedString (3), ParamCurrencyID UInt16, ClickLogID ClickEventID Int32, ClickGoodEvent Int32, C lickEventTime DateTime, ClickPriorityID Int32, ClickPhraseID Int32, ClickPageID Int32, ClickPlaceID Int32, ClickTypeID Int32, ClickResourceID Int32, ClickCost UInt32, ClickClientIP UInt32, ClickDomainID UInt32, Строка ClickURL, ClickAttempt UIntoryMarket32, ClickOntategory, ClickOttempt UIntoryMarkT32, ClickOttempt UIntoryMarkat32, ClickOttempt , Строка ClickMarketPPName, Строка ClickAWAPSCampaignName, Строка ClickPageName, ClickTargetType UInt16, ClickTargetPhraseID UInt64, ClickContextType UInt8, ClickSelectType Int8, Строка ClickOptions, Строка ClickGroupBannerID Int32, OpenstatServiceNameTM, OpenstatMServiceNameTM, UenstatMServiceNameTM, OpenstatMServiceName String, UTMTerm String, FromTag String, HasGCLID UInt8, FirstVisit DateTime, PredLastVisit Date, LastVisit Date, TotalVisits UInt32, TraficSource Nested (ID Int8, SearchEngineID UInt16, Adv EngineID UInt8, PlaceID UInt16, SocialSourceNetworkID UInt8, строка домена, строка SearchPhrase, строка SocialSourcePage), Attendance FixedString (16), CLID UInt32, YCLID UInt64, NormalizedRefererHash UInt64, SearchPhraseHash UInt64, RefererDomainHash UInt64, Нормальный UInt64, URLScheme UInt64, OpenstatServiceNameHash UInt64, OpenstatCampaignIDHash UInt64, OpenstatAdIDHash UInt64, OpenstatSourceIDHash UInt64, UTMSourceHash UInt64, UTMMediumHash UInt64, UTMCampaignHash UInt64, UTMContentHash UInt64, UTMTermHash UInt64, FromHash UInt64, WebVisorEnabled uint8, WebVisorActivity UInt32, ParsedParams Уплотненный (Key1 String, Key2 String, Key3 String, Key4 String, Key5 String, ValueDouble Float64), Market Nested (Тип UInt8, GoalID UInt32, OrderID String, OrderPrice Int64, PP UInt32, DirectPlaceID UInt32, DirectOrderID UInt32, DirectBannerID UInt32, GoodID String, Good Строка имени, GoodQuantity Int32, GoodPrice Int64), IslandID FixedString (16)) ENGINE = CollapsingMergeTree (Sign) РАЗДЕЛЕНИЕ ПО toYYYYMM (StartDate) ORDER BY (CounterID, StartDate, intHash42 (UserID), VisitID) SAMPLE BY intHashINGS (User_ID) SETTular = 8192 "
    # импорт данных
    кошка visits_v1.цв | clickhouse-client --query "INSERT INTO datasets.visits_v1 FORMAT TSV" --max_insert_block_size = 100000
    # при желании вы можете оптимизировать таблицу
    clickhouse-client --query "OPTIMIZE TABLE datasets.visits_v1 FINAL"
    clickhouse-client --query "ВЫБРАТЬ СЧЕТЧИК (*) ИЗ datasets.visits_v1"
      

    Примеры запросов

    Учебник ClickHouse основан на наборе данных Яндекс.Метрики, и рекомендуемый способ начать работу с этим набором данных — просто пройти обучение.

    Дополнительные примеры запросов к этим таблицам можно найти среди stateful-тестов ClickHouse (они называются test.попадает в и тест . там заходит ).

    Системные таблицы съедают мой диск

    Системные таблицы съедают мой диск

    Примечание 1: Системная база данных хранит виртуальные таблицы ( частей, , таблиц, столбцов и т. Д. ) и таблицы * _log .

    Виртуальные таблицы не сохраняются на диске. Они отражают память ClickHouse (структуры c ++). Их нельзя изменить или удалить.

    Таблицы журнала именуются с постфиксом * _log и имеют механизм MergeTree.

    Вы можете удалить / переименовать / обрезать * _log таблицы в любое время. ClickHouse воссоздает их примерно за 7 секунд (период очистки).

    Примечание 2: Таблицы журнала с числовыми постфиксами (_1 / 2/3…) query_log_1 query_thread_log_3 являются результатами обновлений Clickhouse. Когда новая версия Clickhouse запускается и обнаруживает, что схема таблицы системного журнала несовместима с новой схемой, Clickhouse переименовывает старую таблицу query_log в имя с префиксом и создает таблицу с новой схемой.Вы можете удалить такие таблицы, если вам не нужны такие исторические данные.

    Вы можете отключить все / любое из них

    Не создавать таблицы журнала вообще (для того, чтобы эти изменения вступили в силу, требуется перезапуск).

      $ cat /etc/clickhouse-server/config.d/z_log_disable.xml
    
    
        
        
        
        
        
        
        
    
      

    Мы не рекомендуем удалять query_log и query_thread_log , поскольку ведение журнала запросов можно легко отключить без перезапуска через профили пользователей:

      $ cat / etc / clickhouse-server / users.d / z_log_queries.xml
    
        <профили>
            <по умолчанию>
                 0 
                 0 
            
        
    
      

    Подсказка: z_log_disable.xml назван с ** z _ ** в начале, это означает, что эта конфигурация будет применена последней и переопределит все другие файлы конфигурации с этими разделами (конфигурации применяются в алфавитном порядке).

    Вы можете настроить TTL

    Пример для query_log . Удаляет разделы с данными старше 14 дней:

      $ cat /etc/clickhouse-server/config.d/query_log_ttl.xml
    
    
        
             система 
             query_log 
    ENGINE = MergeTree РАЗДЕЛЕНИЕ ПО (event_date) ЗАКАЗАТЬ (event_time) TTL event_date + ИНТЕРВАЛ 14-ДНЕВНОГО УДАЛЕНИЯ НАСТРОЙКИ ttl_only_drop_parts = 1 7500

    После этого необходимо перезапустить ClickHouse и удалить или переименовать существующую систему.query_log, затем CH создает новую таблицу с этими настройками.

      ПЕРЕИМЕНОВАТЬ ТАБЛИЦУ system.query_log НА system.query_log_1;
      

    Важной частью здесь является ежедневное разбиение на разделы PARTITION BY (event_date) и ttl_only_drop_parts = 1 . В этом случае ClickHouse удаляет целые разделы. Удаление разделов — очень простая операция для CPU / Disk I / O.

    Обычный TTL (без ttl_only_drop_parts = 1 ) — это операция с большим объемом операций ввода-вывода ЦП / диска, которая перезаписывает части данных без просроченных строк.

    Вы можете добавить TTL без перезапуска ClickHouse (и удаления или переименования таблицы):

      ALTER TABLE system.query_log ИЗМЕНИТЬ TTL event_date + INTERVAL 14 DAY;
    
    ИЗМЕНИТЬ ТАБЛИЦУ system.query_log ИЗМЕНИТЬ НАСТРОЙКУ ttl_only_drop_parts = 1;
      

    Но в этом случае ClickHouse удалит только целые месячные разделы (будут хранить данные старше 14 дней).

    Еще один способ настройки TTL для системных таблиц

    Этот способ просто добавляет TTL к таблице и оставляет ежемесячное (по умолчанию) разделение (будут хранить данные старше 14 дней).

      $ cat /etc/clickhouse-server/config.d/query_log_ttl.xml
    
    
        
             система 
             query_log 
    event_date + ИНТЕРВАЛ 30-ДНЕВНОГО УДАЛЕНИЯ

    После этого вам нужно перезапустить ClickHouse и удалить или переименовать существующую таблицу system.query_log, тогда CH создаст новую таблицу с этой настройкой TTL.

    Вы можете отключить вход на уровне сеанса или в профиле пользователя (для всех или определенных пользователей)

    Но только для журналов, созданных на уровне сеанса ( query_log / query_thread_log )

    В этом случае перезапуск не требуется.

    Давайте отключим ведение журнала запросов для всех пользователей (профиль = по умолчанию, все остальные профили наследуют его).

      кот /etc/clickhouse-server/users.d/log_queries.xml
    
        <профили>
            <по умолчанию>
                 0 
                 0 
            
        
    
      
    Последнее изменение 2021 г.08.12 : Общие исправления и обновления. (5969b688)

    Успокаивающийся Clickhouse :: Блог :: TheOrangeOne

    Clickhouse — это движок базы данных, ориентированный на столбцы, в основном предназначенный для аналитики. Он был разработан и развернут Яндексом в своем предложении для аналитики, но Plausible, мой любимый поставщик аналитики, использует его для хранения аналитических данных, поскольку он больше подходит для этого, чем PostgreSQL.

    К сожалению, официальный док-контейнер довольно интенсивен. Как только Plausible запускается, Clickhouse перескакивает примерно на 10% использования ЦП и поддерживает 30 МБ / с записи в каталог базы данных.Мои почасовые снимки ZFS занимают более 1 ГБ каждый! Сервер, на котором я запускаю Plausible, достаточно мощный, но даже это просто безумие!

    Сначала я подумал, что это ошибка в Plausible, так как она возникала только во время работы Plausible. Однако после того, как возникла проблема и сказали, что производственные серверы Plausible не , похоже, страдают от этой проблемы, пришло время копнуть глубже.

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

      $ df -hs clickhouse /
    8.2G кликхаус
      

    Ну, это точно не так! Давайте исследуем & mldr;

    # Глядя на данные

    Глядя на структуру файловой системы clickhouse / (красивый простой макет!), Большая часть использования пришла из таблиц system.query_log и system.query_thread_log . Эти таблицы с метко названными названиями отвечают за регистрацию всех запросов, выполняемых Clickhouse, и для меня в них было более 20 миллионов строк, по в каждой, ! После просмотра документации он включен для помощи в отладке.Для большинства людей все эти данные на самом деле не нужны, и определенно не стоит жертвовать огромным объемом использования диска по сравнению с фактическими сохраненными данными.

    # Файл журнала

    Если посмотреть на файл журнала Clickhouse ( /var/log/clickhouse/clickhouse-server.log ), он оказался невероятно подробным и выводил гораздо больше, чем нужно. Уровень журнала по умолчанию установлен на , трассировка , что в основном означает, что регистрируется абсолютно все, даже больше, чем обычные журналы отладки .Уровень журнала , трассировка соответствует мантре помощи при отладке, но, опять же, в большинстве сред он не нужен.

    # Успокоение

    Итак, учитывая то, как ведет себя Clickhouse, и регистрирует слишком много данных как в системных таблицах, так и в файлах журналов, как мы можем сделать так, чтобы снизить активность Clickhouse? Скорее всего, это дополнительная работа по ведению журнала как в таблицах, так и в файлах журналов, которая использует дополнительные ресурсы.

    # Остановить ведение журнала запросов

    Первый шаг и, вероятно, тот, который имеет наибольшее значение, — полностью отключить ведение журнала запросов.Это должно уменьшить количество циклов ЦП, затрачиваемых на сбор данных. Это выполняется с помощью переменных log_queries и log_query_threads в users.xml :

      
        <профили>
            <по умолчанию>
                 0 
                 0 
            
        
    
      

    # Уменьшить ведение журнала

    Шаг 2 — уменьшить уровень журнала как для файлового регистратора, так и для любых других журналов таблиц, которые мы не можем полностью отключить.Это изменение сделано в config.xml . Я установил уровень , предупреждение , так что все еще очевидно, когда что-то не так, но все это входит в оболочку, так что все в порядке. Все журналы таблиц полностью отключены.

      
        
             предупреждение 
             true 
        
        
        
        
        
        
        
    
      

    Для упрощения отладки я также отправляю журналы на консоль с true , поэтому его можно увидеть с помощью журналов docker-compose .

    Помимо уменьшения уровня журнала, я переместил файлы журнала на точку монтирования tmpfs . Изначально я сделал это, чтобы уменьшить количество операций записи на диски, но это все равно есть на всякий случай, если что-то изменится.

    # Освободите место на диске

    Последний шаг — освободить место на диске, которое мы потеряли из-за чрезмерно подробных журналов. Поскольку все было зарегистрировано в таблицах, это все по-прежнему. Вероятно, это не сильно повлияет на производительность во время выполнения, но использование диска увеличилось с 8 ГБ до 200 МБ, что очень хорошо!

    1. Войдите в оболочку Clickhouse: docker-compose exec clickhouse bash
    2. Обрезать существующие журналы:
      clickhouse-client -q "ВЫБРАТЬ имя ИЗ системы.таблицы WHERE name LIKE '% log%'; "| xargs -I {} clickhouse-client -q" TRUNCATE TABLE system. {}; "
      
    1. Quit: \ q

    # Review

    Прочитав документацию Clickhouse, вы обнаружите, что ее легко настроить для любого масштаба — неудивительно, учитывая, что ее использует Яндекс. С учетом сказанного, хотя настройки по умолчанию могут иметь смысл в таком масштабе, для меньшего варианта использования они не особенно подходят.

    В настоящее время я все еще убежден, что в Plausible есть небольшая ошибка в проверках работоспособности, выполняющих слишком много запросов, но это еще один день расследования.

    После внедрения этих изменений не только использование ресурсов упало с обрыва, но Plausible даже кажется немного более быстрым!

    YNDX | Яндекс NV Cl A Годовой баланс

    48 — Заработная плата 905 905Капитализированная аренда 905 Отложенные налоги — Кредит 905 9 0548 1,439 905 Собственный капитал / совокупные активы 905
    ST Долг и текущая часть Долгосрочный долг 121 171 94 294
    Краткосрочный долг Краткосрочный долг
    Текущая часть долгосрочного долга 294
    Кредиторская задолженность 160 129
    Рост кредиторской задолженности 17.43% 66,35% 32,71% 24,26%
    Налог на прибыль к уплате 155 129 59 73 145 97 64 92 62
    Дивиденды к выплате
    40 24 33 28
    Прочие краткосрочные обязательства 90 57 40 58 35
    429 619 240 9 0549
    Итого оборотные активы ТОЛЬКО ДЛЯ РАСЧЕТНЫХ ЦЕЛЕЙ 3,926 1,937 1,324 1,403 1,228
    2268 1869
    Запасы ТОЛЬКО ДЛЯ РАСЧЕТНЫХ ЦЕЛЕЙ 65 13 4 Денежные средства 905 СРОЧНЫЕ ОПЛАТЫ ДЕНЕЖНЫЕ СРЕДСТВА 905 ИЛИ СРОЧНЫЕ ОПЛАТЫ 1,422 993 1,151 1,035
    Коэффициент тока 4.71 2,58 3,09 2,27 5,13
    Коэффициент быстрой скорости 4,63 2,57 3,08 2,2762 5,13 905 2,31 1,86 4,32
    Долгосрочная задолженность 1,299 175 181 307
    1,126 307
    Неконвертируемая задолженность 1,126 (294) 307
    Капитализированные обязательства по аренде И сборы
    Отложенные налоги 30 2 (28) (21) (21) 52 31 23 17 17
    Отложенные налоги — дебет 22 30 51 38 11
    Прочие обязательства
    Отложенное налоговое обязательство — необлагаемые резервы
    Прочие обязательства (искл.Доходы будущих периодов) 63 38 8 23 18
    Доходы будущих периодов 2,249 993 641 658 582
    Неакционерные резервы Итого 32.26% 21,19% 17,16% 29,03% 31,12%
    Привилегированные акции (балансовая стоимость) Привилегированные акции, подлежащие выкупу
    Невозвратные привилегированные акции 905 выпусков приоритетных акций для ESOP
    Гарантии ESOP — привилегированные акции — 905
    Обыкновенный капитал (всего) 4,407 3,138 2,578 1,263
    Номинальная / балансовая стоимость обыкновенных акций 4 4 4 5 5
    Дополнительный выплачиваемый капитал 1,096 1,005 286 272
    Нераспределенная прибыль 1,987 1,967 1,607 1,182 905 905 905 905 905
    Совокупная корректировка пересчета / нереализованная для.Exch. Прибыль 243 78 118 32 15
    Нереализованная прибыль / убыток Рыночные ценные бумаги Запасы
    Прочие ассигнованные резервы
    Казначейские акции (0) (7) (155) (66) 137
    Общий капитал / Всего активов 63.23% 66,96% 69,04% 63,45% 67,56%
    Всего Собственный капитал 4,407 3,138 2,578 63,23% 66,96% 69,04% 63,45% 67,56%
    Накопленная доля меньшинства 314
    Итого собственный капитал 4,722 3,694 3,094 1,609 1,287
    Обязательства и собственный капитал 48649 905

    почему лань s Яндексу нужна собственная система MapReduce и принципы ее работы / Блог Яндекса / Sudo Null IT News

    Последние шесть лет Яндекс работал над системой под кодовым названием YT (по-русски мы называем это «Yt»).Это основная платформа для хранения и обработки больших объемов данных — о ней мы уже говорили на YaC 2013. С тех пор она продолжала развиваться. Сегодня я расскажу о том, как начиналось развитие YT, что в нем появилось нового и что еще мы планируем сделать в ближайшее время. Кстати, 15 октября в офисе Яндекса мы поговорим не только о YT, но и о других наших инфраструктурных технологиях: Media Storage, Yandex Query Language и ClickHouse. На встрече мы раскроем секрет — расскажем, сколько систем MapReduce в Яндекс.

    Какую проблему решаем?


    По роду своей деятельности Яндекс постоянно сталкивается с необходимостью хранить и обрабатывать данные таких объемов, с которыми обычному пользователю никогда не приходится иметь дело. Журналы и индексы поиска, пользовательские данные, картографическая информация, промежуточные данные и результаты алгоритмов машинного обучения — все это может занимать сотни петабайт дискового пространства. Для эффективной обработки таких объемов традиционно используется парадигма MapReduce, позволяющая добиться хорошего баланса между вычислительной эффективностью и простотой пользовательского кода.

    В той или иной форме вычисления, подобные MapReduce, используются во всех крупнейших компаниях, занимающихся большими данными: Google, Microsoft, Facebook, Yahoo и других. Кроме того, де-факто MapReduce давно стал стандартом при работе с данными гораздо более скромного размера — не в последнюю очередь благодаря успешной реализации с открытым исходным кодом в фреймворке Hadoop MapReduce и наличию развитой экосистемы, которая предоставляет удобные аналитические инструменты поверх Уменьшение карты.

    Конечно, далеко не все задачи успешно ложатся на модель MapReduce.Основное ограничение заключается в том, что он включает пакетное выполнение, при котором значительные объемы данных проходят через целую цепочку преобразований. Эти преобразования занимают минуты, часы, а иногда и многие дни. Такой способ работы не подходит для интерактивных ответов пользователям, поэтому, помимо вычислений MapReduce, традиционно используются такие системы, как хранилище KV (хранилище ключ-значение), которые позволяют читать и записывать данные (а также, возможно, некоторые вычисления. на них) с малой задержкой. Таких систем в мире много десятков: начиная с классических СУБД (Oracle, Microsoft SQL Server, MySQL, PostgreSQL), подходящих для хранения десятков и сотен терабайт данных, и заканчивая NoSQL-системами (HBase, Cassandra),

    В случае MapReduce наличие нескольких разных и одновременно используемых систем не имеет особого смысла.Дело в том, что все они, по сути, решат одну и ту же проблему. Однако для KV-хранилищ степень разнообразия задач и общий уровень специфичности намного выше. В Яндексе мы используем сразу несколько таких систем. Часть данных хранится в MySQL, который зарекомендовал себя с точки зрения надежности и разнообразия функций. Там, где объем данных велик и важна скорость обработки, мы используем ClickHouse, проприетарную СУБД Яндекса. Наконец, последние три года мы активно работали над задачей создания хранилища KV в рамках YT.Мы используем его, когда требуется высокая надежность хранения, поддержка транзакций, а также интеграция с вычислениями MapReduce.

    Почему бы не использовать стек Hadoop?


    Для значительной части нашей собственной инфраструктуры больших данных существуют общедоступные продукты, решающие аналогичные проблемы. В первую очередь, конечно, речь идет об экосистеме Hadoop, на основе которой — теоретически — можно построить весь стек вычислений: от распределенной файловой системы (HDFS) и фреймворка MapReduce до репозиториев KV (HBase , Cassandra), инструменты для аналитики (Hive, Impala) и системы обработки данных (Spark).

    Для малых и средних компаний, работающих с большими данными, Hadoop часто является безоговорочным выбором. В свою очередь, крупные игроки либо активно используют и развивают Hadoop (например, Yahoo и Facebook), либо создают собственную инфраструктуру (Google, Microsoft).

    Выбирая между этими двумя возможностями, Яндекс пошел вторым путем. Это решение было непростым и, конечно, нельзя считать единственно правильным. Было учтено множество факторов. Постараемся кратко резюмировать наиболее значимые:

    • Исторически сложилось так, что в Яндексе наибольший объем вычислительного кода написан на C ++; в то же время Hadoop в основном ориентирован на платформу Java.Само по себе это не смертельно — вы всегда можете написать адаптеры для поддержки старого кода для C ++ и разработать новые на Java. Однако стоит признать, что за годы разработки компания накопила немалый опыт именно в работе с C ++, а разработка на Java представлена ​​гораздо скромнее.
    • Примеры успешного использования Hadoop в таких компаниях, как Yahoo и Facebook, показывают, что для эффективного использования Hadoop обычно не берется его ванильная версия, а выполняется форк с последующей глубокой доработкой.Для его создания крайне желательно или даже необходимо иметь в компании разработчиков ядра Hadoop. Эти специалисты крайне редки даже по меркам американского ИТ-рынка, поэтому для Яндекса нанять их в достаточном количестве — очень сложная задача.
    • Возможно, вышеупомянутый форк платформы никогда не будет вливаться в основную ветку разработки и больше не будет совместим с этой веткой. Тогда преимущество использования готовых экосистемных решений будет ограничиваться двумя наборами инструментов: которые вы можете «взять с собой» в момент разделения, и которые можно передавать по форку.
    • Но зачем делать форк Hadoop? Почему бы не использовать общедоступные и развивающиеся версии, по возможности участвуя в их разработке? Дело в том, что, хотя сам Hadoop довольно хорош, он далек от совершенства. При работе над собственной инфраструктурой в Яндексе мы неоднократно сталкивались с задачами, которые можно было решить только ценой очень радикальных изменений наших систем. Поскольку у нас недостаточно знаний в области разработки Hadoop, мы не можем вносить столь масштабные изменения в общедоступные ветки.Такие радикальные исправления почти наверняка не пройдут проверку кода в разумные сроки.
    • Также можно было предположить, что для полноценной интеграции Hadoop внутри компании не обязательно иметь высококвалифицированных специалистов по этой платформе — достаточно ограничиться услугами крупных интеграторов решений Hadoop, например, Cloudera. Однако здравый смысл и опыт близких нам по активности компаний показывают, что хотя такая помощь может быть полезна на первом этапе внедрения, сложные задачи, требующие значительных доработок кодовой базы Hadoop, все равно придется решать самостоятельно ( см., например, опыт работы с почтой.RU ).

    Конечно, отказавшись от повторного использования готовых Hadoop-инструментов, мы сильно усложнили свою задачу, потому что нет возможности конкурировать с Hadoop-сообществом, насчитывающим многие сотни и тысячи разработчиков по всему миру. С другой стороны, как указывалось выше, фактическая невозможность получить по разумной цене критические изменения экосистемы для Яндекса, а также опыт компаний, использующих Hadoop, перевешивали все преимущества.

    Учитывая сделанный нами выбор, мы вынуждены активно работать над наиболее актуальными частями инфраструктуры, вкладывая основные усилия в улучшение небольшого количества ключевых систем: самой платформы YT, а также инструментов, созданных на ее основе. .

    Что мы теперь знаем?


    Из вышесказанного следует, что YT как минимум является системой MapReduce. Верно, но не все. С самого начала YT создавался с целью стать основой для решения широкого круга вычислительных задач в области больших данных.

    За три года, прошедшие со дня публикации отчета о YT на YaC, система претерпела значительное развитие. Многие из упомянутых тогда проблем были успешно решены. Однако нам не скучно, потому что компания (а вместе с ней и инфраструктура) активно развивается.Так что новые задачи приходят каждый день.

    Кратко опишем текущую архитектуру YT.

    Кластер


    YT — это многокомпонентная система, единицей развертывания которой является кластер . Теперь мы поддерживаем кластеры с общим количеством серверов ( узел, ) до 10 000. На таком количестве машин мы можем хранить сотни петабайт данных, а также планировать и выполнять вычисления на сотнях тысяч ядер ЦП.

    Большинство наших кластеров YT полностью расположены в одном центре обработки данных.Это сделано потому, что в процессе вычислений MapReduce важно иметь однородную сеть между машинами, чего практически невозможно достичь в наших масштабах, если они географически разделены. Из этого правила есть исключения: некоторые кластеры YT, в которых внутренние потоки данных невелики, тем не менее распределяются между несколькими DC. Так что полный отказ одного или нескольких из них не влияет на работу системы.

    ДФС


    Самый нижний уровень YT — это распределенная файловая система (DFS).Ранние реализации DFS были похожи на классические HDFS или GFS. Данные хранятся на дисках узлов кластера в виде небольших (обычно до 1 ГБ) фрагментов, называемых фрагментами . Информация обо всех блоках, доступных в системе, а также о том, какие файлы и таблицы присутствуют в DFS и из каких блоков они состоят, находится в памяти главных серверов .

    Пространство имен (структура каталогов, имена файлов и таблиц в них, мета-атрибуты, права доступа и т. Д.) нашего DFS называется Cypress . В отличие от большинства традиционных файловых систем, Cypress поддерживает транзакционность, то есть позволяет атомарно выполнять сложные операции со своей структурой и данными. Например, в рамках транзакции Cypress можно атомарно загрузить в систему несколько файлов, а также отметить в мета-атрибутах факт прихода нового фрагмента данных. Cypress также поддерживает блокировку системы на узлах. Мы активно используем эту возможность на практике: один из кластеров YT распределен между дата-центрами и практически не хранит чанки, но его кипарис используется различными инфраструктурными процессами как высокодоступное хранилище метаданных и служба координации (по аналогии с Chubby, Zookeeper или etcd).

    Учитывая количество машин, составляющих кластеры, отказы оборудования происходят каждый день и не являются уникальным явлением. Система разработана таким образом, чтобы выдерживать большинство типичных отказов автоматически, без вмешательства человека. В частности, в системе отсутствует так называемая единая точка отказа (SPoF), то есть ее работа не может быть прервана взломом одного сервера. Более того, с практической точки зрения важно, чтобы система продолжала работать в ситуации, когда большие подмножества произвольного размера (например, два случайно выбранных сервера в кластере) или даже целые структурные группы машин (скажем, стойки) ) неудача.

    Для распределенной DFS главный сервер, если он один, формирует естественный SPoF, поскольку при его выключении система перестает принимать и передавать данные. Следовательно, с самого начала было реплицировано мастер-серверов . В простейшем случае мы можем предположить, что вместо одного главного сервера у нас есть три, состояние которых поддерживается идентичным. Система может продолжать работать, если какой-либо из трех главных серверов выйдет из строя. Такое переключение происходит полностью автоматически и не вызывает простоев.Синхронизация между набором главных серверов обеспечивается с использованием одной из разновидностей консенсусного алгоритма . В нашем случае мы используем библиотеку собственной разработки — она ​​называется Hydra. Ближайшим аналогом Hydra с открытым исходным кодом является алгоритм Raft. Близкие идеи (алгоритм ZAB) используются в системе Apache Zookeeper.

    Описанная схема с тремя реплицированными мастер-серверами хороша с точки зрения отказоустойчивости, но не позволяет масштабировать кластер под нужные нам тома.Дело в том, что по количеству метаданных мы остаемся ограниченными памятью отдельного мастер-сервера. Итак, около года назад мы реализовали прозрачную для пользователя систему сегментирования метаданных блоков, которую мы называем многоячеечной. При его использовании метаданные распределяются (как говорится, сегмент ) между разными триплетами главных серверов. Внутри каждого триплета по-прежнему работает Hydra, обеспечивая отказоустойчивость.

    Обратите внимание, что сегментирование метаданных фрагментов в HDFS в настоящее время не поддерживается. Вместо этого предлагается использовать менее удобную федерацию HDFS — проект сомнительной полезности, потому что для небольших объемов данных он не имеет смысла, а опыт его использования в крупных компаниях, судя по отчетам, не всегда положительный.

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

    Последний метод особенно интересен. Если для хранения тома X используется обычная тройная репликация, необходимо потратить еще 2X на дополнительные реплики, затем с использованием соответствующих кодов стирания эти накладные расходы уменьшаются до X / 2. Учитывая объемы, с которыми нам приходится иметь дело (десятки и сотни петабайт) ) выигрыш огромен. В рамках наших существующих систем кодирование со стиранием доступно уже около четырех лет. Обратите внимание, что аналогичная поддержка в Hadoop (так называемая EC-HDFS) стала доступна менее года назад.

    Таблицы

    В отличие от пакета HDFS с Hadoop Mapreduce, где основной видимой для пользователя единицей хранения является файл, хотя файлы YT DFS присутствуют, они не используются так активно. Вместо этого данные в основном хранятся в таблицах, — наборах строк, состоящих из столбцов данных. При разработке системы мы приложили немало усилий, чтобы добиться эффективного и компактного хранения данных в таблицах. Мы объединяем идеи форматов хранения jarred (Hadoop ORC, Parquet) с различными алгоритмами сжатия блоков (lz4, gzip, brotli и т. Д.)).

    Для пользователя такие детали реализации прозрачны: он просто устанавливает макет таблицы (указывает имена и типы столбцов), желаемый алгоритм сжатия, метод репликации и т. Д. Если в Hadoop пользователи вынуждены представлять таблицы в виде набора файлов, содержащих данные в определенном формате, пользователи YT используют термины таблиц в целом и их частей: они выполняют сортировку, операции сопоставления, сокращения и объединения, считывают таблицы по диапазонам строк и т. д.

    MapReduce Scheduler


    Большинство вычислений с данными, которые мы храним, выполняется в модели MapReduce.Как уже было сказано, общий пул вычислительной мощности кластера составляет сотни тысяч ядер. Их использование контролируется центральным планировщиком. Он разбивает большие вычисления (так называемые операции ), такие как отображение, сортировка, сокращение и т. Д., На отдельные локальные части ( задание ), распределяет ресурсы между ними, отслеживает их выполнение и обеспечивает отказоустойчивость путем перезапуска части вычислений в случае, если отказов.

    Мы выделяем два основных ресурса для планирования: CPU и память.Чтобы разделить ресурсы между операциями, мы используем очень гибкую схему, Hierarchical Dominant Resource Fair Share, которая позволяет группировать вычисления в древовидную структуру и устанавливать ограничения (нижние и верхние) для отдельных поддеревьев. В частности, в рамках единого кластера на разных проектах одновременно проводятся как производственные, так и испытательные схемы. В том же кластере некоторые ресурсы выделяются для специальной аналитики.

    За день на типичном большом кластере YT выполняется более 250 тысяч операций, всего 100 миллионов заданий.

    На данный момент активный планировщик в кластере всегда один, но для отказоустойчивости в системе всегда есть пассивные резервные реплики. Когда основной планировщик выходит из строя на время порядка десяти секунд, он переключается на другую свою реплику. Последний восстанавливает состояние вычислительных операций и продолжает их выполнение.

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

    В настоящее время слой YT MapReduce ежедневно используется многими сотнями разработчиков, аналитиков и менеджеров Яндекса для выполнения аналитических расчетов с данными. Также его используют десятки различных проектов, которые автоматически подготавливают данные для наших основных сервисов.

    КВ накопитель


    Как уже неоднократно говорилось, расчеты MapReduce не охватывают весь спектр стоящих перед нами задач. Классические таблицы MapReduce (мы называем их статическими ) отлично подходят для эффективного хранения больших объемов данных и их обработки в операциях MapReduce. С другой стороны, это не способ заменить KV-накопитель. Действительно, типичное время чтения строки из статической таблицы измеряется сотнями миллисекунд. Запись в такую ​​таблицу занимает не меньше времени и возможна только в конце, поэтому нет оснований говорить о каком-либо использовании таких таблиц.

    Около трех лет назад в рамках YT мы начали работу над созданием новых динамических таблиц , подобных тем, которые используются в таких системах, как HBase и Cassandra. Для этого нам потребовалось провести множество улучшений базовых слоев (Hydra, DFS). В результате у нас действительно есть возможность создавать динамические таблицы для пользователя в рамках общего пространства имен MapReduce. Они поддерживают эффективные операции чтения и записи строк и их диапазонов по первичному ключу. Наша система отличается транзакционностью и строгой согласованностью (так называемый уровень изоляции snapshot ), а также поддержкой распределенных транзакций — то есть возможностью атомарно изменять несколько строк одной таблицы или даже несколько разных таблиц в одной транзакции.

    С точки зрения ближайших аналогов наши динамические таблицы близки к классическим идеям BigTable и HBase, но адаптированы для поддержки более сильной транзакционной модели. В то же время, несмотря на схожие базовые принципы, нам не кажется реалистичным добавлять аналогичные функции к существующим системам с открытым исходным кодом, скажем, в HBase, путем фиксации исправлений. (Например, см. Билет, в котором обсуждается перенос части кода из проекта HydraBase, который разрабатывается на Facebook, на HBase.Пример особенно показателен из-за того, что функциональность HydraBase, которая увеличивает доступность системы за счет горячей репликации региональных серверов, чрезвычайно важна для наших приложений, и мы поддерживаем ее внутри YT.)

    В верхней части этих таблиц, у нас также есть возможность распределенно выполнять интерактивные запросы, включая фильтрацию, агрегирование и простейшие типы объединений. (Среди общедоступных систем такие возможности предоставляет, например, Impala или Presto.) В Яндексе крупнейшим пользователем динамических таблиц является Баннерная система, которая хранит информацию о кликах и показах рекламы и предоставляет рекламодателям возможность анализировать свои кампании. Как и любой достойный распределенный репозиторий KV, YT может обрабатывать многие миллионы операций чтения и записи в секунду.

    Какие у нас планы?


    Даже из приведенного выше описания легко понять, что система активно развивается. Действительно, учитывая масштаб и амбициозность стоящих перед нами задач, трудно придумать хотя бы один аспект системы, который нельзя было бы улучшить после получения четкой и хорошо измеримой выгоды.

    В заключительной части стоит выделить ряд долгосрочных девелоперских проектов, которыми мы занимаемся в рамках YT.

    Межцентровая репликация

    Компании масштаба Яндекса не могут позволить себе зависеть от одного центра обработки данных, и фактически кластеры YT развертываются сразу в нескольких. Задача синхронизации данных между ними одновременно сложна и важна, поскольку она позволяет перенести некоторые заботы об отказоустойчивости с высокоуровневых сервисов на основную инфраструктуру.

    В случае, когда объем хранимых данных невелик, мы традиционно развертываем инсталляции YT между центрами обработки данных, которые могут выдержать потерю целых центров обработки данных. С другой стороны, у этого подхода есть несколько недостатков. В частности, разработка и обновление таких инсталляций между центрами обработки данных — очень нетривиальная задача. Дело в том, что требуется обеспечить максимально близкое к 100% время безотказной работы.

    Система из набора полунезависимых кластеров, по одному в каждом центре обработки данных, выглядит более удобной с операционной точки зрения.Поэтому мы часто используем отдельные кластеры с настроенными автоматическими процессами для репликации данных между статическими таблицами в них.

    Мы также учимся реплицировать динамические таблицы — это позволяет нам реализовывать различные режимы репликации (синхронный, асинхронный) и запись кворума в наборе центров обработки данных.

    Дальнейшее масштабирование мастер-серверов

    Итак, в YT мы узнали, как сегментировать часть метаданных главного сервера, относящуюся к чанкам. Но пользователи в большинстве случаев работают не напрямую с чанками, а с деревом файлов, таблиц и каталогов, то есть с Cypress.Мы по-прежнему храним это дерево в памяти одного мастер-сервера (трех с учетом репликации), что, естественно, ограничивает количество узлов в нем на уровне около 100 миллионов. По мере роста числа пользователей и расширения кластеров нам, вероятно, придется решать проблему сегментирования этого фрагмента метаданных.

    Интеграция статических и динамических таблиц

    Несмотря на то, что изначально динамические таблицы создавались «отдельно» от модели MapReduce и статических таблиц, довольно быстро стали очевидны преимущества возможности объединения этих инструментов в одном вычислении.

    Например, вы можете построить длинную цепочку MapReduce, вычисляя статическую таблицу с индексом для сервиса, а затем легким движением руки превратить ее в динамическую, загрузить в память и дать передовой- конец сервиса возможность сбора интересующих его данных с задержкой, измеряемой в миллисекундах.

    Или, скажем, можно в процессе выполнения сложных вычислений MapReduce подать заявку на получение справочных данных в динамическую таблицу, выполнив так называемое соединение на стороне карты.

    Интеграция динамики и статики в рамках YT — это большой и сложный проект, который еще далек от завершения, однако он позволяет кардинально упростить и оптимизировать решение ряда задач, которые традиционно считаются сложными.

    Облачная мощность

    Не секрет, что значительную часть парка серверов Яндекса составляют так называемые поисковые кластеры , состоящие из машин, которые непосредственно хранят данные поискового индекса и отвечают на запросы пользователей.

    Оставить комментарий

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *