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

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

@ai_machinelearning_big_data - Machine learning

@pythonl - Python

@pythonlbooks- python книги📚

@datascienceiot - ml книги📚

РКН: https://vk.cc/cIi9vo
Download Telegram
💻Как управлять версиями вашего SQL

Теоретически многие понимают, что контроль версий может:
— Помочь нам сравнить запросы, чтобы найти различия
— Сравнить предыдущую версию с новой версией запроса.
— Разрешить мне отменить изменение, внесенное в мой код, которое не имело ожидаемого эффекта.
— Разрешить нашей команде сотрудничать, когда кому-то нужна помощь с запросом

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

Я думаю, что лучший способ учиться — это брать и делать.
Поэтому держите очень полезный туториал, который покажет, как настроить управление версиями SQL с помощью GitHub и DBeaver.

📎 Туториал

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍103🔥3👎1
💻Как управлять версиями вашего SQL

Теоретически многие понимают, что контроль версий может:
— Помочь нам сравнить запросы, чтобы найти различия
— Сравнить предыдущую версию с новой версией запроса.
— Разрешить мне отменить изменение, внесенное в мой код, которое не имело ожидаемого эффекта.
— Разрешить нашей команде сотрудничать, когда кому-то нужна помощь с запросом

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

Я думаю, что лучший способ учиться — это брать и делать.
Поэтому держите очень полезный туториал, который покажет, как настроить управление версиями SQL с помощью GitHub и DBeaver.

📎 Туториал

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
8😁5👍4🥰2🔥1
💻Вышла новая версия СУБД Postgres Pro Enterprise 16.2.1

Postgres Professional заявила о выпуске новой версии Postgres Pro Enterprise. Релиз включает возможности мажорных версий Postgres Pro Enterprise 16.1.1, PostgreSQL 16.2 и ряд новых разработок для повышения безопасности, улучшенной оптимизации запросов, аналитики и работы с большими объектами, рассказали информационной службе Хабра в пресс‑службе компании.

Среди ключевых обновлений Enterprise 16.2.1:

сделана интеграция с расширением Citus, обеспечивающим масштабируемость PostgreSQL за счёт шардирования данных на нескольких узлах PostgreSQL. В отличие от выпущенной в феврале 2024 года в широкое пользование СУБД Postgres Pro Shardman, ориентированной на OLTP‑нагрузку, Citus ориентирован на аналитическую OLAP‑нагрузку;

стал доступен перепланировщик запросов Replan, один из компонентов adaptive query execution (адаптивного выполнения), срабатывающий по максимальному времени выполнения;

добавлено расширение dbms_lob, позволяющее обращаться к определённым частям больших объектов (LOB) или большим объектам целиком и управлять ими (поддерживаются объекты CLOB, BFILE и временные BLOB);

появилась новая версия pg_proaudit 2.0, поддерживающая правила, обобщающие типичные группы действий пользователей и срабатывание правил по группам пользователей, а не по их индивидуальным учётным записям;

введены два новых модификатора для работы с пакетами: #private и *#export.* Модификатор #private определяет функции и процедуры как внутренние, а модификатор #export определяет, какие переменные пакета являются публичными;

добавлены ассоциативные массивы и хэш‑коллекции (аналог indexed by таблиц PL/SQL в Oracle);

📎Подробная информация о новой версии доступна на сайте компании.

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍106🔥4
▶️7 типов баз данных, понимание которых пригодится специалисту Data Science

Иерархические БД — DNS, LDAP
В иерархических БД каждая запись имеет одного «родителя». Это создаёт древовидную структуру, в которой записи классифицируются по их отношениям с цепочкой родительских записей.

Сетевые БД — IDMS
Сетевые БД расширяют функциональность иерархических: записи могут иметь более одного родителя. А значит, можно моделировать сложные отношения.

Реляционные БД — PostgreSQL, MariaDB, SQLite, MySQL
Реляционные БД – старейший тип до сих пор широко используемых БД общего назначения. Данные и связи между данными организованы с помощью таблиц. Каждый столбец в таблице имеет имя и тип. Каждая строка представляет отдельную запись или элемент данных в таблице, который содержит значения для каждого из столбцов.

Базы данных «ключ-значение» — Redis, Memcached
В БД «ключ-значение» для хранения информации вы предоставляте ключ и объект данных, который нужно сохранить. Например, JSON-объект, изображение или текст. Чтобы запросить данные, отправляете ключ и получаете blob-объект.

Документная база данных — MongoDB, RethinkDB
Документные БД совместно используют базовую семантику доступа и поиска хранилищ ключей и значений. Такие БД также используют ключ для уникальной идентификации данных. Разница между хранилищами «ключ-значение» и документными БД заключается в том, что вместо хранения blob-объектов, документоориентированные базы хранят данные в структурированных форматах – JSON, BSON или XML.

Графовая база данных — Neo4j, JanusGraph, Dgraph
Вместо сопоставления связей с таблицами и внешними ключами, графовые БД устанавливают связи, используя узлы, рёбра и свойства.

Колоночные БД — Cassandra, HBase
Колоночные БД принадлежат к семейству NoSQL БД, но внешне похож на реляционные БД. Как и реляционные, колоночные БД хранят данные, используя строки и столбцы, но с иной связью между элементами.

📎 Читать подробнее

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20🔥84
Яндекс подготовит на треть больше  топовых специалистов по ML и Data Science

Школа анализа данных Яндекса открыла набор на следующий учебный год. Школа решила увеличить число своих студентов — на обучение примут 400 человек, что обеспечит приток новых датасаентистов на рынок. Конкурс при приёме в ШАД остаётся стабильно высоким (17 человек на место в 2023 году), но добавляется новая возможность поступить — теперь абитуриенты смогут поступить также через очную олимпиаду.
В недавнем исследований ШАД выяснил, что 77% выпускников устраиваются в лидирующие  технологические компании, а каждый четвёртый работает в научной сфере.

Больше о карьерных треках выпускников ищите в карточках.

@sqlhub
14
💻Исследователи обнаружили, что GitHub Copilot генерирует уязвимые SQL-запросы (да и не только SQL-запросы)

Не так давно исследователи компании Snyk, специализирующейся на безопасности, рассказали, что ИИ-помощник GitHub Copilot генерирует уязвимый код, если в проекте уже есть такой. Это связано с тем, что нейросеть просто анализирует кодовую базу, в том числе и плохие практики.

Snyk провела эксперимент, чтобы доказать способность GitHub Copilot генерировать уязвимый код на основе такого же в проекте. На 1 этапе исследователи попросили ИИ-помощника сгенерировать SQL-запрос и получили это:
// create query to match input with the description or product name
var query = em.createQuery("SELECT p FROM Product p WHERE LOWER(p.description) like OR lower(p.productName) like :input", Product.class);

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

После этого в соседнем файле проекта самостоятельно написали уязвимый SQL-запрос и снова попросили нейросеть написать код. Во второй раз GitHub Copilot сгенерировал следующий фрагмент:
// create query to match input with the description or product name
String query = "Select * from Product where lower(description) like '%" + lowerInput + "%' OR lower(product_name) like '%" + lowerInput + "%'";

Для контекста нейросеть использовала уязвимый код и на его основе сгенерировала ещё одну ошибку.

Факторы, усугубляющие использование GitHub Copilot:

Закрепление плохого подхода. Начинающие разработчики, использующие ИИ-помощников, не замечают своих ошибок и начинают думать, что если код сгенерировала нейросеть, то он верный.

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

Устаревшие шаблоны. GitHub Copilot может предлагать фрагменты, которые в сообществе уже признаны неверными и содержащими ошибки.

Будьте аккуратнее, в общем)

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
👍143🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Допустим вы хотите получить минимальное или максимальное значения из индексированного столбца.

Очевидно, что это будет первая, либо последняя запись в этом столбце.

База данных Oracle знает об этом, поэтому может оптимизировать данный запрос:

INDEX FULL SCAN (MIN/MAX)

или

INDEX RANGE SCAN (MIN/MAX)

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

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍4🥰2🔥1
💻Коллекция готовых SQL-запросов для PostgreSQL

Нереально полезная подборка SQL-запросов, количество запросов вы и сами видите, это покрывает большую часть того, что может встретиться в практике

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

Рассматриваются способы разбиения больших таблиц на N тысяч записей и распараллеливания запросов

Обсуждаются особенности сравнения record и NULL и способы быстрого получения количества записей в большой таблице

Рассматриваются рекурсивные запросы, модификация пользовательских данных (UPSERT) и журналирование изменений таблицы

Рассматриваются модификации схемы данных (DDL) и способы добавления ограничений таблицы и изменения ограничений внешнего ключа без блокирования таблицы

📎 Коллекция

@sqlhub
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥31👍84