Immudb – самая быстрая в мире неизменная база данных, построенная на модели нулевого доверия
Immudb - это база данных со встроенной криптографической проверкой. Она отслеживает изменения в конфиденциальных данных, и целостность истории будет защищена клиентами без необходимости доверять самой базе. Она может работать как хранилище ключей и значений, так и/или как реляционная база данных (SQL).
#GitHub | #SQL #Data
@data_analysis_ml
Immudb - это база данных со встроенной криптографической проверкой. Она отслеживает изменения в конфиденциальных данных, и целостность истории будет защищена клиентами без необходимости доверять самой базе. Она может работать как хранилище ключей и значений, так и/или как реляционная база данных (SQL).
#GitHub | #SQL #Data
@data_analysis_ml
👍19
This media is not supported in your browser
VIEW IN TELEGRAM
Документирование помогает прояснить функциональность каждого запроса для других членов команды.
С помощью #dbt вы можете легко документировать свои запросы с помощью команды 𝐝𝐛𝐭 𝐝𝐨𝐜𝐬 𝐠𝐞𝐧𝐞𝐫𝐚𝐭𝐞.
📌 Что такое dbt
📌 Больше примеров
@data_analysis_ml
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤3🔥2👎1
Если вы хотите извлечь определенные компоненты #SQL-запроса для последующей работы с нмим на #Python, используйте sql_metdata.
Извлекает имена столбцов и таблиц, используемых в запросе. Автоматически выполняет разрешение псевдонимов столбцов, разрешение псевдонимов подзапросов, а также разрешение псевдонимов таблиц.
Также предоставляет полезные функции для нормализации
SQL-запросов.pip install sql-metadata▪Github
▪Docs
@data_analysis_ml
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤5🔥3
💡 Во время работы с таблицами в Spark возникают ситуации, когда для обработки данных набора встроенных функций оказывается недостаточно.
В этом случае можно выгрузить таблицу в
UDF (User Defined Functions) – это функции, которые не содержатся во встроенных модулях Spark и определяются самим пользователем. UDF позволяют расширить возможности обработки данных и могут содержать в себе комбинацию встроенных функций.
Использование
В приведенном примере кода мы определяем
📌 Подробнее о UDF
@data_analysis_ml
В этом случае можно выгрузить таблицу в
Pandas DataFrame и обрабатывать данные на Python привычными функциями. Однако, есть способ сделать это быстрее – UDF-функции в Spark.UDF (User Defined Functions) – это функции, которые не содержатся во встроенных модулях Spark и определяются самим пользователем. UDF позволяют расширить возможности обработки данных и могут содержать в себе комбинацию встроенных функций.
Использование
UDFS в PySpark может помочь упростить выполнение сложных запросов #SQL, за счет запуска сложных операций в одном вызове функции.В приведенном примере кода мы определяем
UDF с именем modify_name, эта функция приводит все имена в нашей таблице к верхнему регистру.📌 Подробнее о UDF
@data_analysis_ml
👍15❤5❤🔥2🔥2🥰1
Громоздкие #SQL запросы трудно читать, понимать и поддерживать.
С помощью dbt вы можете использовать функцию
ref, чтобы разбить длинный SQL-запросы на более мелкие компоненты, делая их более читаемыми и удобными для обслуживания.
-- models/total_order_amount.sql
SELECT
order_id,
customer_id,
SUM(order_amount) AS total_amount
FROM
raw_orders
GROUP BY order_id, customer_id
models/average_order_amount.sql:
-- models/average_order_amount.sql
SELECT
customer_id,
AVG(total_amount) AS avg_amount
FROM {{ ref('total_order_amount') }}
GROUP BY customer_id
▪ Github
@data_analysis_ml
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21❤7🔥5🍌1
Forwarded from Python/ django
⚡️ QueryTuner - open-source инструмент, который разбирает SQL-запрос и показывает, почему он может тормозить.
Подключаться к базе вообще не обязательно. Можно просто вставить SQL и получить диагностику.
Поддерживаются сразу 5 диалектов:
- PostgreSQL
- MySQL
- Oracle
- SQL Server
- SQLite
Внутри два уровня анализа.
1. Детерминированный heuristic engine
Он мгновенно ищет типичные anti-patterns:
-
- функции внутри
- leading wildcard в
- потенциально отсутствующие индексы
-
- другие проблемы производительности
Сейчас заявлено 12 правил, и для них не нужны ни LLM, ни внешний API.
2. Опциональный AI-слой
Можно подключить Qwen через Hugging Face или OpenAI. Тогда QueryTuner умеет:
- объяснять проблему человеческим языком;
- переписывать запрос;
- предлагать
- объяснять, зачем конкретный индекс нужен.
Особенно интересно, что можно передать ещё и
Например, для такого запроса:
Хороший проект для тех случаев, когда SQL уже работает, но хочется понять, почему через полгода он начнёт работать плохо.
#SQL #PostgreSQL #Database #OpenSource #DataEngineering
https://github.com/AutoShiftOps/querytuner
Подключаться к базе вообще не обязательно. Можно просто вставить SQL и получить диагностику.
Поддерживаются сразу 5 диалектов:
- PostgreSQL
- MySQL
- Oracle
- SQL Server
- SQLite
Внутри два уровня анализа.
1. Детерминированный heuristic engine
Он мгновенно ищет типичные anti-patterns:
-
SELECT *- функции внутри
WHERE- leading wildcard в
LIKE- потенциально отсутствующие индексы
-
ORDER BY без ограничения результата- другие проблемы производительности
Сейчас заявлено 12 правил, и для них не нужны ни LLM, ни внешний API.
2. Опциональный AI-слой
Можно подключить Qwen через Hugging Face или OpenAI. Тогда QueryTuner умеет:
- объяснять проблему человеческим языком;
- переписывать запрос;
- предлагать
CREATE INDEX;- объяснять, зачем конкретный индекс нужен.
Особенно интересно, что можно передать ещё и
CREATE TABLE DDL. Тогда рекомендации становятся schema-aware: инструмент видит реальные таблицы, колонки и существующие индексы. Например, для такого запроса:
SELECT *
FROM orders
WHERE YEAR(created_at) = 2026;
Хороший проект для тех случаев, когда SQL уже работает, но хочется понять, почему через полгода он начнёт работать плохо.
#SQL #PostgreSQL #Database #OpenSource #DataEngineering
https://github.com/AutoShiftOps/querytuner
👍6❤5