Преобразование файлов CSV в базу данных SQLite
Конвертируйте файлы CSV в базу данных SQLite. Просмотр и публикация базы данных SQLite с помощью Datasette.
Базовое использование:
В результате будет создана новая база данных SQLite под названием mydatabase.db с одной таблицей myfile, содержащей содержимое CSV.
Вы можете предоставить несколько CSV-файлов:
База данных bundle.db будет содержать две таблицы, one и two.
Это означает, что вы можете использовать wildcards:
Если вы укажете путь к одной или нескольким директориям, скрипт будет рекурсивно искать CSV-файлы в этих директориях и создавать таблицы для каждого из них.
https://github.com/simonw/csvs-to-sqlite
#db
👉 @database_info
Конвертируйте файлы CSV в базу данных SQLite. Просмотр и публикация базы данных SQLite с помощью Datasette.
Базовое использование:
csvs-to-sqlite myfile.csv mydatabase.dbВ результате будет создана новая база данных SQLite под названием mydatabase.db с одной таблицей myfile, содержащей содержимое CSV.
Вы можете предоставить несколько CSV-файлов:
csvs-to-sqlite one.csv two.csv bundle.dbБаза данных bundle.db будет содержать две таблицы, one и two.
Это означает, что вы можете использовать wildcards:
csvs-to-sqlite ~/Downloads/*.csv my-downloads.dbЕсли вы укажете путь к одной или нескольким директориям, скрипт будет рекурсивно искать CSV-файлы в этих директориях и создавать таблицы для каждого из них.
csvs-to-sqlite ~/path/to/directory all-my-csvs.dbhttps://github.com/simonw/csvs-to-sqlite
#db
👉 @database_info
GitHub
GitHub - simonw/csvs-to-sqlite: Convert CSV files into a SQLite database
Convert CSV files into a SQLite database. Contribute to simonw/csvs-to-sqlite development by creating an account on GitHub.
👍3🎉1
SQL Server 2019
Файловые группы в SQL Server 2019
FILESTREAM в SQL Server 2019
Оптимизированные под память файловые группы в SQL Server 2019
источник
#db
👉 @database_info
Файловые группы в SQL Server 2019
FILESTREAM в SQL Server 2019
Оптимизированные под память файловые группы в SQL Server 2019
источник
#db
👉 @database_info
👍3
Dbchaos
Проведите стресс-тестирование базы данных с помощью заранее заданных запросов. Генерируйте исходные данные и события статически или с помощью GPT.
https://github.com/adaptive-scale/dbchaos
#db
👉 @database_info
Проведите стресс-тестирование базы данных с помощью заранее заданных запросов. Генерируйте исходные данные и события статически или с помощью GPT.
https://github.com/adaptive-scale/dbchaos
#db
👉 @database_info
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
DBDiagram
Бесплатный, простой инструмент для построения ER-диаграмм путем простого написания кода.
Предназначен для разработчиков и аналитиков данных.
https://dbdiagram.io/home
👉 @database_info
Бесплатный, простой инструмент для построения ER-диаграмм путем простого написания кода.
Предназначен для разработчиков и аналитиков данных.
https://dbdiagram.io/home
👉 @database_info
👍9👏2
7 обязательных стратегий для масштабирования вашей базы данных.
1 - Индексация:
Проверьте шаблоны запросов вашего приложения и создайте подходящие индексы.
2 - Материализованные представления:
Предварительно вычислите результаты сложных запросов и сохраните их для быстрого доступа.
3 - Денормализация:
Уменьшите количество сложных соединений (join), чтобы улучшить производительность запросов.
4 - Вертикальное масштабирование:
Увеличьте мощность вашего сервера базы данных, добавив больше ЦП, оперативной памяти или хранилища.
5 - Кэширование:
Сохраните часто запрашиваемые данные в более быстром слое хранения, чтобы снизить нагрузку на базу данных.
6 - Репликация:
Создайте реплики вашей основной базы данных на разных серверах для масштабирования чтений.
7 - Шардинг:
Разделите таблицы базы данных на более мелкие части и распределите их по серверам. Используется для масштабирования как записей, так и чтений.
#db
👉 @database_info
1 - Индексация:
Проверьте шаблоны запросов вашего приложения и создайте подходящие индексы.
2 - Материализованные представления:
Предварительно вычислите результаты сложных запросов и сохраните их для быстрого доступа.
3 - Денормализация:
Уменьшите количество сложных соединений (join), чтобы улучшить производительность запросов.
4 - Вертикальное масштабирование:
Увеличьте мощность вашего сервера базы данных, добавив больше ЦП, оперативной памяти или хранилища.
5 - Кэширование:
Сохраните часто запрашиваемые данные в более быстром слое хранения, чтобы снизить нагрузку на базу данных.
6 - Репликация:
Создайте реплики вашей основной базы данных на разных серверах для масштабирования чтений.
7 - Шардинг:
Разделите таблицы базы данных на более мелкие части и распределите их по серверам. Используется для масштабирования как записей, так и чтений.
#db
👉 @database_info
🎉5👍4❤1
Antares SQL Client
Современный, быстрый и ориентированный на продуктивность SQL-клиент с акцентом на пользовательский опыт (UX).
Текущие ключевые функции:
- Подключение к нескольким базам данных одновременно.
- Управление базами данных (добавление/редактирование/удаление).
- Полное управление таблицами, включая индексы и внешние ключи.
- Управление представлениями, триггерами, хранимыми процедурами, функциями и планировщиками (добавление/редактирование/удаление).
- Современная и удобная система вкладок; держите открытыми все необходимые вкладки в вашем рабочем пространстве.
- Заполнение тестовых данных в таблицах для генерации большого объема данных.
- Подсказки и автозаполнение запросов.
- История запросов: поиск по последним 1000 запросам.
- Сохранение запросов, заметок или задач.
- Поддержка SSH-туннелей.
- Режим ручного выполнения транзакций.
- Импорт и экспорт дампов баз данных.
- Настраиваемые горячие клавиши.
- Темная и светлая тема.
- Темы редактора.
https://github.com/antares-sql/antares
#db
👉 @database_info
Современный, быстрый и ориентированный на продуктивность SQL-клиент с акцентом на пользовательский опыт (UX).
Текущие ключевые функции:
- Подключение к нескольким базам данных одновременно.
- Управление базами данных (добавление/редактирование/удаление).
- Полное управление таблицами, включая индексы и внешние ключи.
- Управление представлениями, триггерами, хранимыми процедурами, функциями и планировщиками (добавление/редактирование/удаление).
- Современная и удобная система вкладок; держите открытыми все необходимые вкладки в вашем рабочем пространстве.
- Заполнение тестовых данных в таблицах для генерации большого объема данных.
- Подсказки и автозаполнение запросов.
- История запросов: поиск по последним 1000 запросам.
- Сохранение запросов, заметок или задач.
- Поддержка SSH-туннелей.
- Режим ручного выполнения транзакций.
- Импорт и экспорт дампов баз данных.
- Настраиваемые горячие клавиши.
- Темная и светлая тема.
- Темы редактора.
https://github.com/antares-sql/antares
#db
👉 @database_info
👍3
Anyquer
Это CLI-инструмент для выполнения SQL-запросов к любому источнику данных, будь то файл, API, логи или локальное приложение. Ознакомьтесь с интеграциями, чтобы узнать обо всех возможностях.
Поддерживает запросы JSON, CSV, Parquet, Airtable, Google Sheets, баз данных Notion, Gmail и многого другого. Он использует SQLite под капотом и может выступать в качестве сервера MySQL, чтобы вы могли подключать инструменты BI.
https://anyquery.dev/
#db
👉 @database_info
Это CLI-инструмент для выполнения SQL-запросов к любому источнику данных, будь то файл, API, логи или локальное приложение. Ознакомьтесь с интеграциями, чтобы узнать обо всех возможностях.
Поддерживает запросы JSON, CSV, Parquet, Airtable, Google Sheets, баз данных Notion, Gmail и многого другого. Он использует SQLite под капотом и может выступать в качестве сервера MySQL, чтобы вы могли подключать инструменты BI.
https://anyquery.dev/
#db
👉 @database_info
👍5❤1👎1
И/или
Условия в
К примеру, у нас есть табличка, в которой записаны данные о 4 самых продаваемых музыкальных альбомах всех времён. Давайте выведем только те, жанром которых является рок, а продажи были меньше, чем 50 миллионов копий.
#db
👉 @database_info
Условия в
WHERE могут быть написаны с использованием логических операторов (AND/OR) и математические операторы сравнения (=, <, >, <=, >=, <>).К примеру, у нас есть табличка, в которой записаны данные о 4 самых продаваемых музыкальных альбомах всех времён. Давайте выведем только те, жанром которых является рок, а продажи были меньше, чем 50 миллионов копий.
#db
👉 @database_info
👍4
Instant - клиентская база данных в режиме реального времени
Instant предназначен для создания приложений с поддержкой работы в режиме реального времени и офлайн. Мы упрощаем создание совместных продуктов, таких как Notion или Figma.
Code Examples https://www.instantdb.com/examples
https://github.com/instantdb/instant
#db
👉 @database_info
Instant предназначен для создания приложений с поддержкой работы в режиме реального времени и офлайн. Мы упрощаем создание совместных продуктов, таких как Notion или Figma.
Code Examples https://www.instantdb.com/examples
https://github.com/instantdb/instant
#db
👉 @database_info
👍1🤮1
Как выполнять периодические обновления данных в PostgreSQL?
Для выполнения периодических обновлений данных в PostgreSQL можно использовать несколько подходов, в зависимости от требований к частоте обновлений и архитектуры системы. Вот основные методы:
1. CRON и SQL скрипты
- CRON (или аналогичный планировщик задач) — это системный планировщик задач, который может запускать SQL-скрипты в определенное время или с определенной периодичностью.
- Вы создаете SQL-скрипт, который выполняет необходимые обновления данных, и настраиваете CRON для его запуска.
- Пример команды в CRON:
Этот пример выполняет задачу каждую минуту.
2. pg_cron
-
- Пример:
Это задание выполняет функцию каждый час.
3. pgAgent
-
- Пример задания:
4. Встроенные средства PostgreSQL
- Если задача достаточно простая, и вы хотите обойтись без внешних инструментов, можно использовать механизм LISTEN/NOTIFY или bgworker (бэкграундные воркеры).
- LISTEN/NOTIFY: используется для уведомления процессов о событиях в базе данных. Рабочие процессы могут запускаться при получении уведомления.
- bgworker: позволяет создавать фоновый процесс, который будет периодически выполнять необходимые задачи.
5. Сервисные задачи на стороне приложения
- Если ваше приложение подключается к базе данных PostgreSQL, оно может содержать задачи, которые будут запускать обновления данных через определенные промежутки времени.
- Это подход особенно удобен, если вы хотите, чтобы приложение контролировало выполнение обновлений, а также легко интегрировало бизнес-логику.
6. Использование логических репликаций и триггеров
- В некоторых случаях, вместо периодических обновлений, может быть лучше настроить триггеры или использовать логическую репликацию для обработки изменений в данных.
7. Materialized Views
- Если вам нужно обновлять агрегированные или сложные запросы, можно использовать материализованные представления с автоматическим обновлением.
- Вы можете создать материализованное представление и настроить его автоматическое обновление через CRON или pg_cron:
Заключение
Выбор метода зависит от конкретных требований и доступных инструментов. Если вам нужно периодически выполнять задачи непосредственно в базе данных и с минимальными усилиями,
#db
👉 @database_info
Для выполнения периодических обновлений данных в PostgreSQL можно использовать несколько подходов, в зависимости от требований к частоте обновлений и архитектуры системы. Вот основные методы:
1. CRON и SQL скрипты
- CRON (или аналогичный планировщик задач) — это системный планировщик задач, который может запускать SQL-скрипты в определенное время или с определенной периодичностью.
- Вы создаете SQL-скрипт, который выполняет необходимые обновления данных, и настраиваете CRON для его запуска.
- Пример команды в CRON:
* * * * * psql -U user -d database -c "CALL your_update_function();"
Этот пример выполняет задачу каждую минуту.
2. pg_cron
-
pg_cron — это расширение для PostgreSQL, которое позволяет планировать задания непосредственно из базы данных, используя SQL-синтаксис для задания расписания.- Пример:
SELECT cron.schedule('0 * * * *', $$CALL your_update_function();$$);
Это задание выполняет функцию каждый час.
3. pgAgent
-
pgAgent — это более сложный планировщик задач, который интегрируется с PostgreSQL. Он позволяет создавать и управлять заданиями через интерфейс PgAdmin или SQL-команды.- Пример задания:
CREATE JOB update_job
STEP 1
WHEN '0 * * * *'
EXECUTE PROCEDURE your_update_function();
4. Встроенные средства PostgreSQL
- Если задача достаточно простая, и вы хотите обойтись без внешних инструментов, можно использовать механизм LISTEN/NOTIFY или bgworker (бэкграундные воркеры).
- LISTEN/NOTIFY: используется для уведомления процессов о событиях в базе данных. Рабочие процессы могут запускаться при получении уведомления.
- bgworker: позволяет создавать фоновый процесс, который будет периодически выполнять необходимые задачи.
5. Сервисные задачи на стороне приложения
- Если ваше приложение подключается к базе данных PostgreSQL, оно может содержать задачи, которые будут запускать обновления данных через определенные промежутки времени.
- Это подход особенно удобен, если вы хотите, чтобы приложение контролировало выполнение обновлений, а также легко интегрировало бизнес-логику.
6. Использование логических репликаций и триггеров
- В некоторых случаях, вместо периодических обновлений, может быть лучше настроить триггеры или использовать логическую репликацию для обработки изменений в данных.
7. Materialized Views
- Если вам нужно обновлять агрегированные или сложные запросы, можно использовать материализованные представления с автоматическим обновлением.
- Вы можете создать материализованное представление и настроить его автоматическое обновление через CRON или pg_cron:
REFRESH MATERIALIZED VIEW CONCURRENTLY your_view;
Заключение
Выбор метода зависит от конкретных требований и доступных инструментов. Если вам нужно периодически выполнять задачи непосредственно в базе данных и с минимальными усилиями,
pg_cron и pgAgent — отличные варианты. Если хотите контролировать задачи с уровня операционной системы, то CRON или системные задачи на стороне приложения будут лучшим решением.#db
👉 @database_info
👍6
Детализированные стратегии кэширования динамических запросов
Сегодня я хотел бы поговорить о стратегиях кэширования для совокупных запросов к часто обновляемым данным, основанным на времени. На предыдущем месте работы я провел немало «мозговых циклов» и с удовольствием поделюсь некоторыми своими находками.
https://jensrantil.github.io/posts/fast-aggregate-queries-on-dynamic-data/
#db
👉 @database_info
Сегодня я хотел бы поговорить о стратегиях кэширования для совокупных запросов к часто обновляемым данным, основанным на времени. На предыдущем месте работы я провел немало «мозговых циклов» и с удовольствием поделюсь некоторыми своими находками.
https://jensrantil.github.io/posts/fast-aggregate-queries-on-dynamic-data/
#db
👉 @database_info
👍3
SQLFlow
SQLFlow — простой инструмент для визуализации SQL-запросов и отображения зависимостей. Позволяет отслеживать data lineage-происхождение и трансформации в данных при исполнении запросов.
https://sqlflow.gudusoft.com/
#db
👉 @database_info
SQLFlow — простой инструмент для визуализации SQL-запросов и отображения зависимостей. Позволяет отслеживать data lineage-происхождение и трансформации в данных при исполнении запросов.
https://sqlflow.gudusoft.com/
#db
👉 @database_info
👍10
Как найти дубликат записи? Опишите процесс для дублирования записей с одним и несколькими полями.
Дублирование записей с одним полем:
Дублирование записей с несколькими полями:
#db
👉 @database_info
Дублирование записей с одним полем:
SELECT name, COUNT(email)
FROM users
GROUP BY email
HAVING COUNT(email) > 1Дублирование записей с несколькими полями:
SELECT name, email, COUNT(*)
FROM users
GROUP BY name, email
HAVING COUNT(*) > 1 #db
👉 @database_info
👍10🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
Как выполняются SQL-запросы👨💻
Порядок выполнения SQL запроса определяет последовательность выполнения различных частей запроса SQL. Этот порядок важен, потому что он определяет, как данные фильтруются, группируются и упорядочиваются.
Вот упрощенное объяснение порядка выполнения SQL:
• 𝐅𝐑𝐎𝐌/𝐉𝐎𝐈𝐍: Оператор FROM указывает таблицы, из которых будут извлечены данные. Клауза JOIN может использоваться для объединения данных из нескольких таблиц.
• 𝐖𝐇𝐄𝐑𝐄: Оператор WHERE используется для фильтрации данных на основе определенных условий.
• 𝐆𝐑𝐎𝐔𝐏 𝐁𝐘: Оператор GROUP BY используется для группировки данных по одной или нескольким колонкам.
• 𝐇𝐀𝐕𝐈𝐍𝐆: Оператор HAVING используется для фильтрации сгруппированных данных на основе определенных условий.
• 𝐒𝐄𝐋𝐄𝐂𝐓: Оператор SELECT указывает столбцы, которые будут возвращены в наборе результатов.
• 𝐃𝐈𝐒𝐓𝐈𝐍𝐂𝐓: Ключевое слово DISTINCT может использоваться для обеспечения возврата только уникальных строк в наборе результатов.
• 𝐎𝐑𝐃𝐄𝐑 𝐁𝐘: Оператор ORDER BY используется для сортировки набора результатов по возрастанию или убыванию.
• 𝐋𝐈𝐌𝐈𝐓: Оператор LIMIT может использоваться для ограничения количества возвращаемых строк.
#db
👉 @database_info
Порядок выполнения SQL запроса определяет последовательность выполнения различных частей запроса SQL. Этот порядок важен, потому что он определяет, как данные фильтруются, группируются и упорядочиваются.
Вот упрощенное объяснение порядка выполнения SQL:
• 𝐅𝐑𝐎𝐌/𝐉𝐎𝐈𝐍: Оператор FROM указывает таблицы, из которых будут извлечены данные. Клауза JOIN может использоваться для объединения данных из нескольких таблиц.
• 𝐖𝐇𝐄𝐑𝐄: Оператор WHERE используется для фильтрации данных на основе определенных условий.
• 𝐆𝐑𝐎𝐔𝐏 𝐁𝐘: Оператор GROUP BY используется для группировки данных по одной или нескольким колонкам.
• 𝐇𝐀𝐕𝐈𝐍𝐆: Оператор HAVING используется для фильтрации сгруппированных данных на основе определенных условий.
• 𝐒𝐄𝐋𝐄𝐂𝐓: Оператор SELECT указывает столбцы, которые будут возвращены в наборе результатов.
• 𝐃𝐈𝐒𝐓𝐈𝐍𝐂𝐓: Ключевое слово DISTINCT может использоваться для обеспечения возврата только уникальных строк в наборе результатов.
• 𝐎𝐑𝐃𝐄𝐑 𝐁𝐘: Оператор ORDER BY используется для сортировки набора результатов по возрастанию или убыванию.
• 𝐋𝐈𝐌𝐈𝐓: Оператор LIMIT может использоваться для ограничения количества возвращаемых строк.
#db
👉 @database_info
👍14
Руководство по SQL для интервью
Язык структурированных запросов, или SQL, — это стандартный язык баз данных, используемый для создания, поддержки, удаления, обновления и извлечения данных из реляционных баз данных, таких как MySQL, Oracle, SQL Server, PostgreSQL и других.
https://dev.to/madgan95/sql-complete-guide-for-interview-1jdm
#db
👉 @database_info
Язык структурированных запросов, или SQL, — это стандартный язык баз данных, используемый для создания, поддержки, удаления, обновления и извлечения данных из реляционных баз данных, таких как MySQL, Oracle, SQL Server, PostgreSQL и других.
https://dev.to/madgan95/sql-complete-guide-for-interview-1jdm
#db
👉 @database_info
👍4❤1