DE – Telegram
523 subscribers
313 photos
81 videos
15 files
407 links
Data Engineering Technologies.
SQL, Python, Kafka, Spark, Pandas, Airflow, Clickhouse, Greenplum, Postgres, dbt, LLM agentic systems, AI, robots, drones etc.

Boost channel - https://news.1rj.ru/str/boost/data_engi
Download Telegram
😁10
SQLGlot - это SQL-парсер, транспилятор, оптимизатор и движок без зависимостей. Его можно использовать для форматирования SQL или перевода между 21 различным диалектом, таким как DuckDB, Presto / Trino, Spark / Databricks, Snowflake и BigQuery. Он предназначен для чтения различных SQL-вводов и вывода синтаксически и семантически корректного SQL в целевых диалектах.

Это очень универсальный общий SQL-парсер с надёжным набором тестов. Он также достаточно производительный, несмотря на то, что написан исключительно на Python.

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

Синтаксические ошибки подсвечиваются, а несовместимости диалектов могут выдавать предупреждения или рэйзить ошибки в зависимости от конфига. Однако SQLGlot не претендует на роль валидатора SQL, поэтому он может пропустить некоторые синтаксические ошибки.

Больше примеров по ссылке
Документация

#sql #parser #python
6❤‍🔥22
😁7
https://stamina.hynek.me/en/latest/tutorial.html

Нашел интересный проект от известного спикера и opensource деятеля Hynek Schlawack

Если вам надоело в очередной раз объяснять новичкам как правильно конфигурировать tenacity, то рекомендую присмотреться. Апи выглядит максимально просто и понятно, при этом есть интеграция со structlog и метриками для prometheus.

Можно использовать как декоратор (асинк поддерживается из коробки)
@stamina.retry(
on=httpx.HTTPError, attempts=3, timeout=dt.timedelta(seconds=10)
)
async def do_it_async(code: int) -> httpx.Response: ...


Можно как контекстный менеджер с возможностью получить доступ к счетчику попыток
for attempt in stamina.retry_context(on=httpx.HTTPError):
with attempt:
resp = httpx.get(f"https://httpbin.org/status/404")
resp.raise_for_status()


А вообще интересно, что для ретраев сейчас модно использовать?
4❤‍🔥2
🦆

DuckDB: Простота работы с CSV файлами

Традиционные базы данных требуют предварительно определённой схемы таблицы и не поддерживают работу с CSV файлами без предварительной обработки. DuckDB решает эту проблему, позволяя напрямую считывать файлы CSV. Это устраняет необходимость в явном создании таблицы и загрузке данных, значительно упрощая процесс работы с данными.

👩‍💻 Github

#db #postgres #duckdb
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥6
😁9
🧐
Небольшая подборка не очень популярных, но полезных библиотек для анализа данных

PySheets - предоставляет пользовательский интерфейс для работы с электронными таблицами на Python.
Используй Pandas, создавай диаграммы, импортируй таблицы Excel, анализируй данные и создавай отчеты.

py2wasm - преобразует программы и данные на Python в WebAssembly и запускает их в ~3 раза быстрее.

databonsai - библиотека на Python, которая использует LLM для задач очистки данных, таких как категоризация, преобразование и извлечение.

#py #python #dev
Please open Telegram to view this post
VIEW IN TELEGRAM
6❤‍🔥32
This media is not supported in your browser
VIEW IN TELEGRAM
Разработчики LLM 🤖 меряются силами, сравнивая свои лучшие модели на арене чат-ботов LMSYS.

Автор визуализации представил результаты таких соревнований.

#ai #llm
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥5
⭐️ StarRocks — БД для аналитики

StarRocks, проект Linux Foundation, — высокопроизводительная MPP OLAP БД нового поколения с быстрой обработкой данных для сложных аналитических кейсов, включая многомерную аналитику, аналитику в реальном времени и многое другое.

#starrocks #db #olap
Please open Telegram to view this post
VIEW IN TELEGRAM
7❤‍🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Джуны в ожидании оффера

#meme #junior #dev
😁11
Please open Telegram to view this post
VIEW IN TELEGRAM
😁8
😁8
Forwarded from DataEng
На прошлой неделе JetBrains анонсировали релиз их новой IDE для разработки на Rust: RustRover
Изначально это был плагин для их IDE, который в итоге перерос в полноценный продукт. Также ребята решили предоставить бесплатную лицензию на продукт для некоммерческой разработки для всех. Я попробовал и получил бесплатную лицензию на 1 год, возможно в будущем её можно будет продлить.

Впервые язык Rust я попробовал ещё в далёком 2015 году, когда вышла первая стабильная версия языка. С тех пор были неоднократные попытки с моей стороны написать что-нибудь существенное, но не было подходящих проектов под рукой. Сейчас же видно, что Rust плотно вошел в экосистему Python и внёс значительный вклад в её развитие. Наверняка вы слышали о таких проектах как Pydantic, Polars, PyO3 и т.д. Некоторые из них стали революционными для Python.

Python + Rust = ❤️

Также буквально на днях вышел вебинар от JetBrains, посвященный языку Rust и методам его изучения: Programming Education: Tailoring Tools and Techniques for Rust. Если вы вдруг задумались об изучении Rust, то рекомендую к просмотру. В описании к видео есть полезные ресурсы, которые помогут лучше усвоить сложные концепции языка такие, например, как Ownership.

Со своей стороны я попробую ещё раз оседлать эту лошадку и найти подходящий проект, чтобы не потерять мотивацию на пути изучения.

А какой у вас был опыт с Rust?
43❤‍🔥1
🙂 Разминка для мозга.

Какое число скрывается под машиной? Справишься с такой задачей? #task
Anonymous Quiz
5%
89
5%
69
4%
07
3%
17
68%
87
1%
99
2%
100
12%
🙈
❤‍🔥6
😁11
pg_cron - планировщик заданий на основе cron для PostgreSQL (10 и выше), который запускается внутри БД в качестве расширения. Он использует тот же синтаксис, что и обычный cron, но позволяет планировать команды PostgreSQL непосредственно из БД.

В pg_cron можно использовать "$" для указания последнего дня месяца.

Пример использования:

-- Vacuum every day at 3:00am (GMT)
SELECT cron.schedule('nightly-vacuum', '0 3 * * *', 'VACUUM');
schedule
----------
43

-- Stop scheduling jobs
SELECT cron.unschedule('nightly-vacuum' );
unschedule
------------
t

#cron #sql #postgres #postgresql
5
🙂Разминка для мозга

Что выведет код ниже?
Anonymous Quiz
5%
int
8%
TypeError
0%
str
2%
Toyota
17%
AttributeError
53%
300
15%
DataclassError
❤‍🔥5😁33
from dataclasses import dataclass


@dataclass
class Car:
mark: str
model: str = 'Supra'
colour: str = 'red'
max_speed: int = 300


print(Car().max_speed)

#py #python #task #quiz
8