Data Science. SQL hub
36K subscribers
902 photos
46 videos
37 files
960 links
По всем вопросам- @workakkk

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

@ai_machinelearning_big_data - Machine learning

@pythonl - Python

@pythonlbooks- python книги📚

@datascienceiot - ml книги📚

РКН: https://vk.cc/cIi9vo
Download Telegram
🖥 Генераторы данных с открытым исходным кодом!

🟡Mimesis - надежный генератор данных для Python, который может создавать широкий спектр поддельных данных на различных языках.

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

🟡Benerator - генератор текстовых данных для оценки, тестирования и обучения ИИ-моделей.

🟡DataFactory - удобный способ создавать разнообразные наборы тестовых данных для наполнения баз данных и проверки ИИ-моделей.

🟡MockNeat - простой интерфейс для программной генерации данных в форматах json, xml, csv и sql.

🟡Faker - с помощью этого инструмента можно быстро создать фейковые данные для тестов.

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍133🔥2
🖥 Как можно избежать усложнения запроса лишними CASE

Тут ниже представлена попытка заNULLить значение, если оно равно чему-то.
, CASE WHEN sdate = '1900-01-01' THEN NULL ELSE sdate END sdate
, CASE WHEN mdate = '1900-01-01' THEN NULL ELSE mdate END mdate


Но ведь в PostgreSQL есть функция nullif, которая делает ровно то же самое.
NULLIF(значение1, значение2)

Функция NULLIF выдаёт значение NULL, если значение1 равно значение2; в противном случае она возвращает значение1. Это может быть полезно для реализации обратной операции к COALESCE. В частности, для примера, показанного выше:

SELECT NULLIF(value, '(none)') ...

В данном примере если value равно (none), выдаётся null, а иначе возвращается значение value.

То есть в примере выше можно переписать короче и понятнее:
, NULLIF(sdate, '1900-01-01') sdate
, NULLIF(mdate, '1900-01-01') mdate


#PostgreSQL

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍25🔥54
🖥 Огромное количество полезных шпаргалок для разработчиков

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

Github
SQL

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
11🔥5👍3
📈 PyGraphistry: Explore Relationships

PyGraphistry полезная это библиотека Python с ИИ для визуальных графов, позволяющая извлекать, преобразовывать, анализировать и визуализировать большие графы вместе со сквозными сеансами графического сервера Graphistry.

Библиотека создана специально для больших графов.

Пользовательский механизм рендеринга WebGL клиента рендерит до 8 миллионов узлов + ребер за раз, а большинство клиентских GPU поддерживают от 100 000 до 2 миллионов элементов.

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

Graphistry сглаживает графические рабочие процессы в экосистеме PyData, включая датафреймы Pandas/Spark/Dask, графического процессора Nvidia RAPIDS, графы GPU, графовые нейросети DGL/PyTorch и различные коннекторы данных.

PyGraphistry — это дружественный и оптимизированный нативный интерфейс PyData для API-интерфейсов REST Graphistry, не зависящих от языка. Можно использовать PyGraphistry с традиционными источниками данных Python, такими как CSV, SQL, Neo4j, Splunk и другими.

Github

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍114🥰4🔥2
🖥 Если вдруг вам понадобилось базу IP2Location перевести из DECIMAL-представления IP-адресов в "родной" для PostgreSQL тип inet, то для IPv4-адресов все будет тривиально:
'0.0.0.0'::inet + ipnum::bigint


А вот для преобразования числа к формату IPv6-адреса придется проявить немного изобретательности:
— "математически" разбиваем число на 8 двухбайтовых сегментов по (2 ^ 16) ^ i
— каждое значение преобразуем в шестнадцатеричную систему счисления и добиваем лидирующими нулями
— склеиваем сегменты через двоеточие и кастуем к inet
array_to_string(ARRAY(
SELECT
lpad(to_hex(trunc(
ipnum % (2::numeric(39,0) ^ ((i + 1) * 16)) / (2::numeric(39,0) ^ (i * 16))
)::integer), 4, '0')
FROM
generate_series(7, 0, -1) i
), ':')::inet


В принципе, после этого мы можем "свернуть" ip_from и ip_to в подсеть, не обращая внимания на исходный формат:
inet_merge(ip_from, ip_to) subnet


А если проиндексируем эти подсети с помощью gist...
CREATE INDEX ON country_inet USING gist(subnet inet_ops);

... то сможем по индексу быстро определять принадлежность произвольного IPv4/IPv6-адреса подсетям с помощью соответствующих операторов примерно таким запросом:
SELECT
*
FROM
country_inet
WHERE
subnet >> '8.8.8.8' AND
country <> '-'
ORDER BY
masklen(subnet) DESC
LIMIT 1;


@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
13🔥7👍6🥰1
🎯 Tarantool Column Store — новая гибридная СУБД с поддержкой как колоночного, так и строчного хранения и обработки данных в режиме реального времени.

Транзакционные и аналитические системы в одном месте – возможность проводить анализ на актуальных данных
Моментальный анализ – все данные доступны в одной СУБД
Быстрая обработка данных – можно обрабатывать задачи AI
Совместимость – обновление работает с российскими операционными системами Astra Linux, РЕД ОС и «Альт».

@sqlhub
9👍3🔥1
🖥 sqlite-web - это веб-браузер баз данных SQLite, написанный на Python.

Работает с существующими базами данных SQLite или может использоваться для создания новых баз данных.
Экспорт данных в формате JSON или CSV.
Импорт файлов JSON или CSV.


$ pip install sqlite-web

Github

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
14👍9🔥3
🛠 Gephi — один из наиболее функциональных и доступных инструментов для всех, кто изучает социальные сети и графы.

Gephi Lite — это его облегчённая веб-версия.

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

🔗 gephi.org/gephi-lite

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍133🔥2
Forwarded from Борис опять
ОУ Карьера курс ML_Pro 27.02.24 (3).pdf
3.5 MB
Презентация с моего вебинара для ОТУС: Что нужно джунам знать про найм в ML/DS в начале карьеры

Я не виню вас, если вы не готовы слушать меня два с половиной часа. Поэтому вот презентация, там вы найдете 80% контента
5👍4🥰1
⚡️ SpeedML - это библиотека Python, целью которой является ускорение процесса разработки конвейера машинного обучения.

Она объединяет часто используемые пакеты ML, такие как Pandas, NumPy, Scikit-learn, XGBoost и Matplotlib. SpeedML также предоставляет функциональные возможности для автоматизированного EDA.

pip install speedml

Github

@sqlhub
9👍6🔥5
⚡️ Dolt — первая в мире база данных SQL с контролем версий.

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

Контроль версий БД в стиле Git предоставляет ряд полезных фичей:
— Мгновенный откат к любому предыдущему состоянию
— Полный журнал аудита с возможностью запроса, содержащий все данные с момента их создания.
— Несколько развивающихся ветвей данных
— Возможность объединения ветвей данных
— Быстрая синхронизация с удаленными версиями для резервного копирования или децентрализованной совместной работы.
— Запрашиваемые различия (т. е. различия) между версиями

Механизм хранения Dolt построен на графе коммитов Prolly Trees в стиле Git. Схема таблицы и данные хранятся в Prolly Trees. Корни этих деревьев Prolly вместе с другими метаданными хранятся в графе коммитов, чтобы обеспечить контроль версий в стиле Git.

🔗 Подробнее можно почитать на официальной страничке
🔗Github

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥18👍52
This media is not supported in your browser
VIEW IN TELEGRAM
💻ACID

Когда речь идёт о базах данных, может всплыть сочетание «Требования ACID».
Давайте освежим в памяти, что же это значит

Требования ACID — набор требований, которые обеспечивают сохранность ваших данных.

🔅Atomicity — Атомарность
Атомарность гарантирует, что каждая транзакция будет выполнена полностью или не будет выполнена совсем. Не допускаются промежуточные состояния.

🔄Consistency — Согласованность
Это свойство вытекает из предыдущего. Благодаря тому, что транзакция не допускает промежуточных результатов, база остается консистентной. Есть такое определение транзакции: «Упорядоченное множество операций, переводящих базу данных из одного согласованного состояния в другое». То есть до выполнения операции и после база остается консистентной (согласованной)

⬇️Isolation — Изолированность
Во время выполнения транзакции параллельные транзакции не должны оказывать влияния на её результат.

🔓Durability — Надёжность
Если пользователь получил подтверждение от системы, что транзакция выполнена, он может быть уверен, что сделанные им изменения не будут отменены из-за какого-либо сбоя. Обесточилась система, произошел сбой в оборудовании? На выполненную транзакцию это не повлияет.

🔗 Полезная статья на Хабре в тему

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13👍103