Поколдовать как пишется правильно

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

Бывает очень полезно искать локальные экстремумы. С точки зрения математического моделирования на ценовых рядах, это не такая тривиальная задача. Я пробовал разные методы, и на удивление, весьма неплохими оказались достаточно известные всем — фракталы Вильямса. Те самые которые ищут максимум или минимум цен среди N+1 значений по простому условию –центральное из них было выше, или ниже тех, которое идут до неё, и после. Особенно хорошо фракталам удается находить такие экстремумы на больших временных интервалах и с большим количеством N (График 1, Фаркталы Вильямса N=30 Days)

Модернизированный фрактал Вильямса. Фрактальные уровни и анализ отклонений.

Однако, самый большой недостаток фракталов Вильямса, это скорость их появления. То есть существенное запаздывание появление, что делает их абсолютно непригодным с точки зрения проведения хоть каких-нибудь значимых динамических исследований. Они прекрасно отображают историю, но и только. Думаю, я не ошибусь, если скажу, что и в ТА его редко используют. Помнится в 2017 году мы с другом написали робота, который должен был торговать от уровней, которые показывал последний известный фрактал (График 2. Пример построения фрактального уровня).
Модернизированный фрактал Вильямса. Фрактальные уровни и анализ отклонений.
Пользовались мы разными логиками, но в конечном итоге, все варианты были убыточными, или как говорят правильно — имели отрицательное мат ожидание. Первое, что приходило на ум – это сместить появление фрактала, а соответственно и фрактального уровня на момент его появления (График 3. Пример построения фрактального уровня на момент его появления) и прогнать логики еще раз. К тому же появились и другие логики, но опять же мат ожидание было отрицательным. Второе предположение — это считать, что последний известный максимум (минимум) уже после известного последнего фрактала, считать как не сформировавшийся фрактал. И тоже все тесты были отрицательными. На этом эксперименты с фракталами тогда закончились.
Модернизированный фрактал Вильямса. Фрактальные уровни и анализ отклонений.
Долгое время у меня эти фракталы не шли из головы именно из-за того, что локальные экстремумы на истории они действительно очень неплохо определяли. А зная, экстремумы, можно легко считать различные текущие отклонения от них цен, что дает хорошее поле для дальнейших исследований, и даже совсем не обязательно для построения торгового алгоритма.

И вот неделе две назад я решил немного дописать и модифицировать наш старый фрактальный индикатор, оставив в нем логику — если мы знаем последний наблюдаемый фрактал, но цена ушла выше него (или ниже, если речь идет о нижнем фрактале), то считать их как новые несформировавшиеся фракталы и новыми фрактальными уровнями. Соответственно, если цена выросла, а потом откатилась назад, то индикатор должен был фиксировать последний известный максимум, даже если формально он еще не стал фаркталом. Таким образом, такой индикатор был лишен недостатка классических фракталов Вильямса, а именно момента их появления. На Графиках 4 и 5 показан результат построения модернизированного фрактального уровня, они изображены сплошной линией. Прерывистой нанесены фрактальные уровни с учетом времени их появления (определения). Я не тестировал получившийся индикатор на нашем старом роботе, хотя эту работу можно было бы провести ради интереса, но что-то мне подсказывает, что даже в таком виде результатом было бы все-равно отрицательное математическое ожидание.
Модернизированный фрактал Вильямса. Фрактальные уровни и анализ отклонений.
Модернизированный фрактал Вильямса. Фрактальные уровни и анализ отклонений.
Получив новый модернизированный фрактальный индикатор я сразу пошел дальше. Мне стало интересно провести анализ отклонений цены от этого индикатора и поиск редких событий, которые могли бы предсказать точки потенциальных входов или выходов из позиций в ценных бумагах. Теперь сделать это было просто – достаточно было рассчитать сами отклонения, понятное дело в процентах, на выбранном интервале, а редкость можно было бы определить перцентилями, которое можно задавать самому. На графике 6, зелеными стрелочками отмечены потенциальные моменты покупок, красными – продаж. На нижней части графика отображены сами отклонения и перцентили.

Модернизированный фрактал Вильямса. Фрактальные уровни и анализ отклонений.
Конечно, уже тогда стало понятно, что индикатор будет показывать немало ложных сигналов, потому что любой выброс типа 2020 года или 2008 года, слишком сильно скажется на величине перцентиля и будет совсем непоказательным. Поэтому, по сути, было два пути:

  • Сделать расчет самих перцентилей по скользящему окну
  • Каким-то образом отнормировать отклонения

Сначала я решил отнормировать отклонения, и ничего не придумал лучше, чем сделать это по волатильности. Ситуация явно улучшилась. При этом я могу считать волатильность по любому выбранному диапазону, а также еще и разными методиками – обычным образом или методом JPMorgan, о которой писал в одной из своих более ранних статей. На графиках 7 и 8 показаны результаты с нормировкой на волатильность посчитанную двумя способами в окне в 365 дней.
Модернизированный фрактал Вильямса. Фрактальные уровни и анализ отклонений.
Модернизированный фрактал Вильямса. Фрактальные уровни и анализ отклонений.
На первый взгляд кажется, что индикатор давал много ложных сигналов, но тут важна интерпретация и управление риском позиции. Во-первых, использованы только один тип сигналов, редкость больших отклонений, хотя на самом деле есть еще как минимум один – это когда отклонение равны нулю, а во-вторых, все точки входов близки к экстремумам, то есть в теории, даже если позиция была занята неправильно, то потери на STOP LOSS будут минимальными. Дальше в этом направлении нужно проводить дополнительные исследования (пока писал родилось еще две мысли — как вариант нормировки можно попробовать разницу между самими фрактальными уровнями, или же эта разница может послужить еще одним индикатором/фильтром).

Другой вариант — посчитать сами перцентили в скользящем окне. Идея казалось по началу здравой, но оказалось совсем неэффективной. Смотри График 9.

 Модернизированный фрактал Вильямса. Фрактальные уровни и анализ отклонений.
Раздумывая над данным индикатором, я не предполагал, что его можно будет использовать как-то для краткосрочной торговли, хотя допускаю, там можно что-то поколдовать. Моя идея была прозаичней – удобство в исследованиях и попытки найти моменты, где стоит агрессивно покупать акции, или же хеджировать портфель. Поэтому я искал редкие события. Конечно, на текущий момент надо подбирать параметры и смотреть варианты. Но в целом мне нравится то, что у меня получилось.

А в качестве исследования это удобно, например, как показано на графиках 10 и 11 по SP500. Видно, что после кризиса 2008 года рынок только в 5% случаев падал чуть ниже 11%, а в 20% не опускался ниже 6%. Поистине — 12 лет для рынка США были такими в истории, которые не встречались за все его время существования. Но также мы видим, что отрыв от локальных низов достиг таких значений, которые никогда не были раньше. Дает ли нам это надежное представлении о скором конце безумств, конечно нет. Но выглядит красиво!

Модернизированный фрактал Вильямса. Фрактальные уровни и анализ отклонений.
Модернизированный фрактал Вильямса. Фрактальные уровни и анализ отклонений.

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

В этом обзоре я расскажу про новый мод от Voopoo под именем DRAG X PLUS, который отличается поддержкой банок 21700 и наличием правильного 510 коннектора.

Внимание: Всё написанное ниже — является моим личным мнением. Ваше восприятие прекрасного может отличаться от моего. Не только фломастеры разные, но и их коробки!

Больше обзоров разных устройств от VOOPOO можно найти по этой ссылке.

Изображение

Упаковка

Изображение

Набор DRAG X PLUS продаётся в умеренных размеров картонной коробке чёрного цвета с фотографией девайса в полный рост на лицевой стороне (в TPD и других региональных версиях нижняя часть будет испорчена огромными предупреждениями о вреде никотина). Боковые стороны упаковки отданы перечислению главных особенностей, значкам социальных сетей, наклейке с продажным кодом и указанием цвета устройства внутри (ещё одна одна отметка о цвете находится на лицевой стороне в правом верхнем углу). Обратная сторона занята списком комплекта поставки, наклейкой с кодом проверки подлинности, предупреждениями и ограничениями, адресом производителя и значками сертификатов.

Что в коробке

Изображение

Комплект поставки стандартно-скромный: батарейный блок с пустым баком на 5,5 миллилитра, два разных испарителя в индивидуальных блистерах, кабель USB Type-C для зарядки, пакетик силикагеля (на фото не попал) и довольно толстая инструкция на нескольких языках.

Конструктив

Изображение

DRAG X PLUS в плане дизайна продолжает следовать новым тенденциям этой серии (и при этом точно так же не стесняется перенимать самое лучшее у других производителей). В основе батарейного блока лежит рама из сплава, одна сторона выведена чуть больше за габариты «трубомода», именно на ней расположились органы управления, экран и порт для зарядки. А вот все остальные боковые грани обвёрнуты материалом «под кожу», без декоративной отстрочки, но зато с тиснением и приятной мягко-шершавой поверхностью. Снизу устанавливается аккумулятор, а сверху бак на магнитах через проставку, которая вкручивается в классический 510 коннектор.

Размеры и особенности
* Размеры — 140*28*35 мм
* Размеры батарейного блока — 88*28*35 мм
* Размеры бака — Высота — 52 мм, высота без дриптипа — 41 мм, диаметр максимальный — 27 мм, диаметр посадочный — 22 мм
* Вес без АКБ — 133 грамма
* Формат коннектора — 510
* Формат бака — PNP. Совместим с PNP MTL Pod, RTA Pod Tank, DRAG X/S Replacement Pod и комплектным TPP

Изображение

* Формат аккумуляторов — 1*18650 (через проставку) / 20700 / 21700
* Ток зарядки — 2 Ампера, Type-C
* Чип процессора — GENE2.0, заявленная скорость срабатывания — 0,001 секунды
* Экран — Цветной TFT, 1,08»
* Поддерживаемое сопротивление — 0,1-3,0 Ома
* Выходная мощность — 5-100 Ватт, с шагом 1 Ватт
* Ёмкость комплектного бака — 5,5 миллилитра (2 миллилитра в TPD комплектации)
* Формат сменных испарителей — TPP
* Возможные цвета — Классический (чёрная кожа/чёрный корпус), дымный серый (светлая кожа/белый корпус), марсала (красная кожа/серый корпус), прусский синий (синяя кожа/белый корпус), песочный коричневый (коричневая кожа/чёрный корпус)

Изображение

* Особенности — Двойной интерфейс, быстросъёмные испарители, два режима работы (RBA и SMART)
* Материал изготовления — Цинковый сплав и искусственная кожа

Батарейный блок

Изображение

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

Изображение

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

Изображение

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

Изображение

Под крышкой батарейного блока можно увидеть минусовой контакт и подпружиненный пин под петлёй, который передаёт ток от крышки к плате. В глубине находится ещё один контакт с пружинкой, на этот раз для плюса аккумулятора. Банки формата 20700 и 21700 вставляются просто так, а для 18650 есть комплектный пластиковый переходник. Сама крышка открывается после сдвига в сторону, её конструкция сделана так, что даже без АКБ внутри нет никаких намёков на произвольное открытие или дребезг, за это однозначно респект инженерам. Про возможность зарядки аккумулятора внутри мода особо писать не буду. Есть, и ладно. Всё же заряжать АКБ быстрее и безопаснее в специальных зарядных устройствах.

Изображение

Мод включается и выключается пятикратным нажатием на кнопку Fire, показывая на экране текущую версию прошивки, а потом и интерфейс с закосом на «техногенность». Кнопки «+» и «-» меняют мощность от 5 до 100 Ватт с шагом в 1 Ватт. Троекратное нажатие на кнопку Fire переключает режимы работы и цвет интерфейса: жёлтый — SMART (максимальная мощность будет ограничена в зависимости от сопротивления испарителя) и голубой — RBA (максимальная мощность никак не ограничивается, кроме потолка в 100 Ватт). При парении есть отсечка в 10 секунд, а ещё защиты от короткого замыкания, перегрева, переполюсовки аккумулятора, слишком низкого его заряда и наоборот, слишком высоких значений вольтажа. Кнопками Fire и «+» можно включить блокировку изменения мощности (на экране будет закрытый значок замка вместо открытого), Fire и «-» обнуляют счётчик затяжек. Одновременное нажатие «+» и «-» открывает меню, в котором можно переключить интерфейс с вертикального (IRON) в горизонтальный вид (CORE), а вот перевернуть интерфейс вверх ногами для удобства левшей невозможно. Одновременное нажатие на все три кнопки покажет вам версию прошивки и какой-то непонятный LEVEL CODE.

Бак

Изображение

Про комплектный бак можно сказать, что он просто есть. Это «поделие» можно использовать только до покупки чего-то более вменяемого. Не то, чтобы он был откровенно плох, он просто «никакой» в плане дизайна, сомнителен конструктивно и работает на новых™ испарителях. Краткие характеристики: объём 5,5 миллилитра, заправка через отверстие под резиновой пробкой снизу, формат испарителей TPP, формат бака PnP.

Изображение Изображение

Почему такой скепсис? Смотрите сами. Начнём с дриптипа — выглядит неплохо, большой и широкий, но вот проходное отверстие узкое, да и формат свой, ни с чем не совместимый. Зачем было его делать съёмным? Чтобы после потери ничем другим нельзя было заменить? Снизу тоже странное решение по выбору диаметра основания в 22 миллиметра. Вот зачем?  Нет ни одного устройства от Voopoo, где это было бы оправдано конструкцией или дизайном.

Изображение

Испарители — очередная боль и печаль. Только все стали приходить к уменьшению зоопарка разных видов (PnP шикарен), как Voopoo выпускает нового зверька. TPP. Полное TPP. Пока доступны два: с сеткой внутри и сопротивлениями в 0,2 или 0,15 Ома (RBA нет даже в статусе анонса). Судя по увеличенным прорезям на боках — они должны справляться даже с High VG миксами, хотя и старые PnP нормально их переваривали. А вот соль сюда уже заливать страшновато.

Изображение Изображение

Далее про конструкцию бака: он на магнитах! Я понимаю желание Voopoo унификации с PnP-коннектором. Это вполне оправдано в подмодах. Но тут-то это зачем сделано? Вы же поставили нормальный 510, и сразу же даёте переходник на магнитики? Просто нет слов.

Изображение Изображение

Да, при желании этот бак можно переставить на любой мод с подобным коннектором, а в данный переходник поставить любой PnP-бак.

Изображение

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

Изображение

А вот так выглядит этот же бак на моде с основанием коннектора в 24 мм. Зачем? Не знаю, просто живите теперь с этим.

Личные впечатления

Изображение

После первого знакомства с девайсом мне очень хотелось добавить к заголовку фразу «Make DRAG great again!». Вот серьёзно, тактильно и в плане дизайна мод получился просто шикарным (про комплектный бак просто забываем и делаем вид, что он тут исключительно в качестве приятного и почти бесполезного бонуса). Более тесное знакомство продолжило радовать — поддержка аккумуляторов 20700 и 21700, зарядка через USB Type-C, шикарная эргономика и, повторюсь ещё раз, идеальные ощущения от простого удержания в руке. Но, «вы же понимаете», не бывает чудес и на каждую бочку мёда найдётся своя ложка дёгтя, а Voopoo бы не были собой. Тут этой ложкой оказалась прошивка чипа. Нет, сам чип вполне достоин быть, он шустрый и мощный, но вот функционал явно подкачал. Я легко готов смириться с отсутствием термоконтроля и забыть про настройки кривых прехита, мне глубоко наплевать на кастомизацию экрана, такая простота даже заслуживает определённого уважения. Но вот почему нельзя было добавить режим Bypass (прямая подача тока на испаритель минуя плату)? Почему нет [a title=Что такое стелс-режим href=https://belvaping.com/glossary/ru-s/#stealth]стелс-режима[/url] (полное отключение экрана)? Вот это мне решительно не понятно. Что в итоге: девайс хорош, если вы чётко понимаете, что кроме изменения мощности никакими другими настройками пользоваться не планируется. А вот любители выставить мощность с точностью до 0,1 Ватта и поколдовать с кривыми прехита просто проходят мимо. Про комплектный бак тоже буду предельно краток — в качестве начального, почему бы и нет, а потом можно будет купить что-то более соответствующее личным хотелкам и представлениям о прекрасном.

2021 | Денис Zuncl Лещёв
Фотографии | Денис Zuncl Лещёв

В прошлом году мы выпустили мажорную версию своего продукта Solar Dozor 7. В новую версию нашей DLP-системы вошел модуль продвинутого анализа поведения пользователей UBA. При его создании мы попробовали разные базы данных, но по совокупности критериев (о них скажем ниже) в итоге остановились на ClickHouse.

Освоить ClickHouse местами было непросто, многое стало для нас откровением, но главное преимущество этой СУБД затмевает все её недостатки. Как вы поняли из заголовка, речь о скорости. По этому параметру ClickHouse оставляет далеко позади традиционные коммерческие базы данных, которые мы в своих продуктах, в том числе в Solar Dozor, тоже используем.

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

kseemtstar4ip0tquaefrcn0 kq
Кадры из мультфильма «Турбо» (2013 год)

О модуле UBA и его архитектуре

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

Все данные, которые нужны UBA-модулю, лежат в ClickHouse. Его мы ставим заказчику на ту же машину, куда инсталлируем и сам Solar Dozor. В базе храним не письма, а метаданные сообщений, то есть кто, когда, с кем переписывался, какова тема письма, какие вложения оно содержит и т. д. Время хранения можно настраивать, нам для расчетов нужен 90-дневный период. Поддержкой UBA-модуля занимаемся мы, частично это могут делать и админы клиента. В любом случае задача разработчиков — максимально автоматизировать администрирование БД.

Идем дальше. Основную работу делает UBA-сервер, который мы писали на Clojure. Он обрабатывает данные, лежащие в ClickHouse, и производит расчеты. UBA-сервер запоминает последнюю дату для обработанных данных и периодически проверяет, есть ли в ClickHouse более свежие данные, чем в расчете. Если есть, то старые результаты удаляются и производится перерасчет.

Еще один компонент системы — модуль Indexer, написанный на Scala. Он умеет работать с разными источниками данных. В случае с UBA у Indexer две задачи. Первая — вытаскивать метаданные писем пользователей из основной БД и отправлять их в ClickHouse. Вторая — выступать механизмом буферизации и грузить данные пачками. Когда перейдем к подробностям работы с ClickHouse, я расскажу об этом подробнее.

Для визуализации информации мы активно используем Grafana – как при разработке, так и при добавлении новых фич в готовый продукт. Конечно, мы хотим перетащить все в свой интерфейс, но пока от этой палочки-выручалочки отказаться сложно. На некоторые графики в Grafana мы потратим пару часов, а разработчику понадобилась бы неделя, чтобы сделать то же самое стандартными средствами. Обычно это непозволительная роскошь. Поэтому, если дизайнеры не очень сильно придираются к цвету графика или ширине надписи, Grafana — это спасение, ведь время у разработчиков расписано по минутам. Хотя это дополнительный софт, и в случае с некоторыми нашими клиентами иногда все упирается в сертификацию.

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

Скорость. Я — скорость!

Сначала несколько слов о том, какими критериями мы руководствовались, выбирая СУБД для UBA-модуля. Нас интересовали:

  • стоимость лицензии;
  • скорость обработки;
  • минимальный объем хранения;
  • скорость разработки;
  • минимальное администрирование;
  • минимальные требования к железу.

По первым четырем пунктам ClickHouse уверенно обошел «конкурентов», и мы остановились на нем. Поговорим о главном преимуществе ClickHouse, ну, кроме того, что он бесплатный :-)

Скорость, скорость и еще раз скорость. Это главное, почему мы взяли его на борт. С ClickHouse вы сможете обрабатывать миллион записей в секунду на относительно скромных мощностях. Традиционные базы для такого требуют куда более серьезного железа. Скорость работы объясняется несколькими причинами:

  • Принципиально иной метод хранения данных — ClickHouse делает их компрессию, архивирует и хранит по колонкам. Соответственно, нагрузка на диск снижается.
  • В ClickHouse распараллеливание задач на несколько потоков не требует дополнительных усилий. СУБД использует все доступные процессоры сервера без вмешательства админа. Если в случае с традиционной базой для этого придется серьезно заморочиться, то ClickHouse делает это по умолчанию. Нам, наоборот, приходится его ограничивать, чтобы остальным сервисам что-то осталось.
  • ClickHouse использует специальные инструкции процессора — SSE, AVX, благодаря чему быстро перелопачивает большие объемы данных в оперативке. Тут логика простая: будучи созданным недавно, ClickHouse рассчитан на новое железо и его новые возможности.

Благодаря этому UBA-модуль может быстро строить аналитику по сообщениям пользователя и искать отклонения. В традиционных базах данных несколько миллионов записей будут обрабатываться достаточно долго, в ClickHouse при правильно написанном запросе это можно сделать за секунды.

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

Какую сборку выбрать

ClickHouse разработали в «Яндексе» изначально для своих нужд. Но тогда собственные сборки они не выпускали. Это делала сторонняя иностранная компания Altinity.

Многие наши заказчики — российские компании, поэтому нам такой вариант не очень подходил, и мы стали собирать ClickHouse сами. Брали исходный код от «Яндекса» и генерили бинарные пакеты. Сказать, что были сложности, значит, ничего не сказать. Приключений хватало, на них тратилась куча ресурсов и времени. И при этом мы получали утечку памяти, которой в сборках от Altinity не было. По мере работы ClickHouse потреблял все больше памяти. В результате она кончалась, и тот падал. Поэтому мы решили уйти от самостоятельной сборки. Теперь проще — есть бинарники от самого «Яндекса», в крайнем случае можно взять вариант от Altinity.

Обновления выходят довольно часто, но с ними нужно быть осторожными. В каждой новой версии ClickHouse есть новые фишки, исправления, но, как следствие, и новые баги. Разработчики «Яндекса» не очень переживают, если новая версия может привести к проблемам с совместимостью. Да, для нас это проблема, а они могут не заморачиваться и добавлять новые функции, исходя из своих потребностей и не тестируя все возможные сочетания функций. Но по мере внедрения ClickHouse в большем количестве крупных компаний отношение разработчиков «Яндекса» к клиентам постепенно смягчается.

Изначально ClickHouse был NoSQL-СУБД, но теперь он понимает SQL. Это тоже добавило нам немного проблем. Мы использовали прежний вариант, а потом некоторые старые команды поменяли свой смысл. (Оффтоп: лучше не забывать выносить код SQL-запросов из основного кода приложения. Иначе потребуется доработка исходника при самых тривиальных изменениях. Если этого не сделать на этапе разработки, то в нашем случае при необходимости исправить тот или иной запрос у клиента придется ждать выхода новой версии продукта).

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

pykmn6mfphf 330luwzfvtavohi

Эгоист и альтруист одновременно

С традиционными базами данных история простая: настроили использовать 20 Гб памяти — они будут их использовать и никому не отдадут. С ClickHouse все иначе. Резервировать память под него не получится. Он будет использовать все, что найдет. Но и умеет делиться — ClickHouse отдает память, если в данный момент она ему не нужна. С одной стороны, эта особенность позволяет нам развернуть на одной машине несколько сервисов. А с другой стороны, нам приходится ограничивать ClickHouse, так как другие модули Solar Dozor тоже хотят кушать, а он делится памятью только тогда, когда самому не надо. Поэтому прописываем такие параметры:

<max_memory_usage>
<max_memory_usage_for_user>
<max_memory_usage_for_all_queries>

<max_bytes_before_external_sort>
<max_bytes_before_external_group_by>


Число потоков max_threads также влияет на потребление. Поэтому можно поколдовать и с этим параметром. Он определяет «параллельность» работы ClickHouse. Если уменьшим ее в два раза, то и потребление памяти при параллельных операциях тоже снизится в два раза.

Как я уже сказал, обычно клиент выделяет нам под Solar Dozor одну машину, на ней, кроме UBA, установлены и все остальные модули. Поэтому у истории с бескорыстным ClickHouse есть и обратная сторона. Другой софт может сожрать всю отданную память, и тому уже ничего не достанется, придет OOM Killer. Конечно, было бы хорошо резервировать под ClickHouse определенный объем памяти, но пока такой функции нет.

О правильном секционировании и удачной сортировке

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

z63 onuic5goymwebz xpao9c o

Таблицу расчетов мы секционировали по месяцам. Понятно, что их объем меньше, чем объем самих данных, поэтому тут агрегация по месяцам удобнее.

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

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

И несколько слов о запросах. Их условия должны содержать поле секционирования. Оптимизатор запросов в ClickHouse пока далек от того, что есть в других базах (например, PostgreSQL и Oraсle). Он не понимает зависимости данных между столбцами. Чтобы минимизировать объемы данных, считываемых с диска, нужно явно указывать, какие диапазоны данных нужны для запроса. Условие запроса для этого должно содержать границы данных по условию секционирования. В идеале — чтобы каждый запрос доставал данные из одной секции, то есть указываем: сходи в конкретный день и ищи только там.

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

Любитель есть большими порциями

Если до этого вы работали только с традиционными базами данных, придется перестраиваться. С ClickHouse не прокатит каждый раз вставлять по строчке: он не любит частых вставок. Если у нас много источников данных и каждый вставляет по одной строчке, то ClickHouse становится плохо. То есть, например, он выдерживает 100 вставок в секунду. Вы спросите: «Как же так? 100 вставок и все?.. А где же миллион в секунду, о котором говорили?» Оказывается, ClickHouse сделан так, что он может пережить 100 вставок в секунду, а в каждой вставке при этом 10 000 строк. Вот вам и тот самый миллион.

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

Но нужна промежуточная буферизация, которая накопит этот миллион. Этим у нас как раз занимается Indexer, который я уже упоминал.

2kl7ynf6kwgzzro0tkr1lefjoaq

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

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

Про мутации

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

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

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

У нас исходные данные, которые хранятся в ClickHouse, не удаляются и не меняются (за исключением добавления новых данных и удаления старых по партициям). Меняются только расчеты. Мы пересчитываем результаты при появлении новых данных, и у нас могут измениться алгоритмы расчетов при установке новой версии. Все это не требует построчных изменений в данных (операции update и delete). Поэтому в нашем случае очень длинных очередей мутаций не бывает.

Не злоупотребляйте словарями

В ClickHouse есть такой интерфейс — словари, куда можно положить любую команду, которая вытащит список из какого-то источника. Например, если нужно залезть во внешний файл со списком сотрудников организации или в Active Directory.

Словари нужны для таких меняющихся данных, как должность, телефон, семейное положение сотрудника и т. п. Если их корректное отображение критично, то словарь необходим. Все, что не меняется, нужно класть в обычные таблицы ClickHouse. Наиболее удобным для нас оказался словарь в JSON, получаемый через http-запрос, — самый естественный и самый надежный. Пишем команду сходить на такой-то сервер и взять то, что нам нужно.

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

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

Как повысить надежность?

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

Тут надо обратить внимание на три момента.

  1. Проектирование
    Если спроектировать кластер неправильно, отказ любого компонента может привести к отказу всего кластера. В каждом конкретном случае выбор схемы будет разным. И нужно понимать, от каких аварий конкретная схема защищает, а от каких — нет. Но это тема для отдельной статьи.
  2. Обслуживание
    Все процедуры надо четко описать и протестировать. Ну и вообще, не забывать про золотое правило: работает — не трогай!
  3. Тестирование изменений на идентичном стенде
    Любые изменения и обновления надо проверять не на уже работающей системе, а на тестовой. Потому что, если что, смотри пункт 2.

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

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

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

И напоследок: проверьте железо заранее

Казалось бы, железо без SSE 4.2 сейчас почти не встретить. Но однажды нам достался мощнейший сервер с процессором, который эти инструкции не поддерживает. А для ClickHouse поддержка SSE 4.2 — одно из системных требований. Оказалось, что закончился старый проект, железо хорошее, не выбрасывать же.

«Яндекс» рекомендует выделять под ClickHouse отдельный сервер как минимум с 30 Гб оперативки. В наших условиях никто не даст под БД отдельное железо. Как я уже говорил, на одном сервере у заказчиков крутится весь Solar Dozor со всеми его модулями и их компонентами. Но, если все настроить правильно, полет пройдет нормально.

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

Автор: Леонид Михайлов, ведущий инженер отдела проектирования Solar Dozor


7924


https://ppc.world/uploads/images/f9/7b/60c9c1b980451-fidias-cervantes-oHW-2VFNg-Q-unsplash.jpg


2021-06-17


Другое




ppc.world



160
31

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

Проблема, которую нужно было решить

Когда я работал специалистом по трафику in-house, мне нужно было готовить отчеты по рекламным системам. При этом отчеты сегментировались двумя способами:

  1. По регионам: компания присутствовала в шести регионах.

  2. По рекламным системам: Яндекс.Директ, Google Ads, «ВКонтакте», myTarget и Facebook Ads.

Всего получалось пять рекламных систем на шесть регионов — 30 еженедельных отчетов. Если действовать традиционным способом — выгружать и сводить все данные в Excel через создание нескольких сводных таблиц и склейку с помощью ВПР в один итоговый файл, — на создание новых кампаний и оптимизацию уже работающих времени просто не останется. На помощь мне пришел Python и его самая популярная библиотека для работы с табличными данными Pandas.

Еще несколько нюансов:

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

  2. Legacy: utm_campaign не всегда дублировал название кампании. Терялся общий ключ, по которому можно было соединять две таблицы. Пришлось поколдовать с регулярными выражениями.

  3. Legacy № 2: в контекстной рекламе были дубли ключевых слов. То есть в нескольких кампаниях могли встречаться одинаковые слова. Это, очевидно, проблема, которая решается парой кнопок в Коммандере или Редакторе Google Ads, но в нашем случае отключение дублей вызывало снижение дохода. Поэтому дубли оставили, а при подготовке отчета приходилось делать единый ключ из названия кампании и ключевого слова, чтобы данные о доходах подтягивались корректно.

Скрипт в Python будет приведен на примере Яндекс.Директа. Для других систем он не сильно отличался: нужно было менять названия столбцов — в разных системах они пишутся по-разному. Работать будем в среде Anaconda.

Построение отчета

  1. Выгружаем данные в формате XLSX из рекламной системы и из базы данных. Не будем подробно останавливаться на этом этапе. Базы у всех разные, финансовые данные могут передаваться в Метрику. Как выгружать из Мастера отчета, все знают, — нужно просто выбрать необходимые нам кампании, выгрузить все столбцы, выбрав нужный период и в срезах кампанию и условие показа. На выходе получаем два файла Excel.

  2. Загрузка данных в Python. Подгружаем нужные библиотеки и загружаем Excel-файлы в Anaconda.

    Загрузка файлов в среду

    import pandas as pd
    import numpy as np
    import warnings
    warnings.filterwarnings('ignore')
    # Открываем файл с помощью pd.read_excel
    df = pd.read_excel(r'C:Users79299DesktopDSReportacc_yan_upd.xlsx')
    
    df_cub = pd.read_excel(r'C:Users79299DesktopDSReportbase_yan_upd.xlsx') # Открываем файл из базы
    
  3. Теперь отбираем и переименовываем нужные столбцы в обеих выгрузках.

    Отбор столбцов в выгрузках

    # Переименовываем столбцы для единообразия
    df_cub = df_cub.rename(columns={'Utm_Campaign':'Campaign',
                       'Utm_Term':'Keyword',
                        'Сумма пополнений впервые пополненных ЛК (за месяц)':'НД',
                        'Впервые пополненные ЛК':'ПЛК',
                        'Пополнения':'Все деньги',
                        'Клиенты':'ЛК'}).drop(['Utm_Source'], axis=1)
    # Отбираем только те столбцы которые нам понадобятся. Можно добавлять любые
    columns_list = ['Кампания',
                       'Условие показа',
                       'Показы',
                       'Клики',
                       'CTR (%)',
                       'Расход (долл.)',
                       'Ср. цена клика (долл.)',
                       'Ср. позиция показов',
                       'Ср. объём трафика',
                       'Конверсия (%)',
                       'Цена цели (долл.)',
                       'Конверсии']
    # При помощи loc оставляем [все строчки(:);наш список столбцов(columns_list)]
    df = df.loc[:,columns_list]
    # Переименовываем столбцы для единообразия
    df.rename(columns={'Кампания':'Campaign',
                       'Условие показа':'Keyword',
                       'Показы':'Impressions',
                       'Клики':'Clicks',
                       'CTR (%)':'CTR',
                       'Расход (долл.)':'Cost',
                       'Ср. цена клика (долл.)':'CPC',
                       'Ср. позиция показов':'Avg_position',
                       'Ср. объём трафика':'Avg_traffic_vol',
                       'Конверсия (%)':'Convertion_rate',
                       'Цена цели (долл.)':'CPA',
                       'Конверсии':'Convertions'}, inplace=True)
    
  4. Далее — небольшое техническое преобразование. Python определят тип некоторых столбцов как ‘object’, что означает — тип «строка». Проверить тип у всех столбцов можно, запустив в отдельной ячейке df.info(). Если есть столбцы, которые должны быть числом (‘int’) или числом с плавающей точкой (‘float’), а они ‘object’, это нужно исправить. Следующий код делает это.

    Преобразование

    #В квадратные скобки через запятую добавляем столбцы которые нужно заменить, 
    # если их больше одного. #скобки должны быть двойными
    df_obj = df[['CPC', 'Avg_position', 'Convertion_rate', 'CPA', 'Convertions', 'Avg_traffic_vol']]. 
        select_dtypes(include='object')
    
    # Исправляем тип столбцов в цикле на тип 'float64'
    for i in df_obj.columns:
        df[i] = df_obj[i].replace({'-':'0'}, regex=True).astype('float64')
    
  5. Начнем приводить названия кампаний к одному виду, попутно удаляя лишнее из ключей. Это пункт необязателен, его применение зависит от того, есть ли порядок в UTM-метках и названиях кампаний.

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

    # Блок кода для приведения к единообразию написания названий кампаний в df (Выгрузка Яндекса),
    # и значений utm_Campaign в df_cub
    
    df['Campaign'] = df['Campaign'].replace({'||Dec2016':''}, regex=True) #удаляем ненужные хвосты в названиях
    df['Campaign'] = df['Campaign'].str.replace('(([а-яА-Я_|0123456789]+_?)+)|?|', '') #оставляем правую часть названий
    df['Campaign'] = df['Campaign'].str.replace('(_new)$', '') #еще раз убираем ненужный мусор
    
    # Заполнение пропусков в столбце Keyword для кампаний ремаркетинга
    a = df[df['Campaign'].str.startswith('rmkt')]['Keyword']
    df.loc[a.index,['Keyword']] = '--'
    
    # Удаление лишнего в столбцах Keyword для остальных кампаний
    df_cub['Keyword'] = df_cub['Keyword'].replace({"---":''}, regex=True). 
        replace({'(%.+)':''}, regex=True)
    df['Keyword'] = df['Keyword'].replace({"'---":''}, regex=True). 
        replace({'(-[a-zA-Zа-яА-Я!+".0123456789]+s?)':''}, regex=True). 
        replace({'!|+|[|]|"':''}, regex=True)
    
  6. Попутно можно создавать новые столбцы, чтобы считать в них другие метрики, например: CPA, ROI, ДРР. Тут я считаю взвешенный CTR.

    Создание столбца для взвешенного CTR

    # Создание нового столбца для взвешенного CTR
    df['wCTR'] = np.round((df['CTR']*df['Avg_traffic_vol'])/100, 2)
    
  7. Создаем уникальный ключ «Кампания+ключевое слово». С его помощью мы будем группировать данные и объединять таблицы.

    Ключ + кампания

    # В обоих файлах создаем столбцы с уникальным ключем Кампания+ключ
    df['Campaign+Key'] = pd.Series(df['Campaign'] + '+++' + df['Keyword']).str.lower().str.strip(' ')
    df_cub['Campaign+Key'] = pd.Series(df_cub['Campaign'] + '+++' + df_cub['Keyword']).str.lower().str.strip(' ')
    
  8. Группировка и подсчет метрик в обоих файлах.

    Подсчет метрик в файлах

    # Группируем по ключу файл из Яндекс Директа
    df = df.groupby('Campaign+Key', as_index=False). 
        aggregate({'Impressions':np.sum, 
                   'Clicks': np.sum,
                   'wCTR': np.mean,
                   'Cost': np.sum})
    
    # Группируем по ключу файл из базы данных
    df_cub = df_cub.groupby('Campaign+Key', as_index=False).aggregate({'ЛК':np.sum 
                                                                       , 'ПЛК':np.sum 
                                                                       , 'НД': np.sum 
                                                                       , 'Все деньги':np.sum 
                                                                       , 'ПЛК':np.sum})
    
  9. Устанавливаем наш кастомный столбец как индекс в обоих файлах, объединяем и заполняем пропуски нулями.

    Кастомный столбец как индекс

    #В обоих файлах устанавливаем наш кастомный ключ как индекс
    df = df.set_index('Campaign+Key')
    df_cub = df_cub.set_index('Campaign+Key')
    
    df_f = df.join(df_cub, how='outer', on=df.index) # Объединяем таблицы
    df_f = df_f.reset_index().drop('index', axis=1).rename(columns={'key_0':'Campaign_Key'}) # Удаляем индекс
    df_f = df_f.fillna(0) # Заполняем пропуски нулями
    
  10. Для удобства чтения отчета разбиваем кастомный ключ обратно на кампанию и ключевое слово, больше он нам не потребуется. Удаляем ненужное.

    разъединение ключа и кампании

    # Разбиваем кастомный ключ обратно, на Кампанию и Ключ
    df_f['Campaign'] = df_f['Campaign_Key'].apply(lambda x: x[0:x.find('+')])
    df_f['Key'] = df_f['Campaign_Key'].apply(lambda x: x[x.find('+')+3:])
    
    # Удаляем не нужное
    df_f = df_f.reset_index().drop('index', axis=1)
    df_f = df_f.drop('Campaign_Key', axis=1)
    
  11. Последний шаг — записать результат в новый файл для отправки коллегам.

    Запись отчета в файл

Скачать код скрипта можно на GitHub. P.S.: финансовые данные в исходных файлах изменены.

Загрузить код

Итого

В Excel сводить один отчет нужно было около 25 минут. Умножив это время на 30 отчетов, получим примерно 13 часов и добавим еще один час на выгрузку исходных Excel-файлов из рекламных систем и базы данных — всего около 14 часов.

После использования скрипта я по-прежнему трачу час на выгрузку, затем только меняю названия файлов в строке пути (второй пункт) и нажимаю на кнопку запуска. Уходит на это около часа. Экономия времени — 12–13 часов.

Конечно, нельзя взять скрипт и просто применить его к своему проекту. А вот взять идею и части кода не только можно, но и нужно. Если вы знакомы с базовым синтаксисом Python, освоить библиотеку Pandas для построения подобного скрипта не составит проблемы.

Если вы не знакомы с программированием, но много работаете с отчетами, возможно, стоит задуматься об автоматизации. Порой с ее помощью можно сэкономить даже больше 12 часов. Например, если выгружать Excel-файлы из рекламных систем с помощью API. Об этом уже рассказывали на ppc.world в этой статье.

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

Подпишитесь, чтобы получать полезные материалы о платном трафике

Разборка и ремонт выкидного ключа неразборного нового типа 5K0837202AD

Ровно на следующий день после окончания гарантии у меня в руках ломается ключ. Держатель жала, предположительно силуминовый, ломается при складывании. Силы никакой не прилагал, сплав просто «устал». Хорошо, что возле дома…

Причем тут гарантия? А не причём, не факт что поменяли бы по ней, просто эмоция :-)

Пока использовал второй, изучал как разобрать-починить первый ключ, т.к. без запасного неспокойно!

Вариант заказать болванку и прописывать в приборке у ОД отмёл сразу, лишних Х000 руб нету!

В отличии от выкидушек старого типа, где достаточно под логотипом открутить болтик, тут всё сложнее. Ключ разбирается методом частичного разрушения :-) Ибо штифт!

Делал всё по инструкции с Гольфклуба и вроде как у меня получилось чуток бережливей.

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

Наш сломашка и приличный китайский неоригинал, на первый взгляд габариты держателя жала такие же:

Далее разборка. Отодрал наклейку — чуток покоцалась при этом, плотно сидит, некритично. Зоны «не-сверления» заклеил для надежности, чтоб не перепутать в процессе:

Сверлил дремелем, сначала строго в центре, чтобы нащупать штифт, потом пошёл в сторону его конца, по чуть-чуть. Если сильно уйти за штифт — просверлится плата, см фото дальше. А тут штифт блестит точкой внизу отверстия:

Досверлил до конца штифта и стал толкать его на выход. Во, пошёл:

Потом нелегкая процедура располовинивания, цитата с оригинала инструкции:

«сделать это крайне не просто. У ключа слишком качественный корпус и защелки держат его просто намертво, зато не ломаются. Поэтому не дерём зазор между половинками, а упираемся во внутренние элементы корпуса и отдираем их друг от друга.»

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

Обратная сторона, с дырками для штифта.

А вот расположение защелок, сопротивление которых надо преодолеть:

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

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

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

Далее — вставляем штифт, клеим наклейку-логотип.

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

Как разобрать ключ зажигания VW Jetta

%D0%BA%D0%BB%D1%8E%D1%87 jettaНовый автомобиль, который был только что куплен в автосалоне – это всегда радость и эйфория для владельца. Однако проходит не так много времени и эти первые впечатления перерастают в чувство долга, поскольку любое транспортное средство, каким бы совершенным оно не было, требует внимания и своевременного обслуживания. И это касается не только расходных запчастей. Рано или поздно, но наступает время, когда даже ресурс батарейка дистанционного ключа становится равным нулю и перед автовладельцем встает логичный вопрос о том, как разобрать оригинальный ключ для дистанционного управления автомобилем Фольксваген Джетта, чтобы заменить в нем элемент питания.

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

Разбор ключа VW Jetta для замены элемента питания

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

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

%D0%BA%D0%B0%D0%BA %D1%80%D0%B0%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D1%82%D1%8C %D0%BA%D0%BB%D1%8E%D1%87 VW Jetta

%D0%BA%D0%BB%D1%8E%D1%87 VW Jetta

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

Пошаговая инструкция по разбору ключа Фольксваген

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

  1. сбоку есть небольшая прорезь, в которую необходимо вставить конец плоской отвертки;
  2. аккуратно, с помощью легкого поворотного движения следует разъединить две части корпуса оригинального ключа Фольксваген;
  3. после того, как в руках оказались обе части ключа от Фольксваген Джетта, стоит обратить внимание на большую из них, ведь именно там можно обнаружить специальный серийный номер, по которому можно заказать необходимые детали корпуса или сам корпус;
  4. для того чтобы разобрать часть, в которой содержится металлическая бородка, для этого необходимо повернуть ключ лицевой частью к себе и выкрутить небольшой винтик;
  5. затем разъединяющим движением снять переднюю и заднюю часть корпуса, тем самым высвободив металлическую бородку;
  6. необходимо делать это медленно, поскольку внутри содержится маленькая пружинка, которую необходимо отложить в сторону;
  7. также в передней части ключ содержит чип иммобилайзера, который можно извлечь с помощью пинцета;
  8. верхняя часть корпуса также разъединяющим движением разбирается;
  9. внутри находится плата и элемент питания, которые свободно отсоединяются от креплений.

Таким не хитрым способом можно разобрать ключ от автомобиля Фольксваген Джетта любой модели и, заранее заказав необходимые детали корпуса или внутренние запчасти, заменить их самостоятельно. Стоит сказать о том, что в большинстве руководств по эксплуатации Фольксваген Джетта данная информация по разборке и сборке ключа, к сожалению, отсутствует. Однако автовладельцев VW Jetta это, как правило, не останавливает, и они на свой страх и риск пытаются выполнить данные действия самостоятельно. Что ж теперь есть возможность воспользоваться опытом тех, кто наловчился, и уже без риска испортить дистанционный ключ VW Jetta, осуществить его разбор.

Инструкция по разбору ключа «Фольксваген Пассат Б6»

Если после всех манипуляций дверь так и не открывается с брелока, необходимо ехать на СТО, возможно, ключ «отвязался» от блока комфорта, специалист-электрик исправит данную проблему.

5a350ads 1920

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

Почему не работает ключ от Volkswagen Passat

Почему не работает ключ Volkswagen Passat, рассмотрим подробнее:

  • Села батарейка в ключе.

При нажатии на кнопку открытия двери или любую другую кнопку на ключе-брелоке на корпусе должен загораться светодиодный индикатор (если такой присутствует). В случае, если индикатор не загорается – это первый признак севшей батарейки.

2e519d4s 960

Фольксваген Пассат б6 — замена батарейки в ключе

  • Разрядился аккумулятор.

Необходимо открыть дверь ключом и попытаться запустить автомобиль. Если запуск затруднен, слышны только щелчки реле – значит, разрядилась АКБ и ее необходимо зарядить. Если запуск двигателя прошел без затруднений, в штатном режиме, то состояние АКБ удовлетворительное.

  • Вышел из строя или нарушен контакт блока центрального замка, также его называют блок комфорта.

Для обеспечения доступа к колодке (разъему) блока комфорта необходимо снять бардачок, блок расположен за ним. Бардачок крепится на 7 винтах, 3 снизу и 4 сверху, необходимо выкрутить все винты и прижать снизу прямоугольное отверстие плоской отверткой, извлечь бардачок. Далее снять разъем с блока комфорта и проверить наличие питания с помощью мультиметра или контрольной лампы (индикатор напряжения автомобильный 6-12В), после этого необходимо проверить целостность проводки от блока комфорта к двери, которая не реагирует на брелок, если не работает какая-то одна из дверей.

  • Нарушения в работе приемо-передачи в ключе или блоке комфорта.

В этом случае без специального оборудования ничего сделать не получится — надо ехать на СТО.

  • Вышел из строя или нарушен контакт соленоида замка двери.

Для проверки работы соленоида двери необходимо снять обшивку двери, снять разъем с привода соленоида и проверить целостность проводки от разъема соленоида к разъему блока комфорта с помощью мультиметра в режиме «прозвон» или с помощью индикатора напряжения 6-12В (контрольная лампа). Для этого в разъем необходимо вставить щуп и на брелке нажать кнопку открыть/закрыть, переставляя соответственно щуп в разные контакты разъема. Если сигнал проходит (лампочка загорается), нужно подать 12В на привод соленоида с соблюдением полярности (+/-), если соленоид не реагирует, производим его замену.

img 4904

Дверь Volkswagen Passat

  • Вышла из строя кнопка на плате ключа.

Если нет реакции после нажатия на одну из кнопок на ключе (ощущение, что кнопка «проваливается» при нажатии), значит, вышла из строя кнопка в брелоке. Для замены кнопки понадобится паяльник с тонким жалом, набор для пайки (канифоль, припой), новая кнопка. Далее разобрать ключ «Фольксваген Пассат» б6, выпаять нерабочую кнопку, заменить новой, собрать брелок. Инструкция по разбору брелока приведена ниже.

Как разобрать ключ «Фольксваген Пассат» б6

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

img 0273 scaled

Разбор ключа «Фольксваген Пассат» б6

Инструкция по разбору ключа «Фольксваген Пассат» б6:

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

После этого нужно осторожно ножом раскрыть брелок на две части.

Какие батарейки используют в ключе «Пассат» б6

Батарейка в ключе «Пассат» Б6 используется CR2032 — круглая, в народе называют «таблетка», литиевая, напряжение 3В. Используется в ключах от Volkswagen Passat b6, b7, b8, CC.

Как поменять батарейку в ключе «Фольксваген Пассат»

Выполнив все пункты, имеем доступ к батарейке, поменять ее не составит труда: извлечь старую, соблюдая полярность (плюс/минус), вставить новую. Сборку осуществлять в обратном порядке.

25237fu 960

Замена батарейки в ключе «Фольксваген Пассат»

Если после всех манипуляций дверь так и не открывается с брелока, необходимо ехать на СТО, возможно, ключ «отвязался» от блока комфорта, специалист-электрик исправит данную проблему.

Пример замены корпуса

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

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

Разборка выкидного ключа от автомобиля Поло седан

Засилье электроники в наше время − явление стандартное. Развитие технологий не стоит на месте. Механические узлы автомобиля меняют на электронные. Недалек тот день, когда машиной будет управлять не человек, а компьютер.

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

vykidnoj klyuch

Сегодня всю инициативу на себя берет электронная технология центрального замка. Нажал на одну кнопку − замок автоматически разблокировался, кликнул на вторую − все двери закрылись. Очень удобно − не нужно долгое время возиться с замочной скважиной, пытаясь пропихнуть в нее жало «отмычки». К тому же смотрится электронный ключ эффектнее, чем механический аналог. Особенно если прикупить к нему изящный брелок или модный чехольчик. Последний стоит по−разному в зависимости от материала: пластиковый можно приобрести за 500 руб., а силиконовый − за 300 руб.

Особенности автомобильных электронных ключей

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

Однако, функция бесключевого доступа устанавливается в основном на дорогие автомобили с ценником за 1 млн. руб. Для «бюджетников», как например, седан Фольксваген Поло, изготавливают только электронные ключи. Интересно, что даже в комплектации Комфортлайн владельцам калужского авто выдают две обыкновенные не выкидные «отмычки». Зато при покупке топовой Хайлайн дилеры дарят покупателю сразу два складных ключа.

obychnyj klyuch

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

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

Некоторые половеды, которым достались простенькие «отмычки», занимаются их доработкой. А именно: меняют корпус на новый с тремя кнопками и перенастраивают брелок так, чтобы все функции (в том числе открытие багажника) работали на ура.

Руководство по самостоятельной разборке и доработке ключа

В каждом из приведенных случаев для реализации идеи необходимо разбирать корпус ключа. Единственная затрата в процессе − покупка болванки (конечно, если вы не собираетесь разбирать ключ ради удовольствия). Можно приобрести китайскую «пустышку» за 600 руб. в интернет−магазине, либо оригинал, который будет стоить почти в два раза дороже.

kitajskij korpus klyucha

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

    Аккуратно подцепляем фирменный логотип ножиком и отдираем его.

otkleivaem naklejku

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

sverlim dyrku

Поступательными движениями выдвигаем конец штифта наружу и полностью достаем железный «прутик».

dostaem prutikklyuch i prutik

Просовываем тонкую отвертку между двумя половинками корпуса и осторожно раздвигаем их в стороны.

razbiraem korpus

Корпус ключа разобран.

razobrannyj korpus

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

slomannyj klyuch

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

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

Тем же владельцам седана Поло, кто решит усовершенствовать брелок, переделав обычный ключ в складной, придется поколдовать с новой платой и паяльником в руках. В качестве основы для «мозгов» можно использовать стеклотекстолит типа FR4. Чтобы материал без труда влез в корпус брелка−пустышки, плату нужно подпилить до толщины примерно в 0,8 мм. Спроектировать плату можно с помощью программного интерфейса Splan 7.0 − очень удобная утилита для всех, кто общается с паяльником на «ты».

plata dlya klyucha

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

Как разобрать выкидной ключ от Фольксвагена, инструкция & | iaarus.ru

kak razobrat vykidnoj klyuch ot folksvagena 1
У ключа слишком качественный корпус и защелки держат его просто намертво, зато не ломаются.

Посылка с Aliexpress: Выкидной ключ Volkswagen


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

kak razobrat vykidnoj klyuch ot folksvagena 1 1

Как разобрать выкидной ключ? Замена корпуса к Добавлено: 2 мес. Замена батарейки в ключе Фольксваген…

kak razobrat vykidnoj klyuch ot folksvagena 2 1

Ключ разбирается методом частичного разрушения: Недалек тот день, когда машиной будет управлять не человек, а компьютер. Делал всё по инструкции с Гольфклуба и вроде как у меня получилось чуток бережливей.

kak razobrat vykidnoj klyuch ot folksvagena 3 1

Кроме того он смотрится более стильно, чем торчащее жало стандартного ключа.

Силы никакой не прилагал, сплав просто «устал». Хорошо, что возле дома… Причем тут гарантия?

Как разобрать выкидной ключ Volkswagen нового образца

А не причём, не факт что поменяли бы по ней, просто эмоция: Вариант заказать болванку и прописывать в приборке у ОД отмёл сразу, лишних Х руб нету!

В отличии от выкидушек старого типа, где достаточно под логотипом открутить болтик, тут всё сложнее.

Процесс разбора выкидного ключа

Ключ разбирается методом частичного разрушения: Делал всё по инструкции с Гольфклуба и вроде как у меня получилось чуток бережливей. Раздобыл ключ по распродаже, строго такого же типа со штифтом , ссылка внизу.

kak razobrat vykidnoj klyuch ot folksvagena 4 1

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

Зоны «не-сверления» заклеил для надежности, чтоб не перепутать в процессе: Сверлил дремелем, сначала строго в центре, чтобы нащупать штифт, потом пошёл в сторону его конца, по чуть-чуть. Если сильно уйти за штифт — просверлится плата, см фото дальше.

kak razobrat vykidnoj klyuch ot folksvagena 5 1

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

Поэтому не дерём зазор между половинками, а упираемся во внутренние элементы корпуса и отдираем их друг от друга. В наши дни популярность набирает модная система Smart Key, которая дает возможность владельцу машины отпирать или блокировать двери на небольшом расстоянии без нажатия на кнопку.

kak razobrat vykidnoj klyuch ot folksvagena 6 1

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

Video on this topic

Однако, функция бесключевого доступа устанавливается в основном на дорогие автомобили с ценником за 1 млн. Зато при покупке топовой Хайлайн дилеры дарят покупателю сразу два складных ключа.

kak razobrat vykidnoj klyuch ot folksvagena 7 1

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

Руководство по самостоятельной разборке и доработке ключа

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

kak razobrat vykidnoj klyuch ot folksvagena 8 1

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

kak razobrat vykidnoj klyuch ot folksvagena 9 1

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

  • Пол армии как пишется правильно
  • Покровский морские рассказы читать
  • Покопать или покапать как пишется
  • Покачто или пока что как пишется
  • Покатигорошек сказка читательский дневник