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

SQL *

Формальный непроцедурный язык программирования

Сначала показывать
Порог рейтинга
Уровень сложности

pgvector: как хранить и обрабатывать многомерные вектора в PostgreSQL

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

На Хабре было много упоминаний pgvector в обзорах Postgresso. И каждый раз новость была про место которое где-то за границей и далеко. Многие коммерческие решения для хранения и поиска векторов в базе данных нынче не доступны, а pgvector доступен любому, тем более в самой популярной базе в России.

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

Читать далее
Всего голосов 7: ↑7 и ↓0 +7
Комментарии 4

Новости

SQL HowTo: TOP-N на субинтервалах

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

Периодически сталкиваюсь с однотипными задачами вида "показать TOP-N позиций на каждом из вложенных интервалов некоторого периода".

Это может быть "5 лучших по успеваемости студентов в каждом семестре за последний учебный год", или "помесячная динамика позиции 10 наиболее продающихся товаров", или, как у нас в сервисе визуализации PostgreSQL-планов explain.tensor.ru, "3 наиболее активных страны за каждый день":

Читать далее
Всего голосов 9: ↑9 и ↓0 +9
Комментарии 14

Оптимизация запроса и запрос оптимизации

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

Как не грабить память, не пытать диск, не мучать кластер. Или делать все это всего одним запросом на Impala к Hadoop.

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

Читать далее
Всего голосов 4: ↑3 и ↓1 +2
Комментарии 13

Как был создан потоковый SQL-движок

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

Возможно, вы как раз их тех, кто, просыпаясь каждое утро, задаёт себе три самых вечных жизненных вопроса: 1) как мне сделать потоковый SQL‑движок? 2) Что это такое — потоковый SQL‑движок? 3) Способен ли Господь наш сбрасывать те таблицы, коими владеет иной пользователь?

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

Так вот, где‑то год назад я (довольно смело, если «смелость» — это вообще про меня) снарядился как следует и пустился в долгий и тернистый путь, искать ответы на эти вопросы. Я шёл от монаха к пресвитеру, а от того — к жрецу макаронного монстра, и только в ужасе осознавал, сколь жалкие вопросы их занимают — например, каков смысл жизни, и как обрести мир с самим собой. Но, в конце концов, потерявшись в глубочайших расщелинах моего разума, я набрёл на часовенку, над входом которой значилось: «Epsio Labs». Тут я преисполнился откровения и вошёл в двери этого храма.

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

Читать далее
Всего голосов 15: ↑13 и ↓2 +11
Комментарии 42

Истории

15 примеров задач по SQL на собеседовании по вакансии системного аналитика

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

Привет, Хабр! Если вы читаете этот материал, скорее всего, вы готовитесь к собеседованию. Важным аспектом работы системного аналитика (СА) является умение эффективно работать с базами данных, и SQL — это ключевой инструмент для этого. Будьте готовы, что на техническом собеседовании вас могут попросить назвать операторы SQL, написать запросы для извлечения, обновления или удаления данных, создания новых таблиц и многого другого. Давайте посмотрим на некоторые примеры таких заданий.

Читать далее
Всего голосов 14: ↑8 и ↓6 +2
Комментарии 17

Проблемы при переходе с MS SQL на PostgreSQL. Типы данных

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

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

Читать далее
Всего голосов 12: ↑12 и ↓0 +12
Комментарии 16

Деревья ltree в PostgreSQL – простым языком

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

Привет, Habr! Меня зовут Оля Плюта, я продуктовый аналитик маркетплейса Uzum Market. В этой статье я расскажу об иерархических деревьях ltree в PostgreSQL. Статья вводная, поэтому я постаралась сделать её максимально понятной и наглядной.

Читать далее
Всего голосов 11: ↑11 и ↓0 +11
Комментарии 4

Пишем свой QTableView (продолжение: кастомные стили)

Уровень сложности Сложный
Время на прочтение 1 мин
Количество просмотров 3K

Создаем свой кастомный стиль для QTableView без css стилей и переопределения ролей модели данных. Занимаемся отрисовкой напрямую.

Читать далее
Всего голосов 6: ↑4 и ↓2 +2
Комментарии 7

Как жесткую программную систему превратить в гибкую или Двадцать лет спустя

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

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

Читать далее
Всего голосов 6: ↑5 и ↓1 +4
Комментарии 4

Многомерный анализ данных: исследование многомерных кубов и SQL OLAP-запросов

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

Привет, Хабр!

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

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

SQL (Structured Query Language) и OLAP (Online Analytical Processing) – два важных инструмента, которые помогают осуществлять многомерный анализ данных. SQL – это стандартный язык запросов для работы с реляционными базами данных. Он позволяет выбирать, фильтровать, суммировать и агрегировать данные.

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

Читать далее
Всего голосов 14: ↑9 и ↓5 +4
Комментарии 7

SQL-инъекция: разбор уязвимости на примере

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

SQL-инъекция - это атака, которая может привести к компрометации конфиденциальных данных и даже полному захвату системы.

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

Читать далее
Всего голосов 12: ↑1 и ↓11 -10
Комментарии 7

Иерархическая база данных (продолжение)

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

Эта статья посвящена реально работающей информационной системе (ИС), основанной на иерархической модели данных. Скажу точнее - это не просто ИС - это инструмент разработки ИС любого уровня сложности, включая ERP, CRM, PPM и т.д., обладающий полным набором средств разработки (инструментом описания структуры данных, встроенным процедурным языком и языком запросов, инструментом разработки экранных форм, инструментом написания программного кода и т.д).

Во 2-ой части статьи описывается внутреннее устройство ИС.

Читать далее
Всего голосов 3: ↑2 и ↓1 +1
Комментарии 3

Как расширить компетенции аналитиков при работе с Big Data

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

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

Читать далее
Всего голосов 1: ↑1 и ↓0 +1
Комментарии 0

Ближайшие события

Импульс Т1
Дата 1 декабря
Время 12:30
Место Москва Онлайн
YaTalks 2023 — главная конференция Яндекса для IT сообщества
Дата 5 – 6 декабря
Время 9:00 – 23:59
Место Москва Белград Онлайн
Avito Analytics meetup #11
Дата 12 декабря
Время 18:00 – 20:00
Место Онлайн

Иерархическая база данных

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

Эта статья посвящена реально работающей информационной системе (ИС), основанной на иерархической модели данных. Скажу точнее - это не просто ИС - это инструмент разработки ИС любого уровня сложности, включая ERP, CRM, PPM и т.д., обладающий полным набором средств разработки (инструментом описания структуры данных, встроенным процедурным языком и языком запросов, инструментом разработки экранных форм, инструментом написания программного кода и т.д).

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

Читать далее
Всего голосов 4: ↑4 и ↓0 +4
Комментарии 24

PostgreSQL Antipatterns: ходим по JSON-граблям

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

Недавно попался на глаза примерно такой кусок запроса, и тут прекрасно примерно все:

множество чтений из CTE (хоть и единственной записи, но все же);

извлечение по каждому ключу текста с раскастовкой в jsonb;

извлечение каждого отдельного json-ключа в каждое отдельное одноименное поле;

"ручное" преобразование текстового представления массива в json в текстовое представление PostgreSQL.

А как - правильно?

Читать далее
Всего голосов 26: ↑26 и ↓0 +26
Комментарии 13

SQLx: raw SQL в Rust

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

Когда речь заходит об использовании SQL, экосистеме Rust есть что нам предложить: к счастью, нам доступны несколько отличных готовых к использованию решений. SQLx — это чисто асинхронный, независящий от рантайма SQL-крейт, позволяющий использовать проверяемые во время компиляции запросы без какого-либо DSL.

Читать далее
Всего голосов 24: ↑18 и ↓6 +12
Комментарии 21

Пишем свой QTableView с нуля

Уровень сложности Сложный
Время на прочтение 6 мин
Количество просмотров 9.4K

Итак жил был фреймворк Qt и последние 10 лет ничего в нем не менялось. И захотел один чел написать свой QTableView с нужным ему функционалом, а именно захотелось ему выводить ячейки в несколько рядов (по горизонтали) в одной строке. Ещё ему хотелось растягивать одну из ячеек по ширине двух других.

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

Читать далее
Всего голосов 16: ↑16 и ↓0 +16
Комментарии 55

PostgreSQL 17: Часть 2 или Коммитфест 2023-09

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

Продолжаем следить за новинками 17-й версии PostgreSQL. На этот раз поговорим о том, чем запомнился сентябрьский коммитфест.


Самое интересное об июльском коммитфесте ― в предыдущей статье серии: 2023-07.

Читать дальше →
Всего голосов 14: ↑14 и ↓0 +14
Комментарии 1

LLM'ы в преобразовании запроса на естественном языке в SQL (text2sql)

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

Привет, Хабр! На связи участница профессионального сообщества NTA Марина Коробова.

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

Одной из главных проблем, с которыми сталкиваются компании, это непосредственная работа с базами данных с помощью языка SQL (Structured Query Language). Не все знают этот язык, и не у всех есть время изучать его. Поэтому на рынке появляются инструменты, позволяющие писать запрос на естественном языке и получать ответ на языке запросов.

В посте познакомлю вас с двумя AI-инструментами для генерации SQL-запросов: SQLCoder Defog и SQLthroughAI.

Читать далее
Всего голосов 16: ↑15 и ↓1 +14
Комментарии 9

Построение OLAP-запросов с использованием аналитических функций

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

Привет, уважаемые читатели Хабра! Сегодня мы вас познакомим с OLAP и аналитическими функциями.

OLAP, или Online Analytical Processing, представляет собой технологию для анализа и извлечения данных из больших наборов информации. Это позволяет производить сложные агрегации, расчеты, фильтрации и срезы данных, что особенно полезно при работе с огромными объемами информации. В отличие от OLTP (Online Transaction Processing), который ориентирован на операции с данными, OLAP нацелен на поддержку бизнес-аналитики, многомерного анализа и принятия решений.

Читать далее
Всего голосов 13: ↑9 и ↓4 +5
Комментарии 3

Вклад авторов