[Перевод] Оптимизация поисковых систем: баланс между скоростью, релевантностью и масштабируемостью

Будучи разработчиками, мы постоянно стремимся создавать системы, которые не просто работают, но и отличаются эффективностью и масштабируемостью. В мире, где пользователи ожидают всё более быстрые и точные результаты, оптимизация производительности поиска становится ключевым приоритетом в современной разработке приложений. Эта статья основана на нашем выступлении на конференции QCon San Francisco 2024, где мы рассмотрели эволюцию подходов к индексированию данных, их извлечению и ранжированию. Для платформ вроде Uber Eats, обрабатывающих сложные запросы на больших объёмах данных, оптимизация поиска — это серьёзный вызов, требующий продвинутых стратегий: индексирования, шардинга и параллельной обработки запросов. Сложность поисковых систем продолжает расти, и необходимость соблюдения баланса между скоростью, релевантностью и масштабируемостью становится как никогда актуальной. В этой статье мы рассматриваем ключевые техники таких оптимизаций и их влияние на пользовательский опыт и производительность системы.

https://habr.com/ru/companies/otus/articles/934186/

#шардинг #Индексирование #поиск #Масштабируемость #производительность #apache_kafka #apache_spark #big_data #ранжирование

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

Основные выводы Оптимизация индексирования данных и структуры хранения может существенно сократить время выборки и повысить эффективность использования хранилища. Категоризация и приоритизация...

Хабр

Пишем движок SQL на Spark. Часть 8: CREATE FUNCTION

В предыдущих сериях ( 1 • 2 • 3 • 4 • 5 • 6 • 7 • Ы ) рассмотрели, как написать на Java собственный интерпретатор объектно-ориентированного диалекта SQL, заточенный на задачи подготовки и трансформации наборов данных, и работающий как тонкая прослойка поверх Spark RDD API. Штука получилась довольно продвинутая, с поддержкой императивщины типа циклов/ветвлений/переменных, и даже с поддержкой пользовательских процедур. И в плане этой самой императивщины расширяемая: может импортировать функции из Java classpath, равно как и операторы выражений. То есть, если необходимо, можно написать функцию на Java, или определить новый оператор, и использовать потом в любом выражении на SQL. Круто? Ещё как круто. Но как-то однобоко. Если в языке у нас поддерживаются функции, то почему бы не дать нашим пользователям определять их самостоятельно? Вот прямо через CREATE FUNCTION ? Тем более, что вся необходимая для этого инфраструктура уже вовсю присутствует. Да и процедуры на уровне интерпретатора у нас уже поддерживаются ведь… Функция для затравки.

https://habr.com/ru/articles/915964/

#etl #apache_spark #java #hadoop_stack #big_data #big_data_tools #big_data_solutions #sql #никто_не_прочитает_эту_статью #написанную_для_отчётности_по_гранту

Пишем движок SQL на Spark. Часть 8: CREATE FUNCTION

В предыдущих сериях ( 1 • 2 • 3 • 4 • 5 • 6 • 7 • Ы ) рассмотрели, как написать на Java собственный интерпретатор объектно-ориентированного диалекта SQL, заточенный на задачи подготовки и...

Хабр

バックアップからリストアしたDynamoDB テーブルに格納されているデータをAWS Glueを用いて元のテーブルに複製する
https://dev.classmethod.jp/articles/transfer-dynamodb-data-from-restored-table-using-aws-glue/

#dev_classmethod #AWS_Glue #Amazon_DynamoDB #Apache_Spark #AWS

バックアップからリストアしたDynamoDB テーブルに格納されているデータをAWS Glueを用いて元のテーブルに複製する | DevelopersIO

IaC管理されているDynamoDB テーブルへのデータのリストアに。

バックアップからリストアしたDynamoDB テーブルに格納されているデータをAWS Glueを用いて元のテーブルに複製する | DevelopersIO

【AWS Glue】Glueジョブでdynamic_frameをソースに利用したらキャストエラーで困った話
https://dev.classmethod.jp/articles/aws-glue-glue-dynamic-frame-cast-error/

#dev_classmethod #AWS_Glue #Apache_Spark #PySpark #Apache_Iceberg

【AWS Glue】Glueジョブでdynamic_frameをソースに利用したらキャストエラーで困った話 | DevelopersIO

【AWS Glue】Glueジョブでdynamic_frameをソースに利用したらキャストエラーで困った話 | DevelopersIO

Иногда приходится¹ копаться² в кишках³ Apache Spark

¹ …просто потому, что другого варианта добиться необходимого результата тупо не существует. ² и да, довольно-таки глубоко. ³ нет, серьёзно! Давайте рассмотрим следующий бизнесовый кейс. Дано: реально большие данные. Очень много датасетов по много терабайтов каждый, — в сумме объём тянет на петабайты. Лежат в облаке, но это не важно. Важно, что мы эти данные покупаем в «сыром» виде, каким-то образом «готовим», а потом перепродаём конечному потребителю. Требуется: при подготовке каждого из датасетов разделить его согласно значениям одного или нескольких полей, составляющих его записи, на несколько. И это одна из особенно часто встречающихся в нашем процессе операций. Довольно-таки сложный, продвинутый ETL у нас. Поясню на типичном примере.

https://habr.com/ru/articles/913244/

#кейс #etl #apache_spark #java #pipeline_automation #hadoop_stack #big_data #big_data_tools #big_data_solutions #sql #никто_не_прочитает_эту_статью #написанную_для_отчётности_по_гранту

Иногда приходится¹ копаться² в кишках³ Apache Spark

¹ …просто потому, что другого варианта добиться необходимого результата тупо не существует. ² и да, довольно-таки глубоко. ³ нет, серьёзно! Давайте рассмотрим следующий бизнесовый кейс. Дано: реально...

Хабр

Оптимизация Spark-приложений: шаг за шагом от базовых техник до продвинутых приёмов

В этой статье мы делимся опытом оптимизации Spark-кода на реальных задачах: рассказываем, как с помощью ручного и автоматического репартицирования ускорить обработку данных, как правильно настраивать оконные функции и запускать множество небольших Spark-приложений внутри одного процесса для экономии ресурсов. Привет, Хабр! Меня зовут Александр Маркачев и я — Data Engineer команды Голосовой Антифрод в билайн. Расскажу, как борьба с мошенниками может обернуться личным вызовом. Все техники сопровождаются объяснениями, примерами и рекомендациями для самостоятельного повторения.

https://habr.com/ru/companies/oleg-bunin/articles/909506/

#spark #bigdata #data_engineering #билайн #онтико #оптимизация #многопоточность #apache_spark #beeline

Оптимизация Spark-приложений: шаг за шагом от базовых техник до продвинутых приёмов

Билайн давно борется с мошенниками, как и все крупные операторы сотовой связи. Однако формирование множества отчётов для регулятора неожиданно стал для меня вызовом. Привет, Хабр! Меня зовут Александр...

Хабр

[レポート]Apache Iceberg を使用してリアルタイムの洞察のためのオープンテーブルデータレイクを構築する #AWSreInvent
https://dev.classmethod.jp/articles/reinvent2024-ant402-iceberg-realtime-insight/

#dev_classmethod #AWS #Apache_Iceberg #Apache_Spark #AWS_Glue_Data_Catalog

[レポート]Apache Iceberg を使用してリアルタイムの洞察のためのオープンテーブルデータレイクを構築する #AWSreInvent | DevelopersIO

Icebergのワークショップレポートと少しIcebergの統計についてまとめています。

[レポート]Apache Iceberg を使用してリアルタイムの洞察のためのオープンテーブルデータレイクを構築する #AWSreInvent | DevelopersIO

DockerでローカルにIceberg + Spark環境を構築し、DBeaverで接続してみた
https://dev.classmethod.jp/articles/docker-iceberg-spark-dbeaver/

#dev_classmethod #Docker #Docker_Compose #Apache_Iceberg #Apache_Spark #DBeaver

DockerでローカルにIceberg + Spark環境を構築し、DBeaverで接続してみた | DevelopersIO

DockerでローカルにIceberg + Spark環境を構築し、DBeaverで接続してみた | DevelopersIO

Apache Spark: настройка и отладка

Большинство современных приложений содержат в себе набор настроек по умолчанию, позволяющий обеспечить достаточно эффективную работу разворачиваемого приложения что называется «из коробки». Есть конечно критики данного подхода, но в целом он позволяет автоматизировать процесс установки и базовой настройки целевой системы. Однако, при серьезном использовании любой системы рано или поздно возникает необходимость в гибкой настройке. А необходимость в отладке как правило возникает гораздо раньше. Apache Spark в этом плане не является исключением и в этой статье мы поговорим о механизмах настройки Spark и некоторых параметрах, которые пользователям может понадобиться отрегулировать под свои нужды. Также мы рассмотрим механизмы журналирования.

https://habr.com/ru/companies/otus/articles/851674/

#apache_spark #python

Apache Spark: настройка и отладка

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

Хабр

Инфраструктура для Data-Engineer Data Lake Apache Iceberg

В этой статье вы узнаете что такое Apache Iceberg, как его можно использовать и для чего он вообще нужен. В статье также рассматривается вопрос Data Lake.

https://habr.com/ru/articles/850674/

#data #data_lake #data_engineering #data_engineer #apache_spark #apache_iceberg #sql #дата_лейк #озеро_данных #datalakehouse

Инфраструктура для Data-Engineer Data Lake Apache Iceberg

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

Хабр