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

SQL *

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

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

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

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

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

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

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

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

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

Что вас ждёт?

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

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

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

Новости

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

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

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

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

Понимание RPC для новичков:

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

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

Читать далее
Всего голосов 23: ↑10 и ↓130
Комментарии12

Telegram Боты на Aiogram 3.x:  Интеграция с PostgreSQL в пару строк кода

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

Привет, друзья! Вот и добралась до вас обещанная публикация про интеграцию PostgreSQL в Telegram ботов.

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

Сегодня мы закроем этот вопрос.

В этой статье мы напишем:

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

Краеугольные камни ClickHouse

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

Привет, Хабр! Меня зовут Артемий Кравцов, я работаю инженером в Wildberries. Сегодня расскажу про то, что люблю – про ClickHouse. Моя цель – осветить некоторые ключевые особенности в архитектуре ClickHouse и в том, как он хранит данные.

Что такое куски и слияния? Как быть с частыми вставками? Как обновлять значения в строках? Что не так с точечными чтениями? Как сделать тяжёлый JOIN?

Статья рассчитана на тех, кто только знакомится с ClickHouse.

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

Статический анализ структуры базы данных (часть 3)

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

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

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

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

asynpg-lite: Простой асинхронный менеджер для PostgreSQL на Python

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

Друзья, в прошлых своих публикациях я рассказывал о том, что почти в каждом своем проекте использую свой класс для работы с базой данных PostgreSQL. На днях этот класс перерос в полноценную библиотеку asynpg-lite на базе asyncpg, которую каждый из вас может прямо сейчас установить и начать использовать.

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

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

Для тестирования примеров, которые я приведу, вам потребуется база данных PostgreSQL. Она может быть установлена как на вашем локальном компьютере, так и располагаться удаленно, например, на VPS-сервере.

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

Перенос данных из Oracle в PostgreSQL быстро и без потерь: как мы используем для этого Airflow и NiFi

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

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

Система хранения Oracle была очень популярна в России: данные в ней хранили и обрабатывали даже компании из государственного сектора. И всем нам предстояло быстро решить, куда и каким образом перенести огромные объёмы ценной информации, ничего не потеряв в процессе переноса.

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

«IT-Планета 2024»: задачи третьего этапа по PostgreSQL

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

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

Ну-ка, ну-ка
Всего голосов 9: ↑9 и ↓0+13
Комментарии0

Как мы мигрировали из Oracle в PostgreSQL

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

Привет, Хабр! Я Владимир Хаймин, эксперт по системам управления базами данных PostgreSQL в ВТБ. В последнее время одним из наиболее распространенных способов миграции стала миграция при помощи свободного инструмента ora2pg. Однако многие отмечают его крайне низкую производительность, особенно если речь идет о базах Oracle размером под 1Тб и выше. Как ускорить миграцию и сократить время простоя при переносе проектов при помощи только oracle_fdw, либо в сочетании с ora2pg расскажу далее.

Подробнее
Всего голосов 24: ↑24 и ↓0+28
Комментарии14

Как маскировка данных спасает вашу приватность

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

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

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

Данная статья нацелена на джунов и специалистов, которые только начинают погружаться в тематику.

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

Telegram Боты на Aiogram 3.x: Первые Шаги

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

Привет, друзья!

За свою практику программирования я успел написать множество малых, средних и крупных проектов, преимущественно в формате Telegram-ботов. Моя история началась с популярной на то время версии aiogram 2.24 (тех, кто в теме, поймут), а сейчас я полностью перешел на версию 3.x, о чем нисколько не жалею.

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

Сегодня мы научимся:

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

Базы данных простыми словами

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

Привет, Хабр!
Это статья больше для начинающих или любознательных, тут я постарался простыми словами объяснить что же такое эта база данных и для чего они используются на проектах.

Читать далее
Всего голосов 22: ↑6 и ↓16-9
Комментарии7

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

Установка MS SQL Server на Linux

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

В этой статье я научу вас устанавливать Microsoft SQL Server 2022 на Linux и мы развернем тестовую базу данных от Microsoft в операционной системе Linux.

Мы будем использовать пакетным менеджером Yum для Linux дистрибутивов: RedHat (RHEL), CentOS, Scientific Linux и DPKG (Debian Package) – система управления пакетами в Debian и дистрибутивах на его основе, например Ubuntu и набирающем популярность Astra Linux, в связи с импортозамещением. Поэтому команды я приведу для обоих пакетных менеджеров. Так же рассмотрим универсальный способ запуска через Docker.

Microsoft SQL Server — система управления реляционными базами данных (СУБД), разработанная корпорацией Microsoft. Основной используемый язык запросов (диалект SQL) — Transact-SQL (T-SQL).

Для взаимодействия с СУБД MS SQL Server используются 2 основных способа:
1. Служебная программа sqlcmd
2. Microsoft SQL Server Management Studio (SSMS)

Конечно вы можете использовать привычный для вас DBeaver или DataGrip или любой другой инструмент администрирования базы данных.

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

Вы пожалеете об использовании естественных ключей

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

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

Я немного занервничал, потому что покупал машину с рук, и внезапно задался вопросом, действительно ли всё так, как я думал. Неужели я непреднамеренно купил краденную машину?

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

Читать далее
Всего голосов 45: ↑42 и ↓3+55
Комментарии125

Книга: «Антипаттерны SQL. Как избежать ловушек при работе с базами данных»

Время на прочтение10 мин
Количество просмотров15K
image Привет, Хаброжители!

Язык SQL необходим для работы со структурированными данными. Программисты, прекрасно знающие свой любимый язык (Java, Python или Go), не могут разбираться во всем, и часто не являются экспертами в SQL. Это приводит к появлению антипаттернов — решений, которые на первый взгляд кажутся правильными, но со временем создают все больше проблем.

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

Примеры SQL-кода основаны на версии MySQL 8.0, но в тексте также упоминаются другие популярные РСУБД. В примерах кода используется Python 3.9+ или Ruby 2.7+.
Читать дальше →
Всего голосов 6: ↑6 и ↓0+11
Комментарии11

Не только ORM (NoORM)

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

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

«Написать свой собственный ORM» – неплохая задачка для тех, кто решил поглубже изучить некоторые языковые особенности Питона, но в данном случае задача была другая – написать не ORM, а не-ORM. Механизм, упорядочивающий и облегчающий доступ к базам данных, но который сам по себе ни в коей мере не является ORM-ом.

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

Подготовка к техническому собеседованию Senior/Team Lead backend

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

Недавно появились мысли походить на собеседования чем я успешно занялся. Если конкретно - смотрел лидовскую/сеньерскую позиции на Python и Golang(но статья может пригодиться backend разработчикам в целом). Не ставлю целью статьи объять все не объятное и дать какие-то гарантии. Я лишь зафиксирую данные для себя на будущее.

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

Сразу сделаю пометку, что некоторые навыки/ресурсы специфичны(по типу нарешивания Leetcode), но отталкиваемся от текущих реалий рынка.

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

Интеграция PostgreSQL с другими СУБД через dblink

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

Иногда типичная IT-инфраструктура крупной компании выгляд так: PostgreSQL для аналитики, и Oracle для корпоративных данных, и MySQL для каких-нибудь микросервисов. В таких условиях взаимодействие между различными системами становится настоящим мастхевом. И тут может помочь герой нашей статьи - dblink.

dblink позволяет нам безболезненно дергать данные из одной базы в другую, будь то PostgreSQL или что-то вроде Oracle или MySQL.

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

SQL vs NoSQL: как выбрать архитектуру БД для мобильного приложения, чтобы потом не пришлось ничего переписывать

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

Привет! Меня зовут Никита Грибков, я Flutter-разработчик в AGIMA. В сети море статей о различиях между SQL и NoSQL, но в большинстве из них много теории и почти совсем нет прикладных советов. Я пошел другим путем: ниже постараюсь внятно объяснить, какую систему и в каком случае выбирать. Спойлер: всё зависит от проекта и амбиций заказчика. Конечно, сосредоточусь на мобильной разработке, но основные принципы подойдут и в вебе.

Читать далее
Всего голосов 25: ↑17 и ↓8+9
Комментарии16
1
23 ...

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