DE – Telegram
522 subscribers
312 photos
81 videos
15 files
405 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
Преобразование данных с помощью SQL и SCD2: строим эффективные BI-решения

Две ключевые концепции, которые пригодятся специалистам по бизнес-аналитике и базам данных: SQL (Structured Query Language) и SCD2 (Slowly Changing Dimension Type 2). Они играют неотъемлемую роль в обработке, хранении и анализе данных для оптимизации принятия решений на различных уровнях управления предприятием.

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

SCD2 Slowly Changing Dimension (медленно изменяющееся измерение) – это концепция хранения исторической информации об изменениях во времени. SCD2 является одним из подходов к реализации медленно изменяющихся измерений и используется в хранилищах данных и BI-системах для сохранения и анализа истории изменений во времени.

SCD2 позволяет сохранять несколько версий строки данных с учетом периода их действия. Главными особенностями подхода SCD2 являются наличие двух дополнительных столбцов в таблице: дата начала действия записи (effective date) и дата окончания действия записи (expiration date).

Использование SQL и SCD2 для создания эффективных BI-решений Сочетание SQL и принципов SCD2 делает возможным создание эффективных BI-решений для анализа исторических изменений на уровне отдельных записей данных. Благодаря применению SCD2, аналитики могут использовать SQL-запросы, чтобы находить тренды и изменения, связанные с различными временными периодами.

Овладение SQL и понимание принципов SCD2 являются неотъемлемыми инструментами для специалистов по бизнес-аналитике и базам данных. Вместе эти методологии позволяют эффективно управлять данными, отслеживать историческую динамику и принимать заслуженные основанные на данных решения.
👍3
Работа с большими данными, Hadoop, полезные ссылки:

🔵 DWH + Data Lake или что такое LakeHouse

🔵 Форматы файлов в больших данных: краткий ликбез

🔵 Допинг для аналитики: почему стоит обратить внимание на Apache Zeppelin

🔵 Apache Spark, объяснение ключевых терминов

🔵 Hadoop: что, где и зачем

🔵 Шпаргалка по командам Hadoop HDFS
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👍1
Arenadata DB (Greenplum), полезные ссылки:

🟣 Arenadata

🟣 3 главных достоинства и недостатка MPP-СУБД для хранения и аналитики Big Data на примере Greenplum

🟣 Greenplum vs PostgreSQL: 7 сходств и 3 отличия

🟣 Функции на языке запросов (SQL)

🟣 Как хранить большие данных в Greenplum: ТОП-15 рекомендаций
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👍1
pandas 2.0.0

Встречаем новый pandas с Apache Arrow, теперь очень быстро 🐼
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
😁1
Прокачаем SQL

SQL важен, потому что он является стандартом для управления базами данных и может использоваться с любой реляционной базой данных.

SQL позволяет проводить быстрый и эффективный поиск, извлечение, добавление, удаление и изменение данных в базе данных.

SQL также обеспечивает безопасность данных и сохранность целостности данных в базе данных.

Благодаря SQL упрощают и автоматизируют свою работу с базами данных.

Полезные ресурсы:

sql-ex.ru

sql-practice.com

mode.com/sql-tutorial

sqlbolt.com

datalemur.com

w3schools.com/sql
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1
TLDR Автор статьи рассказывает о том, как они перешли с ClickHouse на Apache Doris, потому что в Doris есть, а в ClickHouse отсутствуют следующие штуки:

1️⃣ Частичный апдейт колонок

2️⃣ Нет необходимости в построении гигантских плоских таблиц, соответственно уменьшается стоимость хранилища

3️⃣ Дешевле в поддержке
Please open Telegram to view this post
VIEW IN TELEGRAM
😁2
Бесплатные курсы и туториалы:

🎓 Python for Beginners: Free Course to Learn Python Basics


🔨 Python Projects: 30 Cool, Easy & Fun Python Projects with Source Code [2023]

🚸 DSA with Python: Intro to Data Structures & Algorithms

🌐 Learn Flask: Create fully-featured, interactive web applications with Flask

🔧 Flask Projects: 10+ Unique Flask Projects with Source Code – 2023

🔄 Learn REST API with Flask: Python REST APIs With Flask, Connexion, and SQLAlchemy

🧩 Learn Multithreading & Asyncio: Python Multithreading and Multiprocessing Tutorial

🚦 Gunicorn & Nginx with Flask: How To Serve Flask Applications with Gunicorn and Nginx on Ubuntu 18.04

TDD with Python & Flask: Modern Test-Driven Development in Python

📚 Basic RDBMS: Relational Database Management System

🐘 PostgreSQL with Python

🎁 Flask App with PostgreSQL: Build your first REST API with Flask and PostgreSQL

💻 Basics of Bash: Basics of BASH for Beginners

🐳 Basics of Docker: A Step by Step Guide on Docker for Beginners

🚢 Deploy Flask App with Docker: How To Build and Deploy a Flask Application Using Docker on Ubuntu 20.04

🌟 Learn Git & GitHub
👍5
Аналог Литкода от Яндекс.

https://coderun.yandex.ru/

👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣3
Эволюция моей оркестрации:

🥉 jupyter ноутбук
Запускаешь парсинг, пока на созвоне, смотришь кинчик или спишь.

Улучшения для покемона:
▪️Сохранять сразу в базу, а не локально
▪️Хостить жупутер на сервере, чтобы хоть с телефона можно было триггернуть задачку

🥈 Airflow
Крон на максималках, но нормально его задеплоить без полпинты нельзя. Проект древний, документации много и плохо. Если в вашей конторе он уже есть - кайф. Если вам нужно все это запустить с нуля — добро пожаловать в девопс.

🥇 Prefect
Тоже хрен разберешься, как нормально его задеплоить, ведь качество документации и тут тоже заряжено на генерацию лидов в enterprise вершн. Особенно это нетривиально через Dokku, которую я использую, чтобы особо не девопсить.

Но если завелось - ты будешь награжден. Просто пишешь в питоне функции, вешаешь декораторы и typing — и у тебя есть веб интерфейс к каждой функции. В отличие от Airflow, Prefect одобряет запуск неопределенного числа тасок (см скрин), что бывает часто, если ты парсишь.
Forwarded from Инжиниринг Данных (Dmitry)
DATALEARN | DE - 101 | МОДУЛЬ 7-5 SPARK SQL и SPARK функции

Мы уже познакомились с Spark и писали запросы с помощью PySpark, так сказать Python flavor. А теперь мы посмотрим на Spark SQL

В этом видео вы узнаете про:

📌 Методы SparkSession для работы с SQL
📌 Как создавать таблицы и вьюхи
📌 Виды таблиц - Managed vs Unmanaged
📌 Примеры SQL запросов в PySpark
📌 Кеш в Spark
📌 Результат SQL запроса в DataFrame и наоборот
📌 Пример работы с различными файлами в Spark - Parquet, CSV, JSON, AVRO, ORC
📌 Пример использования Spark для бинарных файлов и изображений
📌 Функции и операции Spark
📌 UNION, JOIN для DataFrame
📌 Window Functions
📌 UDF
📌 Партиционирование данных и оптимизация с командами coalesce, repartition.

В качестве лабораторной работы вам нужно будет выполнить все запросы из примеров в CLI и Databricks.
Spark DataFrame против Pandas Dataframe: преимущества и недостатки

Spark DataFrame и Pandas DataFrame - это структуры данных, разработанные для упрощения работы с табличными данными в Python, однако они имеют некоторые различия в своей функциональности и способе обработки данных.

🙂 Spark DataFrame является основным компонентом Apache Spark, распределенной платформы для обработки больших объемов данных. Это распределенный набор данных, организованный в именованные столбцы.

🙃 Pandas DataFrame - это структура данных, предоставляемая библиотекой Pandas, в которой предлагаются мощные инструменты для разбора и работы с табличными данными. Pandas DataFrame представляет собой двумерный массив с метками для строк и столбцов, похожий на таблицу базы данных или электронную таблицу.

Преимущества Spark Dataframe:

1️⃣ Распределенная обработка данных: Spark Dataframe предназначен для обработки больших объемов данных и может работать с данными, которые не умещаются в памяти одного узла. Данные и вычисления распределяются по кластеру, что позволяет достигать высокой производительности.

2️⃣ Поддержка разных языков программирования: Spark Dataframe поддерживает несколько языков программирования, включая Python, Scala, Java и R. Это позволяет разработчикам использовать предпочитаемый язык при работе с данными.

3️⃣ Поддержка разных источников данных: Spark Dataframe может работать с разными источниками данных, такими как распределенная файловая система Hadoop (HDFS), Apache Hive, Apache HBase, Apache Cassandra и многими другими. Он предоставляет удобные API для работы с разными форматами данных. Недостатки Spark Dataframe:

4️⃣ Сложность настройки и управления кластером: Spark требует настройки и управления кластером для распределенной обработки данных. Это может быть сложно для новичков или проектов с ограниченными ресурсами.

5️⃣ Медленный запуск: Запуск кластера Spark может занять время, особенно если необходимо настроить сетевые параметры и другие настройки. Для небольших наборов данных это может быть неэффективно и занять больше времени, чем обработка данных самим Spark.

Преимущества Pandas Dataframe:

1️⃣ Простота использования: Pandas Dataframe предоставляет простой и интуитивно понятный API для работы с данными. Он предлагает множество функций для фильтрации, сортировки, группировки и агрегации данных, что делает его удобным для анализа данных.

2️⃣ Большое сообщество пользователей: Pandas является очень популярным инструментом в сообществе аналитиков данных и машинного обучения. Это означает, что есть много ресурсов, документации и сообществ, где можно получить помощь и поддержку.

3️⃣ Высокая производительность на небольших наборах данных: Pandas оптимизирован для работы с относительно небольшими наборами данных, которые могут быть размещены в памяти одного узла. В таких случаях Pandas может быть быстрее, чем Spark. Недостатки Pandas Dataframe:

4️⃣ Ограничения памяти: Pandas Dataframe хранит все данные в памяти, поэтому работа с большими наборами данных может быть ограничена доступной памятью на вашем компьютере. Это может вызвать проблемы с производительностью или даже привести к сбою программы.

5️⃣ Ограниченная масштабируемость: Pandas разработан для работы на одном узле и не может эффективно масштабироваться для распределенной обработки. Если у вас большое количество данных, которые не умещаются в памяти одного узла, Pandas может стать неэффективным.

📌 Таким образом, выбор между Spark Dataframe и Pandas Dataframe зависит от конкретных потребностей. Если требуется обработка большого объема данных и распределенная обработка, то предпочтительнее использовать Spark Dataframe. Если вы работаете с небольшими наборами данных и ищете простой и быстрый способ анализа данных, то лучший выбор - Pandas Dataframe.
Please open Telegram to view this post
VIEW IN TELEGRAM
🆒3👍2👏1😁1
Forwarded from Хитрый Питон
Завтра в прямом эфире Moscow Python вместе с Никитой Соболевым (wemake.services) и Сергеем Петровым (Selectel) подробно обсудим типизацию Python и все связанное с ней.

➡️Когда: 16 июня в 14:00 по Москве.
➡️Где: онлайн и в записи по ссылке.

На трансляции ответим на вопросы и комментарии в прямом эфире.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3