—
npm install knex --save—
npm install pg --saveKnex.js спроектирован как гибкий и портативный инструмент.
В нем есть как традиционные колбеки, так и интерфейс промисов для более чистого управления потоком
async, потоковый интерфейс, полнофункциональные конструкторы запросов и схем, поддержка транзакций (с точками сохранения), пул соединений и стандартизированные ответы между различными клиентами.Knex можно использовать в качестве конструктора SQL-запросов как в Node.JS, так и в браузере, ограничиваясь возможностями WebSQL (например, невозможностью дропать таблицы или читать схемы). Составлять SQL-запросы в браузере для выполнения на сервере крайне не рекомендуется, так как это может стать причиной серьезных уязвимостей в безопасности.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤1🎄1
SpeedML - это библиотека Python, целью которой является ускорение процесса разработки конвейера машинного обучения.
Она объединяет часто используемые пакеты ML, такие как
• Github
Она объединяет часто используемые пакеты ML, такие как
Pandas, NumPy, Scikit-learn, XGBoost и Matplotlib. SpeedML также предоставляет функциональные возможности для автоматизированного EDA.pip install speedml
• Github
👍3
Gephi — один из наиболее функциональных и доступных инструментов для всех, кто изучает социальные сети и графы.
Пользователи могут видеть все параметры сети, использовать фильтры, настраивать визуализацию графа, сохранять и экспортировать файлы.
gephi.org/gephi-lite
Gephi Lite — это его облегчённая веб-версия. Пользователи могут видеть все параметры сети, использовать фильтры, настраивать визуализацию графа, сохранять и экспортировать файлы.
gephi.org/gephi-lite
👍3
#Вопросы_с_собеседования
❓Что делает оператор MERGE?
Ответ:
MERGE позволяет осуществить слияние данных одной таблицы с данными другой таблицы. При слиянии таблиц проверяется условие, и если оно истинно, то выполняется UPDATE, а если нет - INSERT. При этом изменять поля таблицы в секции UPDATE, по которым идет связывание двух таблиц, нельзя.
❓Что делает оператор MERGE?
Ответ:
👍8😱2
💬 Регулярные выражения
Язык SQL поддерживает работу с регулярными выражениями (regular expressions или RegEx). Это специальный язык, позволяющий достаточно точно определить шаблоны поиска в строке.
Для работы с регулярными выражениями используется оператор SIMILAR TO вместо LIKE.
Вернемся к нашей задаче — нужно выбрать пользователей, чье имя начинается на 'A' и 'B'. Чтобы решить ее, нужно применить такой шаблон:
Разберем примененный шаблон [AB]%. В квадратных скобках перечисляются допустимые символы, а далее следует знакомый нам символ %. Этот запрос вернет пользователей с именами Abigale, Andy, Brayan, и так далее.
Представим, что нам нужно найти пользователей, у которых username заканчивается любой буквой.
Это можно сделать таким шаблоном: %[abcdefghijklmnopqrstuvwxyz]. Согласитесь, такая запись неудобна для чтения и записи.
А что, если мы случайно пропустим какую-то букву? В квадратных скобках можно использовать символ - для перечисления. Если записать в квадратных скобках начальный символ, поставить "-" и указать конечный символ, то такой шаблон вернет любой символ из диапазона от начального до конечного.
Напишем запрос, который вернет всех пользователей у которых username заканчивается любой буквой, будет выглядеть так:
Точно так же можно работать и с русскими буквами: '%[а-я]%'. Такой запрос поможет найти пользователей, у которых в поле username есть русские буквы:
Такой запрос вернет всех пользователей, чей username заканчивается на любую цифру.
Комбинируя правила, мы можем создавать достаточно сложные шаблоны. Например, проверим, что в поле email введены корректные адреса электронной почты.
Корректная почта должна содержать адрес, который состоит из:
*️⃣ Имени с любым количеством любых символов — например, my_email
*️⃣ Символа @
*️⃣ Домена с любым количеством любых символов — например, gmail
*️⃣ Точки
*️⃣ Указания национальной зоны — например, com
Запрос на поиск корректных адресов будет таким:
Такой запрос выведет имена пользователей с корректными адресами электронной почты, однако нам интереснее найти ошибки. В этом случае частица NOT позволит найти строки, которые не соответствуют шаблону:
Теперь выберем все адреса электронной почты, у которых национальная зона состоит ровно из двух символов — например, ru, su, io и так далее. При этом исключим зоны, состоящие из трех и более символов — например, com.
Это можно сделать так: %.[a-z][a-z]. Но удобнее воспользоваться еще одним спецсимволом — подчеркиванием _.
Символ подчеркивания обозначает ровно один любой символ, необязательно букву. Наш запрос будет выглядеть так:
Чтобы вывести пользователей с адресами электронной почты оканчивающимися на 3 символа, нужно добавить еще одно подчерктивание в наш шаблон:
Мы рассмотрели наиболее полезные и часто используемые возможности регулярных выражений в SQL, но они ими не ограничиваются.
Язык SQL поддерживает работу с регулярными выражениями (regular expressions или RegEx). Это специальный язык, позволяющий достаточно точно определить шаблоны поиска в строке.
Для работы с регулярными выражениями используется оператор SIMILAR TO вместо LIKE.
Вернемся к нашей задаче — нужно выбрать пользователей, чье имя начинается на 'A' и 'B'. Чтобы решить ее, нужно применить такой шаблон:
SELECT * FROM users WHERE first_name SIMILAR TO '[AB]%';
Разберем примененный шаблон [AB]%. В квадратных скобках перечисляются допустимые символы, а далее следует знакомый нам символ %. Этот запрос вернет пользователей с именами Abigale, Andy, Brayan, и так далее.
Представим, что нам нужно найти пользователей, у которых username заканчивается любой буквой.
Это можно сделать таким шаблоном: %[abcdefghijklmnopqrstuvwxyz]. Согласитесь, такая запись неудобна для чтения и записи.
А что, если мы случайно пропустим какую-то букву? В квадратных скобках можно использовать символ - для перечисления. Если записать в квадратных скобках начальный символ, поставить "-" и указать конечный символ, то такой шаблон вернет любой символ из диапазона от начального до конечного.
Напишем запрос, который вернет всех пользователей у которых username заканчивается любой буквой, будет выглядеть так:
SELECT * FROM users WHERE username SIMILAR TO '%[a-z]';
Точно так же можно работать и с русскими буквами: '%[а-я]%'. Такой запрос поможет найти пользователей, у которых в поле username есть русские буквы:
SELECT * FROM users WHERE username SIMILAR TO '%[а-я]%';
Чтобы выбрать все цифры, используем шаблон [0-9]:
SELECT * FROM users WHERE username SIMILAR TO '%[0-9]';Такой запрос вернет всех пользователей, чей username заканчивается на любую цифру.
Комбинируя правила, мы можем создавать достаточно сложные шаблоны. Например, проверим, что в поле email введены корректные адреса электронной почты.
Корректная почта должна содержать адрес, который состоит из:
Запрос на поиск корректных адресов будет таким:
SELECT username, email FROM users WHERE email SIMILAR TO '%@%.%';Такой запрос выведет имена пользователей с корректными адресами электронной почты, однако нам интереснее найти ошибки. В этом случае частица NOT позволит найти строки, которые не соответствуют шаблону:
SELECT username, email FROM users WHERE email NOT SIMILAR TO '%@%.%';Теперь выберем все адреса электронной почты, у которых национальная зона состоит ровно из двух символов — например, ru, su, io и так далее. При этом исключим зоны, состоящие из трех и более символов — например, com.
Это можно сделать так: %.[a-z][a-z]. Но удобнее воспользоваться еще одним спецсимволом — подчеркиванием _.
Символ подчеркивания обозначает ровно один любой символ, необязательно букву. Наш запрос будет выглядеть так:
SELECT username, email FROM users WHERE email SIMILAR TO '%.__';Чтобы вывести пользователей с адресами электронной почты оканчивающимися на 3 символа, нужно добавить еще одно подчерктивание в наш шаблон:
SELECT
username,
email
FROM users WHERE email SIMILAR TO '%.___';Мы рассмотрели наиболее полезные и часто используемые возможности регулярных выражений в SQL, но они ими не ограничиваются.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤3
This media is not supported in your browser
VIEW IN TELEGRAM
Поэтому, если вы готовитесь к собеседованию по SQL, решите эти 11 РЕАЛЬНЫХ вопросов для собеседования Google по SQL.
https://datalemur.com/blog/google-sql-interview-questions
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
MySQL ускорение SQL запросов
Ускорение SQL запросов в MySQL может быть достигнуто следующими способами:
1. Индексы: использование индексов может ускорить поиск и сортировку данных в ваших таблицах.
2. Оптимизация структуры таблиц: важно убедиться, что структура таблиц оптимизирована для выполнения запросов.
3. Оптимизация запросов: проверьте ваши запросы на оптимизацию, убедитесь, что вы используете правильные операторы JOIN и индексы для улучшения производительности.
4. Кэширование данных: использование кэширования данных может ускорить выполнение повторяющихся запросов.
5. Использование представлений: использование представлений может упростить запросы и улучшить их читаемость.
6. Ограничение размера выборки: используйте оператор LIMIT, чтобы выбрать только необходимые данные, это уменьшит время выполнения запроса.
7. Минимизация дубликатов данных: дубликаты данных могут увеличить размер таблицы и уменьшить производительность запросов. Удаляйте дубликаты данных или используйте оптимизированные структуры данных, такие как нормализованные таблицы.
8. Оптимизация памяти: оптимизируйте использование памяти вашей базы данных, чтобы уменьшить время обработки запросов.
9. Мониторинг производительности: важен для определения причин низкой производительности и для поиска способов ее улучшения. Он включает в себя слежение за показателями, такими как загруженность процессора, использование памяти, время ответа на запросы и т. д.
10. Использование индексов: используйте индексы, чтобы ускорить поиск данных в таблице. Обеспечьте, чтобы ваши индексы были актуальными и эффективными.
11. Оптимизация объединений: используйте оптимальные методы объединения, такие как внутреннее или внешнее объединение, чтобы ускорить выполнение запросов.
12. Использование хранимых процедур: хранимые процедуры могут ускорить выполнение повторяющихся запросов.
13. Использование кеширования: используйте кеширование, чтобы ускорить выполнение запросов и уменьшить нагрузку на базу данных.
14. Оптимизация конфигурации сервера: оптимизируйте конфигурацию сервера, такую как количество памяти и число потоков, чтобы улучшить производительность базы данных.
15. Оптимизация структуры таблиц: периодически оценивайте структуру таблиц и выполняйте необходимые изменения, чтобы улучшить производительность.
16. Оптимизация запросов: проверяйте и оптимизируйте свои SQL-запросы, чтобы улучшить их производительность.
17. Ограничение данных: ограничивайте количество возвращаемых данных, чтобы улучшить производительность.
18. Мониторинг производительности: мониторинг производительности поможет вам выявить проблемы и найти способы их устранения.
19. Обновление ПО: регулярно обновляйте ПО, используемое вашей базой данных, чтобы воспользоваться последними улучшениями производительности.
20. Использование индексов: правильное использование индексов может существенно улучшить производительность SQL-запросов.
Обратите внимание, что нет единого решения для улучшения производительности SQL-запросов, и каждый случай может быть уникален. Важно понимать причины низкой производительности и применять соответствующие техники для улучшения.
Ускорение SQL запросов в MySQL может быть достигнуто следующими способами:
1. Индексы: использование индексов может ускорить поиск и сортировку данных в ваших таблицах.
2. Оптимизация структуры таблиц: важно убедиться, что структура таблиц оптимизирована для выполнения запросов.
3. Оптимизация запросов: проверьте ваши запросы на оптимизацию, убедитесь, что вы используете правильные операторы JOIN и индексы для улучшения производительности.
4. Кэширование данных: использование кэширования данных может ускорить выполнение повторяющихся запросов.
5. Использование представлений: использование представлений может упростить запросы и улучшить их читаемость.
6. Ограничение размера выборки: используйте оператор LIMIT, чтобы выбрать только необходимые данные, это уменьшит время выполнения запроса.
7. Минимизация дубликатов данных: дубликаты данных могут увеличить размер таблицы и уменьшить производительность запросов. Удаляйте дубликаты данных или используйте оптимизированные структуры данных, такие как нормализованные таблицы.
8. Оптимизация памяти: оптимизируйте использование памяти вашей базы данных, чтобы уменьшить время обработки запросов.
9. Мониторинг производительности: важен для определения причин низкой производительности и для поиска способов ее улучшения. Он включает в себя слежение за показателями, такими как загруженность процессора, использование памяти, время ответа на запросы и т. д.
10. Использование индексов: используйте индексы, чтобы ускорить поиск данных в таблице. Обеспечьте, чтобы ваши индексы были актуальными и эффективными.
11. Оптимизация объединений: используйте оптимальные методы объединения, такие как внутреннее или внешнее объединение, чтобы ускорить выполнение запросов.
12. Использование хранимых процедур: хранимые процедуры могут ускорить выполнение повторяющихся запросов.
13. Использование кеширования: используйте кеширование, чтобы ускорить выполнение запросов и уменьшить нагрузку на базу данных.
14. Оптимизация конфигурации сервера: оптимизируйте конфигурацию сервера, такую как количество памяти и число потоков, чтобы улучшить производительность базы данных.
15. Оптимизация структуры таблиц: периодически оценивайте структуру таблиц и выполняйте необходимые изменения, чтобы улучшить производительность.
16. Оптимизация запросов: проверяйте и оптимизируйте свои SQL-запросы, чтобы улучшить их производительность.
17. Ограничение данных: ограничивайте количество возвращаемых данных, чтобы улучшить производительность.
18. Мониторинг производительности: мониторинг производительности поможет вам выявить проблемы и найти способы их устранения.
19. Обновление ПО: регулярно обновляйте ПО, используемое вашей базой данных, чтобы воспользоваться последними улучшениями производительности.
20. Использование индексов: правильное использование индексов может существенно улучшить производительность SQL-запросов.
Обратите внимание, что нет единого решения для улучшения производительности SQL-запросов, и каждый случай может быть уникален. Важно понимать причины низкой производительности и применять соответствующие техники для улучшения.
👍4
Все перечисленные ключевые слова относятся к DML (Data Manipulation Language): INSERT, CREATE, DELETE, UPDATE.
Anonymous Quiz
51%
Да
40%
Нет
9%
Узнать ответ
👍6🎄2
Dolt — первая в мире база данных SQL с контролем версий.
Для достижения этой цели Dolt использует Prolly Tree-хранилище схемы и данных, представленных в виде графа. Таким образом достигается контроль версий базы данных на уровне хранилища.
Контроль версий БД в стиле Git предоставляет ряд полезных фичей:
— Мгновенный откат к любому предыдущему состоянию
— Полный журнал аудита с возможностью запроса, содержащий все данные с момента их создания.
— Несколько развивающихся ветвей данных
— Возможность объединения ветвей данных
— Быстрая синхронизация с удаленными версиями для резервного копирования или децентрализованной совместной работы.
— Запрашиваемые различия (т. е. различия) между версиями
Механизм хранения Dolt построен на графе коммитов Prolly Trees в стиле Git. Схема таблицы и данные хранятся в Prolly Trees. Корни этих деревьев Prolly вместе с другими метаданными хранятся в графе коммитов, чтобы обеспечить контроль версий в стиле Git.
Подробнее можно почитать на официальной страничке
Github
Для достижения этой цели Dolt использует Prolly Tree-хранилище схемы и данных, представленных в виде графа. Таким образом достигается контроль версий базы данных на уровне хранилища.
Контроль версий БД в стиле Git предоставляет ряд полезных фичей:
— Мгновенный откат к любому предыдущему состоянию
— Полный журнал аудита с возможностью запроса, содержащий все данные с момента их создания.
— Несколько развивающихся ветвей данных
— Возможность объединения ветвей данных
— Быстрая синхронизация с удаленными версиями для резервного копирования или децентрализованной совместной работы.
— Запрашиваемые различия (т. е. различия) между версиями
Механизм хранения Dolt построен на графе коммитов Prolly Trees в стиле Git. Схема таблицы и данные хранятся в Prolly Trees. Корни этих деревьев Prolly вместе с другими метаданными хранятся в графе коммитов, чтобы обеспечить контроль версий в стиле Git.
Подробнее можно почитать на официальной страничке
Github
👍5❤1
Какой запрос выбирает все записи из таблицы person, в которой значения поля name начинаются с An? (MySQL)
Anonymous Quiz
4%
SELECT * FROM person WHERE name LIKE 'An//';
80%
SELECT * FROM person WHERE name LIKE 'An%';
5%
SELECT * FROM person WHERE name LIKE 'An';
9%
SELECT * FROM person WHERE name 'An%';
2%
Посмотреть ответ
👍12
К какому результату приведет выполнение запроса DROP DATABASE Addresses?
Anonymous Quiz
16%
Удаление таблицы «Addresses» из текущей базы данных
77%
Полное удаление базы данных «Addresses»
3%
Блокировка на внесение изменений в базу данных «Addresses»
3%
Посмотреть ответ
👍13
Что вернет запрос?
SELECT Customers.*, Orders.* FROM Customers LEFT JOIN Orders ON Customers.CustomerID = Orders.CustomerID ORDER BY Customers.CustomerName;
SELECT Customers.*, Orders.* FROM Customers LEFT JOIN Orders ON Customers.CustomerID = Orders.CustomerID ORDER BY Customers.CustomerName;
Anonymous Quiz
16%
Будут выбраны все клиенты и все заказы
63%
Будут выбраны все клиенты и любые заказы, которые они могут иметь
14%
Будут выбраны все заказы и любые клиенты, которые их опратили
7%
Посмотреть ответ
👍6
StarRocks — высокопроизводительная БД для аналитики
StarRocks, проект Linux Foundation, — это база данных MPP OLAP нового поколения с быстрой обработкой данных для сложных аналитических кейсов, включая многомерную аналитику, аналитику в реальном времени и не только.
Быстрый старт с помощью Docker:
🖥 GitHub
📔 Доки
StarRocks, проект Linux Foundation, — это база данных MPP OLAP нового поколения с быстрой обработкой данных для сложных аналитических кейсов, включая многомерную аналитику, аналитику в реальном времени и не только.
Быстрый старт с помощью Docker:
docker run -p 9030:9030 -p 8030:8030 -p 8040:8040 -itd \
--name quickstart starrocks/allin1-ubuntu
📔 Доки
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3