@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤3🔥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🔥5❤4
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
👍11❤4🥰4🔥2
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
Транзакционные и аналитические системы в одном месте – возможность проводить анализ на актуальных данных
Моментальный анализ – все данные доступны в одной СУБД
Быстрая обработка данных – можно обрабатывать задачи AI
Совместимость – обновление работает с российскими операционными системами Astra Linux, РЕД ОС и «Альт».
@sqlhub
❤9👍3🔥1
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
👍13❤3🔥2
Forwarded from Борис опять
ОУ Карьера курс ML_Pro 27.02.24 (3).pdf
3.5 MB
Презентация с моего вебинара для ОТУС: Что нужно джунам знать про найм в ML/DS в начале карьеры
Я не виню вас, если вы не готовы слушать меня два с половиной часа. Поэтому вот презентация, там вы найдете 80% контента
Я не виню вас, если вы не готовы слушать меня два с половиной часа. Поэтому вот презентация, там вы найдете 80% контента
❤5👍4🥰1
⚡️ SpeedML - это библиотека Python, целью которой является ускорение процесса разработки конвейера машинного обучения.
Она объединяет часто используемые пакеты ML, такие как
• Github
@sqlhub
Она объединяет часто используемые пакеты ML, такие как
Pandas, NumPy, Scikit-learn, XGBoost и Matplotlib. SpeedML
также предоставляет функциональные возможности для автоматизированного EDA.pip install speedml
• Github
@sqlhub
❤9👍6🔥5
Для достижения этой цели 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👍5❤2
This media is not supported in your browser
VIEW IN TELEGRAM
Когда речь идёт о базах данных, может всплыть сочетание «Требования ACID».
Давайте освежим в памяти, что же это значит
Требования ACID — набор требований, которые обеспечивают сохранность ваших данных.
Атомарность гарантирует, что каждая транзакция будет выполнена полностью или не будет выполнена совсем. Не допускаются промежуточные состояния.
Это свойство вытекает из предыдущего. Благодаря тому, что транзакция не допускает промежуточных результатов, база остается консистентной. Есть такое определение транзакции: «Упорядоченное множество операций, переводящих базу данных из одного согласованного состояния в другое». То есть до выполнения операции и после база остается консистентной (согласованной)
Во время выполнения транзакции параллельные транзакции не должны оказывать влияния на её результат.
Если пользователь получил подтверждение от системы, что транзакция выполнена, он может быть уверен, что сделанные им изменения не будут отменены из-за какого-либо сбоя. Обесточилась система, произошел сбой в оборудовании? На выполненную транзакцию это не повлияет.
🔗 Полезная статья на Хабре в тему
@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13👍10❤3