Как стать автором
Обновить

Apache Spark или возвращение блудного пользователя

Время на прочтение10 мин
Количество просмотров12K
Продолжаем цикл статей про DMP и технологический стек компании Targetix.

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

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

Архитектура и Spark-код под катом.


Читать дальше →

Пакетная обработка в JDBC и HIBERNATE

Время на прочтение8 мин
Количество просмотров23K

Здравствуйте!


В этой статье, я кратко расскажу о пакетной обработке SQL (DML) операторов: INSERT, UPDATE, DELETE, как одной из возможностей достижения увеличения производительности.




Преимущества


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


Читать дальше →

Копируем файлы пачками в AWS S3

Время на прочтение4 мин
Количество просмотров5.4K

В одном из проектов встала следующая задача: пользователь загружает пачку файлов через клиента (CloudBerry Explorer, к примеру) в S3 бакет, мы копируем эти файлы в архив и шлем SNS уведомление о том, что все сделано. Перекладывать файлы в архив нужно начинать только тогда, когда пользователь загрузит все, что хотел. Пользователей мало и загружают батчи они довольно редко. Но файлов может быть много.

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

<batch_name>/done.trigger
<batch_name>/files/<file_key_1>
<batch_name>/files/<file_key_2>
...
<batch_name>/files/<file_key_n>

Как видим, для каждой пачки создается свой каталог <batch_name> с подкаталогом files, в который и заливаются уже пользовательские файлы с каталогами и именами, которые он хочет. Триггер-файл загружается в <batch_name> и по ключу этого  файла можно понять какие конкретно файлы нужно отправить в архив. Но здесь есть один нюанс, мы хотим при копировании в архив вырезать каталог files. Т.е. файл <batch_name>/files/<file_key_1> скопировать в <batch_name>/<file_key_1>.

К счастью, S3 позволяет отслеживать загрузку файлов с определенным суффиксом и отправлять уведомления при наструплении этого события. В качестве получаетеля этих уведомлений можно указать аж 3 сервиса: SNS, SQS и Lambda-функцию. Но тут не без нюансов. Так, первые 2 типа поддерживают только стандартные очереди и SNS, а FIFO не поддерживают, увы.

Читать далее

Kubernetes никогда не задумывали для пакетной обработки задач

Время на прочтение14 мин
Количество просмотров4.7K
… и как бы это могло выглядеть в таком случае.

image

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

Способ автоматизации процесса получения BIM-моделей с Revit Server и последующей сборкой в Navisworks. Подробный гайд

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров6.7K

Одной из операционных задач BIM-отдела является подготовка и формирование проприетарных файлов моделей для последующего использования в тех или иных целях. На примере работы с программными продуктами Autodesk — Revit и Navisworks, подразумевается определённая логика разбивки и хранения разных форматов: RVT, NWC, NWF и NWD. Работая над крупными проектами, включающие в себя разные разделы проектной документации, корпуса зданий и секций, встаёт вопрос о единой структуре и правилах формирования файлов. В этой статье, на простом примере проекта, рассмотрен один из вариантов по автоматизации формирования BIM-моделей проекта, от пакетного экспорта файлов RVT с Revit Server до размещения соответствующих файлов разных форматов по нужным директориям и формированию сводной модели NWD.

Читать далее

Streaming 101 (Основы потоковой обработки)

Уровень сложностиСредний
Время на прочтение32 мин
Количество просмотров4.1K

Обработка потоковых данных стала крайне важна в настоящее время. И на это есть веские причины, такие как:

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

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

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

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

Как тот, кто работал над крупно‑масштабной системой потоковой обработки в Google на протяжении последний пяти с лишним лет (MillWheel, Cloud Dataflow), я, мягко говоря, в восторге от сложившихся тенденций. Я все также заинтересован в том, чтобы люди понимали, что именно системы потоковой обработки в состоянии выполнять, и как их использовать наилучшим образом, в частности, закрыв нехватку знаний, оставшуюся между существующими системами пакетной обработки и потоковыми. С этой целью замечательные ребята из O»Reilly пригласили меня предоставить письменную версию моего доклада «Say Goodbye to Batch» с конференции Strata + Hadoop World London 2015.

Читать далее