Data Science. SQL hub
33K subscribers
846 photos
40 videos
36 files
912 links
По всем вопросам- @workakkk

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

@ai_machinelearning_big_data - Machine learning

@pythonl - Python

@pythonlbooks- python книги📚

@datascienceiot - ml книги📚

РКН: https://vk.cc/cIi9vo
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Именно поэтому долговечность - самое важное свойство базы данных.

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

Как базы данных гарантируют, что мы не потеряем наши данные?

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

Всякий раз, когда пользователь выполняет транзакцию, база данных делает две вещи:

▪️записывает данные в отдельный журнал
▪️производит обновление.

Журнал позволяет обрабатывать транзакции во время перезагрузки.

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

Что делать, если база данных распределена?

Этот случай более сложный, поскольку серверы базы данных должны координировать свои действия

Существует процесс, в котором один из серверов выступает в роли координатора:

▪️он передает сообщение о фиксации всем участникам
▪️ожидает всех подтверждений
▪️сообщает о фиксации или откате

@sqlhub
🖥 Relational Deep Learning - это новый подход к представлению данных, распределенных по нескольким таблицам, например, в реляционной базе данных (см. статью).

RelBench - это бенчмарк, который призван способствовать эффективным, надежным и воспроизводимым исследованиям в этом направлении.

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

Эта прорывная технология открывает широкие возможности для работы с данными и поднимает новые интересные исследовательские вопросы.

Github
Проект

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
ℹ️HNSWℹ️

Иерархический маленький мир (Hierarchical Navigable Small-World graph, HNSW) — один из самых быстрых алгоритмов приблизительного поиска ближайших соседей. Поисковый индекс в HNSW представляет собой многоуровневую структуру, в которой каждый уровень является графом близости. Каждый узел графов соответствует одному из векторов запросов.

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

Поиск ближайших соседей в HNSW использует метод увеличения (zooming-in). Он начинается во входной ноде самого верхнего уровня и рекурсивно выполняет жадный обход графов на каждом уровне, пока не достигнет локального минимума на самом дне.

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


Как это работает?

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

Почему HNSW?

▪️Скорость: иерархическая структура означает, что алгоритм поиска может перемещаться по графу быстрее, чем при плоской структуре.
▪️Масштабируемость: Поскольку кэш-память хранит только верхний слой, а затем добавляет только соседние векторы в дальнейших слоях, это очень эффективно и масштабируемо.
▪️Адаптируемость: HNSW очень надежен и может одновременно работать с импортом и запросами.

@sqlhub
ℹ️Масштабирование базы данныхℹ️

Масштабировать чтение базы данных очень просто. Проблемы начинаются, когда вы хотите масштабировать записи!

▪️Почему?

Чтобы масштабировать чтение, вы просто реплицируете данные на несколько узлов.

Ведущий узел обрабатывает запросы на запись, а последующие - на чтение.

Однако масштабирование операций записи - это совсем другое дело.

Чтобы масштабировать запись, вы позволяете нескольким узлам обрабатывать запросы на запись.

Это более известно как активно-активная настройка.

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

Но такая схема может привести к конфликтам.

На этом этапе вам необходимо иметь какой-то алгоритм разрешения конфликтов.

@sqlhub
ℹ️База данных и паролиℹ️

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

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

Некоторые альтернативные подходы включают в себя:

▪️Использование сторонних служб аутентификации (например, OAuth) для обработки входа в систему.
▪️Использование федеративного управления идентификацией и единого входа (SSO) для минимизации использования паролей.

НЕЛЬЗЯ:

- Хранить пароли в формате обычного текста
- Хешировать пароли без разделения

ОБЯЗАТЕЛЬНО:

- Хешировать пароли перед хранением с помощью криптографических функций.
- Следуйте отраслевым стандартам, таким как OWASP, для реализации соления и хэширования.
- Правильно проверяйте попытки входа в систему, сравнивая хэши входных паролей и хранимых хэшей по времени.
🔥 Shopify обслуживает более 1 миллиона запросов в секунду во время черной пятницы.

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

Shopify использует 𝗺𝗼𝗱𝘂𝗹𝗮𝗿 𝗺𝗼𝗻𝗼𝗹𝗶𝘁𝗵 𝗮𝗽𝗽𝗿𝗼𝗮𝗰𝗵( модульную монолитную архитектуру), они хранят весь свой код в одной модульной кодовой базе.

Монолитная архитектура - самая простая архитектура для понимания и реализации.

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

Централизация развертывания приложения и поддержки кодовой базы имеет множество преимуществ.

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

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

Shopify реализовала одну из версий модульного монолита на 𝗥𝘂𝗯𝘆 𝗼𝗻 𝗥𝗮𝗶𝗹𝘀. Они организуют кодовую базу вокруг реальных концепций (таких как заказы, доставка, инвентаризация и выставление счетов), что облегчает разметку кода и людей, которые его понимают. Каждый компонент представляет собой мини-приложение на Rails (модуль).

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

Cтатистики работы Shopify на черной пятнице:

🔹 145 миллиардов запросов (~60 миллионов в минуту)
🔹 99,999+% аптайма
🔹 5 ТБ/мин данных из всей инфраструктуры
🔹 MySQL 5.7 и 8 обрабатывают более 19 миллионов запросов в секунду (QPS)
🔹 22 ГБ/сек журналов и 51,4 ГБ/сек метрических данных
🔹 9 миллионов проходов в секунду данных трассировки
🔹 Их Apache Kafka обслуживал 29 миллионов сообщений в секунду в пиковый момент
🔹 Все работает в облаке Google Cloud

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Python и базы данных

1. Python+SQL работа с базами данных
2. Python анализ данных с Pandas. PandaSQL
3. Python анализ данных с Pandas. Join, merge, concat в Pandas
4. Python+SQL часть 2, создание таблиц
5. Python+SQL. Операции с записями
6. Устраиваемся на работу. Решаем тестовое задание на позицию Python Junior

#video #python #sql

https://youtube.com/watch?v=Q7FtqwF5GDw&list=PLysMDSbb9HcxdvtQSkYoO7xaF3SvGUD8n

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
🔍 Prisma

Популярная ORM prisma получила обновления.

Prisma
- это продвинутая ORM для Node.js и TypeScript | PostgreSQL, MySQL, MariaDB, SQL Server, SQLite, MongoDB и CockroachDB

https://github.com/prisma/prisma

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Проверить, насколько похожи две строки в Oracle Database 23c #SQL с помощью

FUZZY_MATCH ( <algorithm>, 'string1', 'string2' )

Поддерживается множество алгоритмов сравнения, включая:

Левенштейна
Яро-Винклер
Биграм
Совпадение всего слова
Длиннейшая общая подстрока

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 Дайджест полезных материалов из мира SQL за неделю

Почитать:
8 бесплатных курсов по большим языковым моделям
Современные варианты баз данных
Почитать:
Детализированные стратегии кэширования динамических запросов
Как в РСХБ разработали средство генерации SQL-запроса для упрощения задач по тестированию
Прекратите клепать базы данных
CADLib API: От API к прямой работе с базой данных модели через SQL-запросы
The Most Annoying Optimizer Fail in Postgres Best index solved it.
How Modern SQL Databases Are Changing Web Development - #3 Better Developer Experience
Configuring Delete Behaviour for One to Many Related Objects in SQLAlchemy 2.0
Isolation Levels - part VIII: Cursor Stability
SQL - Joins (Tutorial Prático)
Views, Sequences e Synonyms: Um tutorial prático
Quick 📸 on 🐘 wait events from pg_stat_activity
DATABASE
Triggers
NoSQL? I'll show you NoSQL!

Посмотреть:
🌐 Ollama — модель уровня GPT. Используй GPT без ограничений и абсолютно бесплатно.
🌐 Эти фишки сделают твой Python код лучше🔥 ( 18:27)
🌐Выполнение простейших запросов SQL в СУБД Ред База Данных и Firebird!

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

@sqlhub
🖥 СОВЕТ: В SQL, если вы ищите «все строки без определенного значения» вывод не будет включать строки, содержащие NULL 😳

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

Некоторым это может показаться неожиданным поведением для движков: #mysql, #postgresql.

Если вы хотите вывести NULL, используйте `val != 'crazy' OR val IS NULL`

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
📁 Shutil: лучший инструмент для управления файлами Python

https://www.youtube.com/watch?v=_q2h9qslPzI

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
🖥 Что такое GraphQL с примерами

00:59 Что такое GraphQL и откуда он взялся
01:55 Чем GraphQL лучше, чем REST API
04:03 Графовая структура
04:45 Типы запросов
07:00 Основные концепции в GraphQL
12:07 Схема
14:09 Преимущества

👉 Источник: youtu.be/Xkx5wroOt7o

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 6 бесплатных курсов по SQL

1- SQL для анализа данных от Udacity
Продолжительность: Примерно 4 недели
Уровень навыков: Начинающий

Ссылка - https://shiksha.com/online-courses/sql-for-data-analysis-course-udacl3

2- Введение в SQL от Kaggle
Продолжительность: Приблизительно 3 часа
Уровень мастерства: Начинающий

Ссылка - https://kaggle.com/learn/intro-to-sql

3- Продвинутый SQL от Kaggle
Продолжительность: Приблизительно 4 часа
Уровень мастерства: Промежуточный

Ссылка - https://kaggle.com/learn/advanced-sql

4- Введение в базы данных и SQL-запросы от Udemy
Продолжительность: Приблизительно 2 часа 17 минут
Уровень мастерства: Начинающий

Ссылка - https://udemy.com/course/introduction-to-databases-and-sql-querying/

5- Intro to Relational Databases byUdacity
Продолжительность : 4 недели
Уровень квалификации: Средний ученик

Ссылка - https://udacity.com/course/intro-to-relational-databases-ud197

6- Введение в SQL (DataCamp)
Продолжительность: 4,5 часа
Уровень квалификации: Начинающий

Ссылка -
https://datacamp.com/courses/introduction-to-sql

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Как работают JOINS в SQL?

На диаграмме ниже подробно показано, как работают 4 типа объединений SQL.

🔹 INNER JOIN
Возвращает совпадающие строки в обеих таблицах.

🔹 LEFT JOIN
Возвращает все записи из левой таблицы и совпадающие записи из правой таблицы.

🔹 RIGHT JOIN
Возвращает все записи из правой таблицы и совпадающие записи из левой таблицы.

🔹 ПОЛНОЕ ВНЕШНЕЕ СОЕДИНЕНИЕ
Возвращает все записи, для которых есть совпадение в левой или правой таблице.

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
🦆 Традиционные системы баз данных часто требуют управления отдельным сервером СУБД, что вносит дополнительные сложности в рабочий процесс.

С помощью DuckDB вы можете эффективно выполнять SQL-запросы на pandas

DataFrames без необходимости управления отдельным сервером СУБД. DuckDB - это высокопроизводительная аналитическая система баз данных.

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

https://github.com/duckdb/duckdb

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥Подборка лучших обучающих каналов для программистов.

➡️Делитесь с коллегами и Сохраняйте себе, чтобы не потерять

Машинное обучение

Machine Learning - полезные статьи новости гайды и разбор кода
Ml Собеседование - подготовка к собеседовению мл, алгоритмам, кодингу
Ml ru - актуальные статьи, новости, код и обучающие материалы
Ml Jobs - вакансии ML
ML Книги - актуальные бесплатные книги МО
ML чат

🚀 Data Science

Анализ данных - полезные фишки, код, гайды и советы, маст-хэв датасаентиста
Data Jobs - ds вакансии
Аналитик данных
Data Science книги - актуальные бесплатные книги
Big data

🏆 Golang
Golang - подробные гайды, разбор кода, лучшие практики, заметки
Golang собеседование
Golang вакансии
Golang книги
Golang задачи и тесты
Golang чат
Golang news - новости go



#️⃣C#

С# академия
С# заметки — код, лучшие практики, заметки программиста c#
С# задачи и тесты
С# библиотека - актуальные бесплатные книги
C# вакансии - работа

🐍 Python

Python/django
Python Собеседование - подготовка к собеседовению python и разбор алгоритмов
Pro python - статьи, новости, код и обучающие материалы
Python Jobs - вакансии Python
Python чат
Python книги

Java

Java академия
Java вакансии
Java чат
Java вопросы с собеседований
Java книги

💻 C++

C++ академия
С++ книги
C++ задачи - подготовка к собеседовению мл, алгоритмам
C++ вакансии

💥 Хакинг Kali Linux

Kali linux
linux_kal - kali чат
Информационная безопасность

🐧 Linux

Linux academy

🦀 Rust
Rust программирование
Rust чат

🛢Базы данных
Sql базы данных
Библиотека баз данных
SQL чат

📲 Мобильная разработка
Android разработка
Мобильный разработчик гайды и уроки

🖥 Javascript/React/PHP
Javascript академия
React программирование
PHP
Книги frontend
Задачи frontend

🇬🇧 Английский для программистов

🧠 Искусственный интеллект
ИИ и технологии
Neural - нейросети для работы и жизни
Книги ИИ
Artificial Intelligence

🔥 DevOPs
Devops для программистов
Книги Devops
Docker

📓 Книги
Библиотеки Книг для программситов

💼 Папка с вакансиями:
Папка Go разработчика:
Папка Python разработчика:
Папка Data Science
Папка Java разработчика
Папка C#
🔥 Дайджест полезных материалов из мира SQL за неделю

Почитать:
Разворачиваем и заворачиваем в docker проект ASP.NET core на Ubuntu в связке с PostgreSQL
Оптимизация хранения данных в Greenplum
Наиболее часто используемые команды Linux
79 Ресурсов, которые следует прочитать, чтобы улучшить свои навыки в области проектирования систем:
Бесплатные сертификационные курсы для специалистов по данным
Курс «PostgreSQL для начинающих»: #1 — Основы SQL
Рекомендации по ведению SQL-кода
Сравнительный анализ методов аппроксимации на основе SQL-запросов
Как мы наводим порядок с данными в столичном транспортном институте
Сборка pgModeler в Windows 10 без знания Qt
Exploring Columnar Indexes in PostgreSQL
How the Relational Database Came to Be
Use SQL without Databases
About Using SQL for Big Data Computing
Unit of Work pattern in Go
DB2 Cheat Sheet
High Availability in SQL: A Guide to High Availability Databases
SQL vs No-SQL
Understan How Sql works
Sql Beginners Tutorials

Посмотреть:
🌐Azure SQL DB High Availability & Disaster Recovery overview | Data Exposed
🌐 Mixtral 8x7B - это сет из 8 нейронок, которые работают вместе
🌐 Ollama — модель уровня GPT. Используй GPT без ограничений и абсолютно бесплатно. ( 07:40)
🌐 Shutil: лучший инструмент для управления файлами Python. ( 17:05)
🌐 Как использовать API ChatGpt. Работа с Api c нуля ( 12:42)
🌐 💡Задача Python: Максимальное среднее подмассива ( 01:00)
🌐 Нахождение позиций в отсортированном массиве #python #array #shorts #сортировка ( 00:40)

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

@sqlhub
🖥 Список СУБД

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM