chat_sql | Unsorted

Telegram-канал chat_sql - SQL

2844

По всем вопросам- @haarrp @itchannels_telegram - 🔥лучшие ит-каналы @ai_machinelearning_big_data - Machine learning @pythonl - Python @pythonlbooks- python книги📚 @datascienceiot - ml книги📚

Subscribe to a channel

SQL

Выложите таблицу и тестовые данные на SQLize.online, чтобы было легче поиграть с вариантами

Читать полностью…

SQL

Что делать с постепенно растущей нагрузкой при быстром масштабировании? А с ее резким ростом?

Ответы на эти вопросы — на вебинаре Tarantool и Git In Sky «Типичные ошибки быстрого масштабирования: как их избежать» 23 ноября в 16:00 МСК.

В программе:

🔹 Что может пойти не так на начальном этапе масштабирования? В чем плюсы и минусы традиционных подходов к кэшированию?

🔹 Что делать с постепенно растущей нагрузкой? А с резким ростом нагрузки? Как обеспечить доступность и отказоустойчивость сервиса?

🔹 Как избежать чрезмерного разрастания технологического стека при выпуске нового функционала?

🔹 Как на разных этапах масштабирования может помочь Tarantool? И как правильно его приготовить, чтобы добиться максимальной производительности и надежности?

Приходите, если любите учиться на чужих ошибках и узнавать про факапы других людей🙂

Регистрируйтесь: https://bit.ly/3QqBdo4

Читать полностью…

SQL

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

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

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

@sqlhub

Читать полностью…

SQL

«Консервируем» данные: модули 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, который описывает поведение объекта при сериализации/десериализации. Поэтому очень важно знать, что в файле не содержится вредоносного кода. С другой стороны, это может быть удобным подспорьем если требуется, например, напомнить себе о том на каком этапе находилась обработка перед сохранением объекта.

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

Смотреть

Читать полностью…

SQL

🖥 Если вы работаете в области данных, вам предстоит пройти собеседование по SQL.

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

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

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

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

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

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

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

@sqlhub

Читать полностью…

SQL

Каковы основные кэш стратегии?

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

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

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

@sqlhub

Читать полностью…

SQL

🖥 Почему 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

Читать полностью…

SQL

Команда VK Cloud недавно запустила новый канал о работе с данными — Данные на стероидах.

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

Помимо прочего, в канале много полезной информации о работе с данными, архитектуре дата-решений и новостей российского и международного Data-сообщества.

👉🏻 Подписывайтесь на канал Данные на стероидах, будет интересно!

Читать полностью…

SQL

❗️Как развиваться разработчику и администратору баз данных? 

👉 Наращивать объем знаний и навыков.

Приглашаем на открытый урок «Синхронный VS Асинхронный PostgreSQL» в рамках курса «PostgreSQL для администраторов баз данных и разработчиков» от OTUS

🔹 Рассмотрим архитектуру синхронного коммита, синхронные и асинхронные реплики

🔹Разберем особенности 5 уровней синхронности

🦾  PostgreSQL — навык, открывающий двери в более интересные и перспективные проекты. 

👉 РЕГИСТРАЦИЯ
https://otus.pw/Asnh/

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963. erid: LjN8KZdnZ

Читать полностью…

SQL

Где набраться опыта в аналитике данных, структурировать знания и узнать, как с рабочими задачами справляются профессионалы?

Получите опыт, сопоставимый с работой в крупной компании — пройдите 6 недель интенсивной практики на «Симуляторе аналитика».

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

Наставники курса - Анатолий Карпов и другие ведущие аналитики. Они точно знают, как эффективно решать рабочие задачи, и готовы поделиться опытом с вами.

Обучение начинается уже 13 ноября, а сейчас как раз можно вписаться по самой приятной цене

[Узнать подробнее и записаться на курс]

Читать полностью…

SQL

Выполнение побитовых операций над числами из Oracle Database 21c с помощью:

BIT_AND_AGG
BIT_XOR_AGG
BIT_OR_AGG



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

@sqlhub

Читать полностью…

SQL

Добрый день! Есть три простых задачки в MS SQL, больше сомневаюсь в 3-ей, может кто-то подсказать. Именно MS SQL.

Читать полностью…

SQL

Спасибо огромное, теперь понятно.

Читать полностью…

SQL

Перейдите на постоянные таблицы

Читать полностью…

SQL

Глобальная таблица видна из разных сессий

Читать полностью…

SQL

📘 Большой, профессиональный перевод документации PostgreSQL на русском с примера кода и запросов

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

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

@sqlhub

Читать полностью…

SQL

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

записей сотни по каждой валюте, задание:
мне условно будет дан масив чисел, числа это минуты, а результат должен быть следующим: вернуть значение по определенной валюте (вводится клиентом), которое было введено первое за опреленную минуту. Тоесть условно пользователь вводит [1,3,7] и имя валюты, в результате я должен вернуть 3 значения

первое - первое значение которое было введено в бд минуту назад

второе - первое значение которое было введено в бд три минуты назад


третье - первое значение которое было введено в бд семь минут назад

Само собой что нет привязки к введённым значением, пользователь может ввести любое количество цифр которые должны быть применены в выборке.

Суть в том что нельзя предугадать колличество вводимых елементов и попадет ли пользователь на нужный елемент, допустим пользователь введёт 2
значит нужно дать данные которые были введены 2 минуты назад
получается что нужно выбрать значение, время которого равно NOW() - internal '2 minutes' .
Но очень редко возможно такое что ровно 2 минуты назад была запись в бд. В таком случае нужно взять елемент который был записан в бд по нужной валюте раньше. Тоесть если условно сейчас 10:00:02, мы запрашиваем данные 2 минуты назад у нас два варианта
1. 09:58:02 есть в бд - значит берём их
2. данных нет, берём предыдущие, которые наиболее близко подходят к этому условию, например в этом случае подойдёт 09:57:54


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



WITH cte AS (
SElECT qh.time,
value,
(EXTRACT(MINUTE FROM(NOW() - qh.time))) AS minute
FROM quotes_history AS qh
WHERE ticker = 'EURUSD'
AND EXTRACT(
MINUTE FROM(NOW() - time))
IN(5, 6, 7, 8, 9, 10)),
values AS (
SELECT * FROM cte as c_
GROUP BY time, minute, value
HAVING time = (SELECT time FROM
cte
WHERE time <= NOW() - (c_.minute||'minutes')::INTERVAL
ORDER BY time DESC LIMIT 1))

SELECT ARRAY(SELECT value FROM values
ORDER BY minute ASC)

Читать полностью…

SQL

привет всем! пожалуйста, подскажите способ решения проблемы. Имеется таблица table1 базы данных mysql, на текущий момент она выросла до 100 гигабайт, есть ли способ выполнить OPTIMIZE TABLE table1 если места на разделе осталось менее 20 гигабайт?

Читать полностью…

SQL

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

Читать полностью…

SQL

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

Читать полностью…

SQL

❗Какую базу данных выбрать?

👉 Узнаете на бесплатном открытом уроке «Лучшая база данных? Сравнение ClickHouse с популярными БД» от OTUS

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

🔹 Разберете его плюсы и минусы по сравнению с другими популярными решениями на основе конкретных требований

Вебинар будет полезен инженерам, аналитикам данных, DevOps-специалистам и тимлидам.

Занятие пройдёт 14 ноября в 20:00 мск в рамках курса «ClickHouse для инженеров и архитекторов БД». 

➡️ РЕГИСТРАЦИЯ
https://otus.pw/3rcf/

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН
9705100963. erid: LjN8KaeEM

Читать полностью…

SQL

футуристичные графики с помощью Python?

Читать полностью…

SQL

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

@sqlhub

Читать полностью…

SQL

🔥 Дайджест полезных материалов из мира 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

Читать полностью…

SQL

ну стандартно, ставьте комменты на код, пока не найдете именно ту строчку где проблема. у вас insert и update в одной транзакции, может из-за этого

Читать полностью…

SQL

же в эту субботу 11 ноября в Лектории «Газпрома» в рамках выставки "Россия" выступят ИТ-эксперты Газпромбанка:

В 16:00 — Андрей Анисимов с темой «Мотивация и развитие молодых DS-специалистов и аналитиков». Узнаем, какие навыки помогают Data Science специалистам добиваться успеха и как грамотно мотивировать сотрудников.

В 18:00 — Максим Морев с темой «Джуниор в ИТ — первые сложности на первой работе». Разберем 4 принципа, которые помогут начинающему ИТ-специалисту подняться по карьерной лестнице.

Встречаемся на ВДНХ в павильоне F «Газпром». Участие бесплатное, егистрируйтесь по ссылке — https://vk.cc/csgDvS

Реклама Банк ГПБ (АО), ИНН: 7744001497

Читать полностью…

SQL

Всем привет почему при попытке выполнить данную транзакцмю вылезает данная ошибка ?

Читать полностью…

SQL

Если вы закроете сессию в студии, то ваша таблица тоже перестанет быть видна

Читать полностью…

SQL

The difference between global and local temp tables isn't how long they exist, it's who can see them.
Local temp tables can only be seen by the session (spid) that created them. Global temp tables can be seen by everyone, but only while the session that created them is active.
If you are running it in a SQL Agent job, as soon as it completes it disappears. That's why you can't access it, because it is no longer there.

Читать полностью…

SQL

По логике временная таблица должна быть видна только из вызываемой сессии. Зачем ее видеть со стороны? Не проще ли перейти на постоянную таблицу с ключом @@spid в разрезе пользователя ?

Читать полностью…
Subscribe to a channel