Обновить
256K+

SQL *

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

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

Цикл статей о Greenplum. Часть 2. Оптимальный DDL

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

Всем привет!

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

Читать далее

О создании системы, преобразующей текст в SQL для аналитиков Pinterest

Время на прочтение10 мин
Охват и читатели9.2K

Написание запросов для решения аналитических задач — это основное занятие тех, кто работает с данными Pinterest. Но подбор подходящих данных и преобразование описания проблемы в корректный и эффективный SQL‑код могут оказаться непростыми делами. Ведь речь идёт о среде, которая быстро меняется, и о значительных объёмах данных, разбросанных по разным местам.

Читать далее

Импортирование csv или json файлов в Heroku Postgres Databases

Уровень сложностиПростой
Время на прочтение2 мин
Охват и читатели1.4K

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

Читать далее

Всё что нужно знать про DuckDB

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели54K

В статье рассказано, как вам может помочь утка при работе с данными, с OLAP-нагрузкой и как она может плавать в вашем Data Lake. Вы узнаете всё самое важное про DuckDB и сможете попрактиковаться в работе с DuckDB.

Читать далее

Создание собственного API на Python (FastAPI): Авторизация, Аутентификация и роли пользователей

Время на прочтение19 мин
Охват и читатели112K

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

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

Читать далее

Комбинаторы в ClickHouse

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели12K

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

Читать далее

Перевод блога JitBit с рекомендация для собеседования по знанию SQL

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

Моя предыдущая статья неожиданно вызвала бурное обсуждение. Я решил вспомнить молодость (30 лет назад я подрабатывал переводчиком технической литературы) и перевести блог от компании JitBit с рекомендуемыми вопросами по SQL на собеседовании, с которого и началась предыдущая статья. На литературность перевод не претендует, все же я не писатель, я программист. Смайлики и маскирование слов сохранены как в оригинале.

Jitbit's SQL interview questions

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

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

Кто ходил на собеседования по устройству на работу, тот знает, спрашивают там всякое и странное. Нередко можно встретить задачу SQL по нахождению сотрудников с максимальной зарплатой в отделе. Причем ваш потенциальный начальник считает, что у этой задачи есть только одно «правильное решение», то, про которое он прочитал в Интернете. Так ли это?

Любопытно...

Как принудительно уронить MS SQL Server чтобы он ушёл на перезагрузку

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

При чтении логов из базы данных, а именно, из LDF данных, в большинстве случаев вы наткнётесь на такие функции в запросе sys.fn_dblog(null, null), sys.fn_dblog_xtp(null, null)

Читать из LDF Вы захотите по различным причинам, но так или иначе основная проблема будет «у нас откуда‑то списались деньги остатки, пропал товар, упал прод, разберитесь».

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

Типичный скрипт

Посмотреть код

Создание собственного API на Python (FastAPI): структура проекта, SQLAlchemy PostgreSQL, миграции и первые модели таблиц

Уровень сложностиСредний
Время на прочтение21 мин
Охват и читатели108K

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

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

Уже на данном этапе код становится громоздким и сложным для понимания. К тому же, хранение данных в JSON‑файлах — это далеко не самый профессиональный подход. «Нормальные ребята» используют SQLAlchemy, причем асинхронно.

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

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

Читать далее

Мониторинг производительности отдельного SQL запроса

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

Иногда в докладах/статьях о оптимизации производительности СУБД описание предлагаемой методики/средства начинается с события -"мы заметили резкое увеличение времени выполнения запроса/запросов и резкое увеличение количества прочитанных блоков разделяемой области". Далее следует описание процесса выявления ресурсоёмкого запроса, с целью его оптимизации.

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

Но.

В процессе промышленной эксплуатации ситуация меняется принципиально .

Читать далее

Дом, милый дом: нюансы работы с ClickHouse. Часть 2, репликация

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели23K

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

Давайте разбираться!

Книга: «Нечеткое сопоставление данных в SQL»

Время на прочтение14 мин
Охват и читатели20K
image Привет, Хаброжители!

Если бы вам предоставили два разных, но связанных между собой набора данных, какие инструменты вы бы использовали для поиска совпадений? А если все, что у вас есть, — это доступ к базе данных через SQL SELECT? Джим Лемер предлагает лучшие практики, методики и приемы, которые помогут вам импортировать, очищать, сопоставлять, оценивать и осмысливать разнообразные данные с помощью SQL.

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

Примеры, приведенные в книге, полны реальных приемов и содержат рабочий код.
Читать дальше →

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

ДАТская арифметика високосного года в базе данных Oracle

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

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

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

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

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

Уровень сложностиСредний
Время на прочтение53 мин
Охват и читатели46K

Мем айсберг SQL: погружение в глубины изучения баз данных

Мем айсберг SQL — это вирусное интернет-изображение, изображающее айсберг с несколькими слоями. Вершина айсберга содержит общеизвестные концепции и инструменты SQL, такие как операторы SELECT и JOIN. Однако по мере погружения под воду становятся видны более абсурдные и малоизвестные аспекты SQL.

Читать далее

Что нового в документации YDB во втором квартале 2024 года

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

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

Читать далее

Работа с базами данных в Rust с помощью Diesel

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели9.6K

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

Сегодня мы поговорим о Diesel ORM — инструменте, который превращает работу с базами данных в Rust в настоящее удовольствие. Diesel ORM — это расширяемый и безопасный объектно-реляционный маппер и конструктор запросов для Rust. Он имеет высокоуровневый API для взаимодействия с различными СУБД: PostgreSQL, MySQL и SQLite.

Начнем с установки и настройки!

Читать далее

База по базам данных. Для всех интересующихся

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

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

Читать далее

Asynpg-lite: лёгкость асинхронных операций на PostgreSQL с SQLAlchemy

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

Привет, друзья! Эта статья станет настоящей находкой для всех, кто уже знаком с библиотекой asyncpg-lite, хочет с ней познакомиться или просто стремится легко и эффективно использовать асинхронные возможности SQLAlchemy вместе с asyncpg.

Что такое asynpg-lite?

Представьте себе библиотеку, которая сочетает в себе мощь асинхронного программирования через asyncpg и безграничные возможности SQLAlchemy. Это asynpg-lite — простая и надёжная библиотека, созданная для того, чтобы каждый, даже новичок, мог воспользоваться её потенциалом.

Почему это важно?

В мире, где асинхронное программирование становится всё более востребованным, asynpg-lite предлагает идеальное решение для работы с PostgreSQL. Вам не нужны глубокие знания программирования или сложные концепции. Достаточно базового понимания Python (списки, словари, строки и т.д.) и основ SQL и PostgreSQL (таблицы, CRUD-операции, типы колонок и т.д.).

Что вас ждёт?

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

Готовы погрузиться в мир асинхронных операций на PostgreSQL с помощью asynpg-lite и SQLAlchemy? Тогда давайте начнем!

Читать далее

Telegram Боты на Aiogram 3.x: Профиль, админ-панель и реферальная система

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели47K

Привет! В этой статье я расскажу, как создать телеграм-бота на aiogram 3.7 с личным профилем, админ-панелью и реферальной системой. Мы пройдем через регистрацию пользователей, работу с базой данных PostgreSQL и многое другое. Жмите на "читать далее"!

Читать далее