Data Science. SQL hub
35.9K subscribers
914 photos
49 videos
37 files
973 links
По всем вопросам- @workakkk

@itchannels_telegram - 🔥лучшие ит-каналы

@ai_machinelearning_big_data - Machine learning

@pythonl - Python

@pythonlbooks- python книги📚

@datascienceiot - ml книги📚

РКН: https://vk.cc/cIi9vo
Download Telegram
Forwarded from Machinelearning
This media is not supported in the widget
VIEW IN TELEGRAM
👍10🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
SuperDuperDB для использования в AI-проектах

Предлагает специализированные функции, включающие:
✔️ деплой ИИ-API;
✔️ утилиту для тренировки моделей;
✔️ Feature Store - это «магазин» фичей, интерфейс между данными и моделями ML;
✔️ полноценную векторную базу данных.

Он может быть интегрирован с различными базами данных, такими как mongoDB и PostgreSQL, а также с платформами Amazon S3 и фреймворками машинного обучения, такими как PyTorch, Transformers и scikit-learn.

🐱 GitHub

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥31
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 TRUNCATE мгновенно удаляет все строки в таблице

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

TRUNCATE TABLE ... CASCADE

Для этого внешние ключи должны быть ON DELETE CASCADE

#SQLAlchemy

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥21
⚡️ Впечатляющая монолитная архитектура Stack Overflow

Компания Stack Overflow, поддерживает тенденцию развития микросервисов их сервис обрабатывает 1,3 млрд. просмотров страниц в месяц на своих 200 сайтах, используя удивительно эффективную монолитную архитектуру с минимальной инфраструктурой.

Веб-серверы:

- Используется всего 9 локальных веб-серверов IIS.
- Каждый сервер имеет 64 ГБ оперативной памяти и работает на высокооптимизированном коде .NET
- Обработка 450 пиковых запросов в секунду на каждом сервере при использовании всего 12% процессорной мощности
- Код минимизирует потребление памяти и настроен на ограничения сбора мусора

Серверы SQL:

- Организованы в 2 отказоустойчивых кластера по 2 сервера в каждом
- Первый кластер: 1,5 ТБ оперативной памяти на сервер
- Второй кластер: 768 ГБ оперативной памяти на сервер
- Около трети массива данных Q&A находится в памяти.
- Каждый кластер обрабатывает более 10 000 пиковых запросов в секунду при ~15% CPU

Redis:

- Один основной сервер с репликой на 256 ГБ.
- Обработка 60000 пиковых операций в секунду при 2% CPU

Stack Overflow эффективно масштабирует монолитное приложение.

📌 Архитектура наглядно
📌 Подкаст об архитектуре Stack Overflow

@sqlhub
🔥12👍61
🐘 Индексирование - важный процесс в PostgreSQL.

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

В этом руководстве показывается на примерах некоторые продвинутые стратегии индексирования в Postgres.

🖥 Читать

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
11👍6🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Выполнение побитовых операций над числами из Oracle Database 21c с помощью:

BIT_AND_AGG
BIT_XOR_AGG
BIT_OR_AGG



Преобразование десятичных чисел в двоичные (5 = 101, 6 = 110 и т. д.).
Сравнение значений в каждой битовой позиции
Преобразование результатов обратно в десятичный вид

@sqlhub
👍101🔥1😁1
🔥 Дайджест полезных материалов из мира SQL за неделю

Почитать:
Как жесткую программную систему превратить в гибкую или Двадцать лет спустя
Многомерный анализ данных: исследование многомерных кубов и SQL OLAP-запросов
SQL-инъекция: разбор уязвимости на примере
Иерархическая база данных (продолжение)
Как расширить компетенции аналитиков при работе с Big Data
Иерархическая база данных
XGBoost – один из наиболее эффективных алгоритмов прогнозирования временных рядов.
PostgreSQL Antipatterns: ходим по JSON-граблям
SQLx: raw SQL в Rust
Explorando el Mundo de los Archivos de Recurso en C# con Visual Studio
Easily Generate Mock Data with PostgreSQL
Why 0 is better than NULL sometimes
Monolithic vs. Distributed SQL
🚛 Deploy Database Schema Migrations with Bytebase
Comparing Types of Databases: A Real-World Benchmark Analysis
[SQL Performance Killers] Individual inserts vs. Bulk inserts
SQL Server - Types of System Databases and Tables
Postgres. How to check the top queries that use temporary files?
PostgreSQL. How to list the most IOPs-intensive queries?

Посмотреть:
🌐 STL C++ стандартная библиотека ( 00:57)
🌐 deque разбор в С++ ( 00:58)
🌐 Последовательные контейнеры c++ List ( 00:47)
🌐 Совет Python разработчикам - реши задачу Chain sum с реального собеседования. ( 14:23)
🌐 Нейросеть для превращения #YouTube видео в презентацию ( 00:28)
🌐 🔥 NVIDIA только что сделала Pandas в 150 раз быстрее без изменений кода. #python ( 00:20)
🌐 The Only Database Abstraction You Need | Prime Reacts

Хорошего дня!

@sqlhub
7👍1🔥1
Чтобы без особых усилий создавать поддельные данные для тестирования в #Python, используйте Faker.

@sqlhub
👍173🔥3
🖥 Почему PostgreSQL признан самым лбимой бд по результатам опроса разработчиков Stackoverflow?

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

🔹OLTP (Online Transaction Processing)
Мы можем использовать PostgreSQL для CRUD-операций (Create-Read-Update-Delete).

🔹OLAP (Online Analytical Processing)
Мы можем использовать PostgreSQL для аналитической обработки. PostgreSQL основан на архитектуре 𝐇𝐓𝐀𝐏 (Hybrid transactional/analytical processing), поэтому он может хорошо работать как с OLTP, так и с OLAP.

🔹FDW (Foreign Data Wrapper)
FDW - это расширение, доступное в PostgreSQL, которое позволяет нам обращаться к таблице или схеме одной базы данных из другой.

🔹Streaming
PipelineDB - это расширение PostgreSQL для высокопроизводительной агрегации временных рядов, предназначенное для работы с отчетами и аналитическими приложениями в реальном времени.

🔹Geospatial
PostGIS - это расширитель базы данных для объектно-реляционной базы данных PostgreSQL. Он добавляет поддержку географических объектов, позволяя выполнять запросы на определение местоположения в SQL.

🔹Временные ряды
Timescale расширяет PostgreSQL для работы с временными рядами и аналитикой. Например, разработчики могут объединять непрерывные потоки финансовых и тиковых данных с другими бизнес-данными для создания новых приложений и получения уникальных знаний.

🔹Распределенные таблицы
CitusData масштабирует Postgres за счет распределения данных и запросов.

Какая база данных вам нравится больше всего?

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
17🔥6👍2
Каковы основные кэш стратегии?

Считать данные из системы:
🔹 Cache aside
🔹 Read through

Запись данных в систему:
🔹 Write around
🔹 Write back
🔹 Write through

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

@sqlhub
👍13🔥32
🖥 Если вы работаете в области данных, вам предстоит пройти собеседование по SQL.

Неважно, кто вы - специалист по машинному обучению или инженер по обработке данных.

SQL присутствует везде.

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

Начинающим
- Уметь объяснить различные типы объединений. Иногда я видел, что этот вопрос задается рекрутерами в качестве отборочного, чтобы убедиться, что они хотят взять вас на работу.
- Знать, когда в порядке выполнения операций в SQL используется HAVING, а когда WHERE.
- Знать разницу между UNION и UNION ALL

Mid
- Понимать, как использовать оператор CASE внутри функции SUM или COUNT
- Знать, по крайней мере, 1-2 способа оптимизации запроса, и если вы решите, что одним из этих способов является создание индекса в таблице, то вы должны знать, какие плюсы и минусы есть у индекса.
- Уметь реализовать как подзапрос, так и CTE, но использовать CTE, если вы хотите доказать, что у вас хорошие навыки работы с SQL.

Продвинутый
- Знать, как решить SQL задачу с использованием оконной функции и без нее.
- Понимать и уметь объяснить, что такое коррелированный подзапрос.
- Просто сошлитесь на то, что вы посмотрите на план выполнения запроса. Рекрутеры будут шокированы тем, что вы вообще знаете, что это такое.

Мне бы хотелось услышать, какие вопросы вам задавали на собеседованиях по SQL. Пожалуйста, поделитесь ими в комментаряих!

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍194🔥3😁1
«Консервируем» данные: модули pickle и dill

Сериализация данных – это преобразование данных, обрабатываемых в программе (структур и объектов) в форматы, которые можно хранить и передавать.

Задача состоит в том, чтобы можно было в дальнейшем воссоздать точную копию сохранённых данных, не утратив какую-либо информацию. В python есть разнообразные способы сделать это, некоторые их которых я и приведу в этом посте.

Сериализация данных с помощью pickle

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

В общем случае, сохранение и загрузка с использованием модуля pickle выглядит так:

import pickle
with open('pickle_dump_ex', 'wb') as output_file:
pickle.dump(data_to_save, output_file)

with open('pickle_dump_ex', 'rb') as input_file:
data_to_load = pickle.load(input _file)


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

Примечательно, что библиотека позволяет исполнять программный код при десериализации данных. Функционал библиотеки позволяет добавить в класс методы getstate, setstate, и reduce, который описывает поведение объекта при сериализации/десериализации. Поэтому очень важно знать, что в файле не содержится вредоносного кода. С другой стороны, это может быть удобным подспорьем если требуется, например, напомнить себе о том на каком этапе находилась обработка перед сохранением объекта.

Выглядит это следующим образом:

Смотреть
👍84🔥1
🖥 Хотите получить N процентов строк из вашей таблицы?

Вы можете сделать это в SQL с помощью:

SELECT * FROM ...
ORDER BY ...
FETCH FIRST 10 PERCENT ROWS ONLY

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍374🔥2
📘 Большой, профессиональный перевод документации PostgreSQL на русском с примера кода и запросов

Подробный гайд от установки и настройки
Основы и темы и синтаксиса языка SQL
Все виды запросов, типы данных, функции и операторы
Преобразование типов, индексы и многое другое

📌 Документация

@sqlhub
8👍4🔥2
🖥 Как базы данных выполняют SQL-запросы?

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

1. Оператор SQL запускается в клиентской программе и передается по сети на сервер базы данных.

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

3. Оптимизатор запросов просматривает дерево запросов и определяет наиболее эффективный способ выполнения SQL-оператора, создавая план выполнения.

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

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

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

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

8. В то же время менеджер блокировок накладывает блокировки, чтобы несколько транзакций могли выполняться одновременно, не конфликтуя между собой. Таким образом, обеспечивается изоляция и согласованность.

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

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥24👍104